hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 09:13



Jelenlévő felhasználók

Jelenleg 94 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 93 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 12 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
 Hozzászólás témája: Surf_vip
HozzászólásElküldve: 2013.03.31. 23:18 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Hali.

Valaki be tudná állítani, hogy amit chatbe ír azt ne 6x írja le egymás utána hanem pl 2 percenként vagy egy körben csak 1x.
Mert ez így elég idegesítő:
[VIP] Ha szeretned latni a vipmenut, ird be: /vipmenu
[VIP] Ha szeretned latni a vipmenut, ird be: /vipmenu
[VIP] Ha szeretned latni a vipmenut, ird be: /vipmenu
[VIP] Ha szeretned latni a vipmenut, ird be: /vipmenu
[VIP] Ha szeretned latni a vipmenut, ird be: /vipmenu
[VIP] Ha szeretned latni a vipmenut, ird be: /vipmenu

SMA Forráskód: [ Mindet kijelol ]
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <hamsandwich>
  6. #include <fun>
  7. #include <cstrike>
  8. #include <fakemeta>
  9.  
  10. #define PLUGIN "Surf Vip"
  11. #define VERSION "1.01"
  12. #define AUTHOR "eNz0"
  13.  
  14. #define is_valid_player(%1) (1 <= %1 <= 32)
  15. #define CharsMax(%1) sizeof %1 - 1
  16.  
  17. static const COLOR[] = "^x04"
  18.  
  19. new cvar_time, cvar_type, cvar_blockchat, cvar_team_tele, cvar_team_time, cvar_health, cvar_gravity,
  20. cvar_damage, cvar_speed
  21.  
  22. new bool: g_used[33]
  23. new bool: g_team_tele
  24. new bool: g_speed[33]
  25. new bool: g_damage[33]
  26. new bool: used_weapons[33]
  27. new bool: used_tele[33]
  28. new bool: used_powers[33]
  29.  
  30. static Float: start_time
  31.  
  32. new const g_sound_beep[] = "weapons/c4button.wav";
  33.  
  34. new maxplayers
  35. new gmsgSayText
  36. new g_MsgSync
  37.  
  38. /*================================================================================
  39.  [Colorchat]
  40. =================================================================================*/
  41.  
  42. enum Color
  43. {
  44. NORMAL = 1, // clients scr_concolor cvar color
  45. GREEN, // Green Color
  46. TEAM_COLOR, // Red, grey, blue
  47. GREY, // grey
  48. RED, // Red
  49. BLUE, // Blue
  50. }
  51.  
  52. new const TeamName[][] =
  53. {
  54. "",
  55. "TERRORIST",
  56. "CT",
  57. "SPECTATOR"
  58. }
  59.  
  60. /*================================================================================
  61.  [Teleports]
  62. =================================================================================*/
  63.  
  64. #define TELEPORT_SOUND "common/bodydrop2.wav"
  65. #define VOL_ZERODOTSEVEN 0.7
  66.  
  67. static const CT_4SpawnOrigins[][ 3 ] =
  68. {
  69. { -214, 3715, 41 },
  70. { -448, 3714, 41 },
  71. { -223, 3311, 41 },
  72. { -448, 3308, 41 }
  73. };
  74.  
  75. static const T_4SpawnOrigins[][ 3 ] =
  76. {
  77. { -778, 3705, 41 },
  78. { -554, 3722, 41 },
  79. { -778, 3288, 41 },
  80. { -570, 3347, 41 }
  81. };
  82.  
  83. static const Scout_Place[][ 3 ] =
  84. {
  85. { -317, 943, -1161 },
  86. { -672, 933, -1161 }
  87. };
  88.  
  89. static const Gun_Room[][ 3 ] =
  90. {
  91. { -689, -949, -138 },
  92. { -590, -958, -138 },
  93. { -485, -947, -138 },
  94. { -396, -961, -138 },
  95. { -324, -960, -138 },
  96. { -688, -840, -138 },
  97. { -594, -844, -138 },
  98. { -486, -866, -138 },
  99. { -398, -852, -138 },
  100. { -331, -845, -138 },
  101. { -383, -697, -138 },
  102. { -317, -683, -138 }
  103. };
  104.  
  105. static const Mario_Room[][ 3 ] =
  106. {
  107. { 3610, 1053, -2317 },
  108. { 3612, 629, -2317 },
  109. { 3403, 1079, -2273 },
  110. { 3081, 1091, -2317 },
  111. { 3391, 641, -2317 },
  112. { 3056, 578, -2317 },
  113. { 3116, 285, -2275 },
  114. { 3343, 245, -2317 }
  115. };
  116.  
  117. static const Awp_Place[][ 3 ] =
  118. {
  119. { 1795, -1070, -159 },
  120. { 1544, -1075, -159 },
  121. { 1304, -1072, -159 }
  122. };
  123.  
  124. /*================================================================================*/
  125.  
  126. public plugin_init()
  127. {
  128. register_plugin(PLUGIN, VERSION, AUTHOR)
  129.  
  130. RegisterHam(Ham_Spawn, "player", "bacon_spawn", 1)
  131. RegisterHam(Ham_TakeDamage, "player", "bacon_damage")
  132.  
  133. register_forward(FM_PlayerPreThink, "fwd_player_prethink")
  134.  
  135. cvar_type = register_cvar("vip_type", "0") //1 - auto kiekviena spawn, 0 - Parasius /vipmenu)
  136. cvar_time = register_cvar("vip_time", "5.0") //Laikas iki vip menu pasirodymo (su 1 tipu)
  137. cvar_blockchat = register_cvar("vip_block_chat", "1") //Nerodyti, kai vipas paraso /vipmenu
  138. cvar_team_tele = register_cvar("vip_team_tele", "1") //Ijungti teleportus i spawn vietas
  139. cvar_team_time = register_cvar("vip_team_tele_time", "10") //Po kiek laiko ijungti spawn teleportus
  140.  
  141. //Galiu meniu
  142. cvar_health = register_cvar("vip_extra_health", "50") //Papildomos vip gyvybes
  143. cvar_gravity = register_cvar("vip_gravity", "600") //Vip gravitacija
  144. cvar_damage = register_cvar("vip_dmg_multi", "1.5") //Vip multi zala (1.0 normali)
  145. cvar_speed = register_cvar("vip_speed", "300") //Vip greitis
  146.  
  147. register_clcmd( "say /vipmenu", "vipmenu", ADMIN_LEVEL_H);
  148. register_clcmd("say /vip", "ShowMotd")
  149. register_clcmd( "say", "handle_say")
  150.  
  151. register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
  152. register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
  153.  
  154. maxplayers = get_maxplayers()
  155. g_MsgSync = CreateHudSyncObj()
  156. gmsgSayText = get_user_msgid("SayText")
  157. }
  158.  
  159. public client_connect(id)
  160. {
  161. new name[32];
  162. get_user_name(id,name,31);
  163.  
  164.  
  165. if(vip(id))
  166. ColorChat(0, RED, "^x04[VIP]^x01 V.I.P csatlakozott:^x03 %s", name);
  167.  
  168.  
  169. }
  170.  
  171. public on_damage(id)
  172. {
  173. new attacker = get_user_attacker(id)
  174.  
  175. if ( is_user_connected(id) && is_user_connected(attacker))
  176. if (vip(attacker))
  177. {
  178. new damage = read_data(2)
  179.  
  180. set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
  181. ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
  182. }
  183. }
  184.  
  185. public event_new_round()
  186. {
  187. g_team_tele = false
  188. start_time = get_gametime()
  189. }
  190. public plugin_precache()
  191. {
  192. precache_sound( TELEPORT_SOUND );
  193.  
  194. engfunc(EngFunc_PrecacheSound, g_sound_beep);
  195. }
  196.  
  197.  
  198. public bacon_spawn(id)
  199. {
  200.  
  201. if(task_exists(id))
  202. remove_task(id)
  203.  
  204. if(g_used[id])
  205. g_used[id] = false
  206.  
  207. if(vip(id) && (get_pcvar_num(cvar_type) == 1))
  208. {
  209. set_task(get_pcvar_float(cvar_time), "menu_vip", id)
  210. }
  211.  
  212. if(!(get_pcvar_num(cvar_type) == 1))
  213. set_task(1.0, "PrintAd")
  214.  
  215. used_powers[id] = false
  216. used_weapons[id] = false
  217. used_tele[id] = false
  218. g_speed[id] = false
  219. g_used[id] = false
  220. g_damage[id] = false
  221. }
  222.  
  223. public PrintAd()
  224. {
  225. ColorChat(0, RED, "^x04[VIP]^x01 Ha szeretned latni a vipmenut, ird be:^x03 /vipmenu");
  226. }
  227. public bacon_damage(victim, inflictor, attacker, Float:damage)
  228. {
  229. if (is_valid_player(attacker) && g_damage[attacker])
  230. {
  231. damage *= get_pcvar_float(cvar_damage)
  232. SetHamParamFloat(4, damage)
  233. }
  234. }
  235.  
  236. public fwd_player_prethink(id)
  237. {
  238.  
  239. if(g_speed[id] && vip(id))
  240. {
  241. new Float:speed
  242. speed = get_pcvar_float(cvar_speed)
  243. engfunc(EngFunc_SetClientMaxspeed, id, speed);
  244. set_pev(id, pev_maxspeed, speed);
  245. }
  246. }
  247.  
  248.  
  249. public vipmenu(id)
  250. {
  251. if(get_pcvar_num(cvar_type) == 0)
  252. {
  253. set_task(0.2, "menu_vip", id)
  254. }
  255.  
  256. else if(get_pcvar_num(cvar_type) == 1)
  257. {
  258. ColorChat(0, RED, "^x04[VIP]^x01 VIP menu^x03 Automatikus!");
  259. }
  260.  
  261. else
  262. {
  263. set_task(0.2, "menu_vip", id)
  264. }
  265.  
  266. if(get_pcvar_num(cvar_blockchat))
  267. return PLUGIN_HANDLED
  268.  
  269. return PLUGIN_CONTINUE
  270. }
  271.  
  272. public menu_vip(id)
  273. {
  274. if(!is_user_alive(id))
  275. return
  276.  
  277. new map[ 32 ];
  278. get_mapname( map, charsmax( map ) );
  279.  
  280. new menu = menu_create("\rSurf V.I.P Menü! \y[Cfg: Danii]", "menu_vip_handler");
  281.  
  282.  
  283. if(vip(id))
  284. {
  285.  
  286. if(!used_weapons[id])
  287. menu_additem(menu, "\w Fegyver menü", "1", 0);
  288.  
  289. else if(used_weapons[id])
  290. menu_additem(menu, "\d Fegyver menü", "1", 0);
  291.  
  292. if(!used_powers[id])
  293. menu_additem(menu, "\w Saját menü", "2", 0);
  294.  
  295. else if(used_powers[id])
  296. menu_additem(menu, "\d Saját menü", "2", 0);
  297.  
  298.  
  299. if( equal( map, "surf_ski_2" ) )
  300. {
  301. if(!used_tele[id])
  302. menu_additem(menu, "\wTelepor Menü", "3", 0);
  303.  
  304. else if(used_tele[id])
  305. menu_additem(menu, "\wTelepor Menü", "3", 0);
  306.  
  307. }
  308.  
  309. }
  310.  
  311. else
  312. {
  313.  
  314. menu_additem(menu, "\d Fegyver Menü", "1", 0);
  315.  
  316. menu_additem(menu, "\d Saját Menü", "2", 0);
  317.  
  318. menu_additem(menu, "\d Teleport Menü", "3", 0);
  319.  
  320. menu_additem(menu, "\w V.I.P!", "4", 0);
  321.  
  322. }
  323.  
  324. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  325. menu_display(id, menu, 0);
  326. }
  327.  
  328. public menu_vip_handler(id, menu, item)
  329. {
  330. if( item == MENU_EXIT )
  331. {
  332. menu_destroy(menu);
  333. return PLUGIN_HANDLED;
  334. }
  335.  
  336. new data[6], iName[64];
  337. new access, callback;
  338.  
  339. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  340.  
  341. new key = str_to_num(data);
  342.  
  343. new map[ 32 ];
  344. get_mapname( map, charsmax( map ) );
  345.  
  346. switch(key)
  347. {
  348. case 1:
  349. {
  350. if(!used_weapons[id])
  351. {
  352. menu_weapons(id)
  353. used_weapons[id] = true
  354. ColorChat(id, RED, "^x04[VIP]^x04 Fegyver menu aktiv!")
  355. }
  356. else
  357. {
  358. ColorChat(id, RED, "^x04[VIP]^x03 Varjon a kovetkezo korig!")
  359. menu_vip(id)
  360. }
  361. }
  362. case 2:
  363. {
  364.  
  365. if(!used_powers[id])
  366. {
  367. second_menu(id)
  368. used_powers[id] = true
  369. ColorChat(id, RED, "^x04[VIP]^x04 Fegyver menu aktiv!")
  370. }
  371. else
  372. {
  373. ColorChat(id, RED, "^x04[VIP]^x03 Varjon a kovetkezo korig!")
  374. menu_vip(id)
  375. }
  376.  
  377.  
  378. }
  379.  
  380. case 3:
  381. {
  382. if( equal( map, "surf_ski_2" ) )
  383. {
  384. if(!used_tele[id])
  385. {
  386. menu_teleport(id)
  387. used_tele[id] = true
  388. ColorChat(id, RED, "^x04[VIP]^x04 Teleport Menu aktiv!")
  389. }
  390. else
  391. {
  392. ColorChat(id, RED, "^x04[VIP]^x03 Varjon a kovetkezo korig!")
  393. menu_vip(id)
  394. }
  395. }
  396. }
  397.  
  398. case 4:
  399. {
  400. ShowMotd(id)
  401. }
  402.  
  403. }
  404.  
  405. emit_sound(id, CHAN_VOICE, g_sound_beep, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  406. menu_destroy(menu);
  407. return PLUGIN_HANDLED;
  408. }
  409.  
  410. public menu_weapons(id)
  411. {
  412.  
  413. if(!vip(id) || !is_user_alive(id))
  414. return
  415.  
  416. g_used[id] = true
  417.  
  418. new menu = menu_create("\rSurf V.I.P fegyver Menü! \y[Cfg: Danii]", "weapon_menu_handler");
  419.  
  420. menu_additem(menu, "\w AK47 + M3", "1", 0);
  421. menu_additem(menu, "\d M4A1 + M3", "2", 0);
  422. menu_additem(menu, "\w AWP + M3", "3", 0);
  423. menu_additem(menu, "\d Gránátok + M3", "4", 0);
  424.  
  425. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  426. menu_display(id, menu, 0);
  427.  
  428. }
  429.  
  430. public weapon_menu_handler(id, menu, item)
  431. {
  432. if( item == MENU_EXIT )
  433. {
  434. menu_destroy(menu);
  435. return PLUGIN_HANDLED;
  436. }
  437.  
  438. new data[6], iName[64];
  439. new access, callback;
  440.  
  441. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  442.  
  443. new key = str_to_num(data);
  444.  
  445. switch(key)
  446. {
  447. case 1:
  448. {
  449. strip_user_weapons(id)
  450.  
  451. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  452. cs_set_user_bpammo(id, CSW_M3, 32)
  453. cs_set_weapon_ammo( give_item( id, "weapon_ak47" ), 30 )
  454. cs_set_user_bpammo(id, CSW_AK47, 90)
  455.  
  456. give_item( id, "weapon_knife" )
  457. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  458. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  459.  
  460. }
  461. case 2:
  462. {
  463. strip_user_weapons(id)
  464.  
  465. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  466. cs_set_user_bpammo(id, CSW_M3, 32)
  467. cs_set_weapon_ammo( give_item( id, "weapon_m4a1" ), 30 )
  468. cs_set_user_bpammo(id, CSW_M4A1, 90)
  469.  
  470. give_item( id, "weapon_knife" )
  471. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  472. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  473. }
  474. case 3:
  475. {
  476. strip_user_weapons(id)
  477.  
  478. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  479. cs_set_user_bpammo(id, CSW_M3, 32)
  480. cs_set_weapon_ammo( give_item( id, "weapon_awp" ), 10 )
  481. cs_set_user_bpammo(id, CSW_AWP, 30)
  482.  
  483. give_item( id, "weapon_knife" )
  484. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  485. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  486.  
  487. }
  488. case 4:
  489. {
  490. strip_user_weapons(id)
  491.  
  492. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  493. cs_set_user_bpammo(id, CSW_M3, 32)
  494. give_item(id, "weapon_hegrenade")
  495. give_item(id, "weapon_flashbang")
  496. give_item(id, "weapon_flashbang")
  497.  
  498. give_item( id, "weapon_knife" )
  499. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  500. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  501. }
  502. }
  503.  
  504. emit_sound(id, CHAN_VOICE, g_sound_beep, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  505. menu_vip(id)
  506. menu_destroy(menu);
  507. return PLUGIN_HANDLED;
  508. }
  509.  
  510. public second_menu(id)
  511. {
  512. if(!vip(id) || !is_user_alive(id))
  513. return
  514.  
  515. new menu = menu_create("\rSurf VIP Extra menü! \y[Cfg: Danii]", "second_menu_handler");
  516.  
  517. menu_additem(menu, "\w Kisebb gravitáció", "1", 0);
  518. menu_additem(menu, "\d Gyorsabb sebesség", "2", 0);
  519. menu_additem(menu, "\w Több élet", "3", 0);
  520. menu_additem(menu, "\d Nagyobb sebzés", "4", 0);
  521.  
  522. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  523. menu_display(id, menu, 0);
  524.  
  525. }
  526.  
  527. public second_menu_handler(id, menu, item)
  528. {
  529. if( item == MENU_EXIT )
  530. {
  531. menu_destroy(menu);
  532. return PLUGIN_HANDLED;
  533. }
  534.  
  535. new data[6], iName[64];
  536. new access, callback;
  537.  
  538. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  539.  
  540. new key = str_to_num(data);
  541.  
  542. switch(key)
  543. {
  544. case 1:
  545. {
  546. new Float: gravity = get_pcvar_num(cvar_gravity) / 800.0
  547. set_user_gravity(id, gravity)
  548. }
  549. case 2:
  550. {
  551. g_speed[id] = true
  552. }
  553. case 3:
  554. {
  555. set_user_health(id, get_user_health(id) + get_pcvar_num(cvar_health))
  556. }
  557. case 4:
  558. {
  559. g_damage[id] = true
  560. }
  561. }
  562.  
  563. new map[ 32 ];
  564. get_mapname( map, charsmax( map ) );
  565.  
  566. if( equal( map, "surf_ski_2" ) )
  567. menu_vip(id)
  568.  
  569. emit_sound(id, CHAN_VOICE, g_sound_beep, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  570. menu_destroy(menu);
  571. return PLUGIN_HANDLED;
  572. }
  573.  
  574. public handle_say(id) {
  575. new said[192]
  576. read_args(said,192)
  577. if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
  578. set_task(0.1,"print_adminlist",id)
  579.  
  580. return PLUGIN_CONTINUE
  581. }
  582.  
  583. public print_adminlist(user)
  584. {
  585. new adminnames[33][32]
  586. new message[256]
  587. new contactinfo[256], contact[112]
  588. new id, count, x, len
  589.  
  590. for(id = 1 ; id <= maxplayers ; id++)
  591. if(is_user_connected(id))
  592. if(get_user_flags(id) & ADMIN_LEVEL_H)
  593. get_user_name(id, adminnames[count++], 31)
  594.  
  595. len = format(message, 255, "%s Online V.I.P: ",COLOR)
  596. if(count > 0) {
  597. for(x = 0 ; x < count ; x++) {
  598. len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
  599. if(len > 96 ) {
  600. print_message(user, message)
  601. len = format(message, 255, "%s ",COLOR)
  602. }
  603. }
  604. print_message(user, message)
  605. }
  606. else {
  607. len += format(message[len], 255-len, "Nincs jelent V.I.P!")
  608. print_message(user, message)
  609. }
  610.  
  611. get_cvar_string("amx_contactinfo", contact, 63)
  612. if(contact[0]) {
  613. format(contactinfo, 111, "%s Contact Server Admin -- %s", COLOR, contact)
  614. print_message(user, contactinfo)
  615. }
  616. }
  617.  
  618. print_message(id, msg[])
  619. {
  620. message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  621. write_byte(id)
  622. write_string(msg)
  623. message_end()
  624. }
  625.  
  626. public menu_teleport(id)
  627. {
  628. if(!vip(id) || !is_user_alive(id))
  629. return
  630.  
  631. new Float: cur_time= get_gametime()
  632. new menu = menu_create("\rSurf VIP Teleportáló Menü! \y[Cfg: Danii]", "teleport_menu_handler");
  633.  
  634. menu_additem(menu, "\w Fegyver szoba", "1", 0);
  635. menu_additem(menu, "\d Scout hely", "2", 0);
  636. menu_additem(menu, "\w Márió Szoba", "3", 0);
  637. menu_additem(menu, "\d Awp hely", "4", 0);
  638.  
  639. if(get_pcvar_num(cvar_team_tele))
  640. {
  641. if(cur_time - start_time >= get_pcvar_float(cvar_team_time))
  642. {
  643. menu_additem(menu, "\w CT Oldal", "5", 0);
  644. menu_additem(menu, "\d T Oldal", "6", 0);
  645. g_team_tele = true
  646. }
  647. }
  648.  
  649. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  650. menu_display(id, menu, 0);
  651.  
  652. }
  653.  
  654. public teleport_menu_handler(id, menu, item)
  655. {
  656. if( item == MENU_EXIT )
  657. {
  658. menu_destroy(menu);
  659. return PLUGIN_HANDLED;
  660. }
  661.  
  662. new data[6], iName[64];
  663. new access, callback;
  664.  
  665. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  666.  
  667. new key = str_to_num(data);
  668.  
  669. switch(key)
  670. {
  671. case 1:
  672. {
  673. set_user_origin( id, Gun_Room[ random_num( 0, charsmax( Gun_Room ) ) ] );
  674. }
  675.  
  676. case 2:
  677. {
  678. set_user_origin( id, Scout_Place[ random_num( 0, charsmax( Scout_Place ) ) ] );
  679. }
  680.  
  681. case 3:
  682. {
  683. set_user_origin( id, Mario_Room[ random_num( 0, charsmax( Mario_Room ) ) ] );
  684. }
  685.  
  686. case 4:
  687. {
  688. set_user_origin( id, Awp_Place[ random_num( 0, charsmax( Awp_Place ) ) ] );
  689. }
  690.  
  691. case 5:
  692. {
  693. if(g_team_tele)
  694. set_user_origin( id, CT_4SpawnOrigins[ random_num( 0, charsmax( CT_4SpawnOrigins ) ) ] );
  695. }
  696.  
  697. case 6:
  698. {
  699. if(g_team_tele)
  700. set_user_origin( id, T_4SpawnOrigins[ random_num( 0, charsmax( T_4SpawnOrigins ) ) ] );
  701. }
  702. }
  703.  
  704. emit_sound( id, CHAN_STATIC, TELEPORT_SOUND, VOL_ZERODOTSEVEN, ATTN_NORM, 0, PITCH_NORM );
  705. teleport_effect(id);
  706.  
  707. menu_vip(id)
  708.  
  709. menu_destroy(menu);
  710. return PLUGIN_HANDLED;
  711. }
  712.  
  713. stock teleport_effect(index)
  714. {
  715. new Velocity[ 3 ];
  716. set_pev( index, pev_velocity, Velocity );
  717.  
  718. new iOrigin[ 3 ];
  719. get_user_origin( index, iOrigin, 0 );
  720.  
  721. message_begin( MSG_PVS, SVC_TEMPENTITY, iOrigin );
  722. write_byte( TE_TELEPORT );
  723. write_coord( iOrigin[ 0 ] );
  724. write_coord( iOrigin[ 1 ] );
  725. write_coord( iOrigin[ 2 ] );
  726. message_end();
  727.  
  728. message_begin( MSG_PVS, SVC_TEMPENTITY, iOrigin );
  729. write_byte( TE_TAREXPLOSION );
  730. write_coord( iOrigin[ 0 ] );
  731. write_coord( iOrigin[ 1 ] );
  732. write_coord( iOrigin[ 2 ] );
  733. message_end();
  734. }
  735.  
  736. public ShowMotd(id)
  737. {
  738. show_motd(id, "vip.txt")
  739. }
  740. /*================================================================================
  741.  [Colorchat]
  742. =================================================================================*/
  743.  
  744. ColorChat(id, Color:type, const msg[], any:...)
  745. {
  746. new message[256];
  747.  
  748. switch(type)
  749. {
  750. case NORMAL: // clients scr_concolor cvar color
  751. {
  752. message[0] = 0x01;
  753. }
  754. case GREEN: // Green
  755. {
  756. message[0] = 0x04;
  757. }
  758. default: // White, Red, Blue
  759. {
  760. message[0] = 0x03;
  761. }
  762. }
  763.  
  764. vformat(message[1], 251, msg, 4);
  765.  
  766. // Make sure message is not longer than 192 character. Will crash the server.
  767. message[192] = '^0';
  768.  
  769. new team, ColorChange, index, MSG_Type;
  770.  
  771. if(id)
  772. {
  773. MSG_Type = MSG_ONE_UNRELIABLE;
  774. index = id;
  775. } else {
  776. index = FindPlayer();
  777. MSG_Type = MSG_BROADCAST;
  778. }
  779.  
  780. team = get_user_team(index);
  781. ColorChange = ColorSelection(index, MSG_Type, type);
  782.  
  783. ShowColorMessage(index, MSG_Type, message);
  784.  
  785. if(ColorChange)
  786. {
  787. Team_Info(index, MSG_Type, TeamName[team]);
  788. }
  789. }
  790.  
  791. ShowColorMessage(id, type, message[])
  792. {
  793. static msgSayText;
  794. if(!msgSayText)
  795. {
  796. msgSayText = get_user_msgid("SayText");
  797. }
  798. message_begin(type, msgSayText, _, id);
  799. write_byte(id)
  800. write_string(message);
  801. message_end();
  802. }
  803.  
  804. Team_Info(id, type, team[])
  805. {
  806. static msgTeamInfo;
  807. if(!msgTeamInfo)
  808. {
  809. msgTeamInfo = get_user_msgid("TeamInfo");
  810. }
  811. message_begin(type, msgTeamInfo, _, id);
  812. write_byte(id);
  813. write_string(team);
  814. message_end();
  815.  
  816. return 1;
  817. }
  818.  
  819. ColorSelection(index, type, Color:Type)
  820. {
  821. switch(Type)
  822. {
  823. case RED:
  824. {
  825. return Team_Info(index, type, TeamName[1]);
  826. }
  827. case BLUE:
  828. {
  829. return Team_Info(index, type, TeamName[2]);
  830. }
  831. case GREY:
  832. {
  833. return Team_Info(index, type, TeamName[0]);
  834. }
  835. }
  836.  
  837. return 0;
  838. }
  839.  
  840. FindPlayer()
  841. {
  842. new i = -1, players = get_maxplayers();
  843.  
  844. while(i <= players)
  845. {
  846. if(is_user_connected(++i))
  847. return i;
  848. }
  849.  
  850. return -1;
  851. }
  852. /*================================================================================*/
  853.  
  854. stock bool:vip(id)
  855. {
  856. return (get_user_flags(id) & ADMIN_LEVEL_H)? true : false
  857. }
  858. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  859. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
  860. */
  861.  

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Surf_vip
HozzászólásElküldve: 2013.04.01. 08:01 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. set_task(0.5, "PrintAd")

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet

Ők köszönték meg crazy` nek ezt a hozzászólást: pixxa112 (2013.04.01. 14:47)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Surf_vip
HozzászólásElküldve: 2013.04.01. 14:47 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
crazy` írta:
SMA Forráskód: [ Mindet kijelol ]
  1. set_task(0.5, "PrintAd")


Köszi.
És azt bele tudnád írni, hogy aki VIP annak minden körben be jöjjön a menü? KÉRLEK !

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Surf_vip
HozzászólásElküldve: 2013.04.01. 14:49 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
pixxa112 írta:
crazy` írta:
SMA Forráskód: [ Mindet kijelol ]
  1. set_task(0.5, "PrintAd")


Köszi.
És azt bele tudnád írni, hogy aki VIP annak minden körben be jöjjön a menü? KÉRLEK !


persze, tessék:
SMA Forráskód: [ Mindet kijelol ]
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <hamsandwich>
  6. #include <fun>
  7. #include <cstrike>
  8. #include <fakemeta>
  9.  
  10. #define PLUGIN "Surf Vip"
  11. #define VERSION "1.01"
  12. #define AUTHOR "eNz0"
  13.  
  14. #define is_valid_player(%1) (1 <= %1 <= 32)
  15. #define CharsMax(%1) sizeof %1 - 1
  16.  
  17. static const COLOR[] = "^x04"
  18.  
  19. new cvar_time, cvar_type, cvar_blockchat, cvar_team_tele, cvar_team_time, cvar_health, cvar_gravity,
  20. cvar_damage, cvar_speed
  21.  
  22. new bool: g_used[33]
  23. new bool: g_team_tele
  24. new bool: g_speed[33]
  25. new bool: g_damage[33]
  26. new bool: used_weapons[33]
  27. new bool: used_tele[33]
  28. new bool: used_powers[33]
  29.  
  30. static Float: start_time
  31.  
  32. new const g_sound_beep[] = "weapons/c4button.wav";
  33.  
  34. new maxplayers
  35. new gmsgSayText
  36. new g_MsgSync
  37.  
  38. /*================================================================================
  39.  [Colorchat]
  40. =================================================================================*/
  41.  
  42. enum Color
  43. {
  44. NORMAL = 1, // clients scr_concolor cvar color
  45. GREEN, // Green Color
  46. TEAM_COLOR, // Red, grey, blue
  47. GREY, // grey
  48. RED, // Red
  49. BLUE, // Blue
  50. }
  51.  
  52. new const TeamName[][] =
  53. {
  54. "",
  55. "TERRORIST",
  56. "CT",
  57. "SPECTATOR"
  58. }
  59.  
  60. /*================================================================================
  61.  [Teleports]
  62. =================================================================================*/
  63.  
  64. #define TELEPORT_SOUND "common/bodydrop2.wav"
  65. #define VOL_ZERODOTSEVEN 0.7
  66.  
  67. static const CT_4SpawnOrigins[][ 3 ] =
  68. {
  69. { -214, 3715, 41 },
  70. { -448, 3714, 41 },
  71. { -223, 3311, 41 },
  72. { -448, 3308, 41 }
  73. };
  74.  
  75. static const T_4SpawnOrigins[][ 3 ] =
  76. {
  77. { -778, 3705, 41 },
  78. { -554, 3722, 41 },
  79. { -778, 3288, 41 },
  80. { -570, 3347, 41 }
  81. };
  82.  
  83. static const Scout_Place[][ 3 ] =
  84. {
  85. { -317, 943, -1161 },
  86. { -672, 933, -1161 }
  87. };
  88.  
  89. static const Gun_Room[][ 3 ] =
  90. {
  91. { -689, -949, -138 },
  92. { -590, -958, -138 },
  93. { -485, -947, -138 },
  94. { -396, -961, -138 },
  95. { -324, -960, -138 },
  96. { -688, -840, -138 },
  97. { -594, -844, -138 },
  98. { -486, -866, -138 },
  99. { -398, -852, -138 },
  100. { -331, -845, -138 },
  101. { -383, -697, -138 },
  102. { -317, -683, -138 }
  103. };
  104.  
  105. static const Mario_Room[][ 3 ] =
  106. {
  107. { 3610, 1053, -2317 },
  108. { 3612, 629, -2317 },
  109. { 3403, 1079, -2273 },
  110. { 3081, 1091, -2317 },
  111. { 3391, 641, -2317 },
  112. { 3056, 578, -2317 },
  113. { 3116, 285, -2275 },
  114. { 3343, 245, -2317 }
  115. };
  116.  
  117. static const Awp_Place[][ 3 ] =
  118. {
  119. { 1795, -1070, -159 },
  120. { 1544, -1075, -159 },
  121. { 1304, -1072, -159 }
  122. };
  123.  
  124. /*================================================================================*/
  125.  
  126. public plugin_init()
  127. {
  128. register_plugin(PLUGIN, VERSION, AUTHOR)
  129.  
  130. RegisterHam(Ham_Spawn, "player", "bacon_spawn", 1)
  131. RegisterHam(Ham_TakeDamage, "player", "bacon_damage")
  132.  
  133. register_forward(FM_PlayerPreThink, "fwd_player_prethink")
  134.  
  135. cvar_type = register_cvar("vip_type", "1") //1 - auto kiekviena spawn, 0 - Parasius /vipmenu)
  136. cvar_time = register_cvar("vip_time", "5.0") //Laikas iki vip menu pasirodymo (su 1 tipu)
  137. cvar_blockchat = register_cvar("vip_block_chat", "1") //Nerodyti, kai vipas paraso /vipmenu
  138. cvar_team_tele = register_cvar("vip_team_tele", "1") //Ijungti teleportus i spawn vietas
  139. cvar_team_time = register_cvar("vip_team_tele_time", "10") //Po kiek laiko ijungti spawn teleportus
  140.  
  141. //Galiu meniu
  142. cvar_health = register_cvar("vip_extra_health", "50") //Papildomos vip gyvybes
  143. cvar_gravity = register_cvar("vip_gravity", "600") //Vip gravitacija
  144. cvar_damage = register_cvar("vip_dmg_multi", "1.5") //Vip multi zala (1.0 normali)
  145. cvar_speed = register_cvar("vip_speed", "300") //Vip greitis
  146.  
  147. register_clcmd( "say /vipmenu", "vipmenu", ADMIN_LEVEL_H);
  148. register_clcmd("say /vip", "ShowMotd")
  149. register_clcmd( "say", "handle_say")
  150.  
  151. register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
  152. register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
  153.  
  154. maxplayers = get_maxplayers()
  155. g_MsgSync = CreateHudSyncObj()
  156. gmsgSayText = get_user_msgid("SayText")
  157. }
  158.  
  159. public client_connect(id)
  160. {
  161. new name[32];
  162. get_user_name(id,name,31);
  163.  
  164.  
  165. if(vip(id))
  166. ColorChat(0, RED, "^x04[VIP]^x01 V.I.P csatlakozott:^x03 %s", name);
  167.  
  168.  
  169. }
  170.  
  171. public on_damage(id)
  172. {
  173. new attacker = get_user_attacker(id)
  174.  
  175. if ( is_user_connected(id) && is_user_connected(attacker))
  176. if (vip(attacker))
  177. {
  178. new damage = read_data(2)
  179.  
  180. set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
  181. ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
  182. }
  183. }
  184.  
  185. public event_new_round()
  186. {
  187. g_team_tele = false
  188. start_time = get_gametime()
  189. }
  190. public plugin_precache()
  191. {
  192. precache_sound( TELEPORT_SOUND );
  193.  
  194. engfunc(EngFunc_PrecacheSound, g_sound_beep);
  195. }
  196.  
  197.  
  198. public bacon_spawn(id)
  199. {
  200.  
  201. if(task_exists(id))
  202. remove_task(id)
  203.  
  204. if(g_used[id])
  205. g_used[id] = false
  206.  
  207. if(vip(id) && (get_pcvar_num(cvar_type) == 1))
  208. {
  209. set_task(get_pcvar_float(cvar_time), "menu_vip", id)
  210. }
  211.  
  212. if(!(get_pcvar_num(cvar_type) == 1))
  213. set_task(1.0, "PrintAd")
  214.  
  215. used_powers[id] = false
  216. used_weapons[id] = false
  217. used_tele[id] = false
  218. g_speed[id] = false
  219. g_used[id] = false
  220. g_damage[id] = false
  221. }
  222.  
  223. public PrintAd()
  224. {
  225. ColorChat(0, RED, "^x04[VIP]^x01 Ha szeretned latni a vipmenut, ird be:^x03 /vipmenu");
  226. }
  227. public bacon_damage(victim, inflictor, attacker, Float:damage)
  228. {
  229. if (is_valid_player(attacker) && g_damage[attacker])
  230. {
  231. damage *= get_pcvar_float(cvar_damage)
  232. SetHamParamFloat(4, damage)
  233. }
  234. }
  235.  
  236. public fwd_player_prethink(id)
  237. {
  238.  
  239. if(g_speed[id] && vip(id))
  240. {
  241. new Float:speed
  242. speed = get_pcvar_float(cvar_speed)
  243. engfunc(EngFunc_SetClientMaxspeed, id, speed);
  244. set_pev(id, pev_maxspeed, speed);
  245. }
  246. }
  247.  
  248.  
  249. public vipmenu(id)
  250. {
  251. if(get_pcvar_num(cvar_type) == 0)
  252. {
  253. set_task(0.2, "menu_vip", id)
  254. }
  255.  
  256. else if(get_pcvar_num(cvar_type) == 1)
  257. {
  258. ColorChat(0, RED, "^x04[VIP]^x01 VIP menu^x03 Automatikus!");
  259. }
  260.  
  261. else
  262. {
  263. set_task(0.2, "menu_vip", id)
  264. }
  265.  
  266. if(get_pcvar_num(cvar_blockchat))
  267. return PLUGIN_HANDLED
  268.  
  269. return PLUGIN_CONTINUE
  270. }
  271.  
  272. public menu_vip(id)
  273. {
  274. if(!is_user_alive(id))
  275. return
  276.  
  277. new map[ 32 ];
  278. get_mapname( map, charsmax( map ) );
  279.  
  280. new menu = menu_create("\rSurf V.I.P Menü! \y[Cfg: Danii]", "menu_vip_handler");
  281.  
  282.  
  283. if(vip(id))
  284. {
  285.  
  286. if(!used_weapons[id])
  287. menu_additem(menu, "\w Fegyver menü", "1", 0);
  288.  
  289. else if(used_weapons[id])
  290. menu_additem(menu, "\d Fegyver menü", "1", 0);
  291.  
  292. if(!used_powers[id])
  293. menu_additem(menu, "\w Saját menü", "2", 0);
  294.  
  295. else if(used_powers[id])
  296. menu_additem(menu, "\d Saját menü", "2", 0);
  297.  
  298.  
  299. if( equal( map, "surf_ski_2" ) )
  300. {
  301. if(!used_tele[id])
  302. menu_additem(menu, "\wTelepor Menü", "3", 0);
  303.  
  304. else if(used_tele[id])
  305. menu_additem(menu, "\wTelepor Menü", "3", 0);
  306.  
  307. }
  308.  
  309. }
  310.  
  311. else
  312. {
  313.  
  314. menu_additem(menu, "\d Fegyver Menü", "1", 0);
  315.  
  316. menu_additem(menu, "\d Saját Menü", "2", 0);
  317.  
  318. menu_additem(menu, "\d Teleport Menü", "3", 0);
  319.  
  320. menu_additem(menu, "\w V.I.P!", "4", 0);
  321.  
  322. }
  323.  
  324. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  325. menu_display(id, menu, 0);
  326. }
  327.  
  328. public menu_vip_handler(id, menu, item)
  329. {
  330. if( item == MENU_EXIT )
  331. {
  332. menu_destroy(menu);
  333. return PLUGIN_HANDLED;
  334. }
  335.  
  336. new data[6], iName[64];
  337. new access, callback;
  338.  
  339. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  340.  
  341. new key = str_to_num(data);
  342.  
  343. new map[ 32 ];
  344. get_mapname( map, charsmax( map ) );
  345.  
  346. switch(key)
  347. {
  348. case 1:
  349. {
  350. if(!used_weapons[id])
  351. {
  352. menu_weapons(id)
  353. used_weapons[id] = true
  354. ColorChat(id, RED, "^x04[VIP]^x04 Fegyver menu aktiv!")
  355. }
  356. else
  357. {
  358. ColorChat(id, RED, "^x04[VIP]^x03 Varjon a kovetkezo korig!")
  359. menu_vip(id)
  360. }
  361. }
  362. case 2:
  363. {
  364.  
  365. if(!used_powers[id])
  366. {
  367. second_menu(id)
  368. used_powers[id] = true
  369. ColorChat(id, RED, "^x04[VIP]^x04 Fegyver menu aktiv!")
  370. }
  371. else
  372. {
  373. ColorChat(id, RED, "^x04[VIP]^x03 Varjon a kovetkezo korig!")
  374. menu_vip(id)
  375. }
  376.  
  377.  
  378. }
  379.  
  380. case 3:
  381. {
  382. if( equal( map, "surf_ski_2" ) )
  383. {
  384. if(!used_tele[id])
  385. {
  386. menu_teleport(id)
  387. used_tele[id] = true
  388. ColorChat(id, RED, "^x04[VIP]^x04 Teleport Menu aktiv!")
  389. }
  390. else
  391. {
  392. ColorChat(id, RED, "^x04[VIP]^x03 Varjon a kovetkezo korig!")
  393. menu_vip(id)
  394. }
  395. }
  396. }
  397.  
  398. case 4:
  399. {
  400. ShowMotd(id)
  401. }
  402.  
  403. }
  404.  
  405. emit_sound(id, CHAN_VOICE, g_sound_beep, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  406. menu_destroy(menu);
  407. return PLUGIN_HANDLED;
  408. }
  409.  
  410. public menu_weapons(id)
  411. {
  412.  
  413. if(!vip(id) || !is_user_alive(id))
  414. return
  415.  
  416. g_used[id] = true
  417.  
  418. new menu = menu_create("\rSurf V.I.P fegyver Menü! \y[Cfg: Danii]", "weapon_menu_handler");
  419.  
  420. menu_additem(menu, "\w AK47 + M3", "1", 0);
  421. menu_additem(menu, "\d M4A1 + M3", "2", 0);
  422. menu_additem(menu, "\w AWP + M3", "3", 0);
  423. menu_additem(menu, "\d Gránátok + M3", "4", 0);
  424.  
  425. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  426. menu_display(id, menu, 0);
  427.  
  428. }
  429.  
  430. public weapon_menu_handler(id, menu, item)
  431. {
  432. if( item == MENU_EXIT )
  433. {
  434. menu_destroy(menu);
  435. return PLUGIN_HANDLED;
  436. }
  437.  
  438. new data[6], iName[64];
  439. new access, callback;
  440.  
  441. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  442.  
  443. new key = str_to_num(data);
  444.  
  445. switch(key)
  446. {
  447. case 1:
  448. {
  449. strip_user_weapons(id)
  450.  
  451. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  452. cs_set_user_bpammo(id, CSW_M3, 32)
  453. cs_set_weapon_ammo( give_item( id, "weapon_ak47" ), 30 )
  454. cs_set_user_bpammo(id, CSW_AK47, 90)
  455.  
  456. give_item( id, "weapon_knife" )
  457. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  458. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  459.  
  460. }
  461. case 2:
  462. {
  463. strip_user_weapons(id)
  464.  
  465. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  466. cs_set_user_bpammo(id, CSW_M3, 32)
  467. cs_set_weapon_ammo( give_item( id, "weapon_m4a1" ), 30 )
  468. cs_set_user_bpammo(id, CSW_M4A1, 90)
  469.  
  470. give_item( id, "weapon_knife" )
  471. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  472. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  473. }
  474. case 3:
  475. {
  476. strip_user_weapons(id)
  477.  
  478. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  479. cs_set_user_bpammo(id, CSW_M3, 32)
  480. cs_set_weapon_ammo( give_item( id, "weapon_awp" ), 10 )
  481. cs_set_user_bpammo(id, CSW_AWP, 30)
  482.  
  483. give_item( id, "weapon_knife" )
  484. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  485. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  486.  
  487. }
  488. case 4:
  489. {
  490. strip_user_weapons(id)
  491.  
  492. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  493. cs_set_user_bpammo(id, CSW_M3, 32)
  494. give_item(id, "weapon_hegrenade")
  495. give_item(id, "weapon_flashbang")
  496. give_item(id, "weapon_flashbang")
  497.  
  498. give_item( id, "weapon_knife" )
  499. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  500. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  501. }
  502. }
  503.  
  504. emit_sound(id, CHAN_VOICE, g_sound_beep, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  505. menu_vip(id)
  506. menu_destroy(menu);
  507. return PLUGIN_HANDLED;
  508. }
  509.  
  510. public second_menu(id)
  511. {
  512. if(!vip(id) || !is_user_alive(id))
  513. return
  514.  
  515. new menu = menu_create("\rSurf VIP Extra menü! \y[Cfg: Danii]", "second_menu_handler");
  516.  
  517. menu_additem(menu, "\w Kisebb gravitáció", "1", 0);
  518. menu_additem(menu, "\d Gyorsabb sebesség", "2", 0);
  519. menu_additem(menu, "\w Több élet", "3", 0);
  520. menu_additem(menu, "\d Nagyobb sebzés", "4", 0);
  521.  
  522. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  523. menu_display(id, menu, 0);
  524.  
  525. }
  526.  
  527. public second_menu_handler(id, menu, item)
  528. {
  529. if( item == MENU_EXIT )
  530. {
  531. menu_destroy(menu);
  532. return PLUGIN_HANDLED;
  533. }
  534.  
  535. new data[6], iName[64];
  536. new access, callback;
  537.  
  538. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  539.  
  540. new key = str_to_num(data);
  541.  
  542. switch(key)
  543. {
  544. case 1:
  545. {
  546. new Float: gravity = get_pcvar_num(cvar_gravity) / 800.0
  547. set_user_gravity(id, gravity)
  548. }
  549. case 2:
  550. {
  551. g_speed[id] = true
  552. }
  553. case 3:
  554. {
  555. set_user_health(id, get_user_health(id) + get_pcvar_num(cvar_health))
  556. }
  557. case 4:
  558. {
  559. g_damage[id] = true
  560. }
  561. }
  562.  
  563. new map[ 32 ];
  564. get_mapname( map, charsmax( map ) );
  565.  
  566. if( equal( map, "surf_ski_2" ) )
  567. menu_vip(id)
  568.  
  569. emit_sound(id, CHAN_VOICE, g_sound_beep, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  570. menu_destroy(menu);
  571. return PLUGIN_HANDLED;
  572. }
  573.  
  574. public handle_say(id) {
  575. new said[192]
  576. read_args(said,192)
  577. if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
  578. set_task(0.1,"print_adminlist",id)
  579.  
  580. return PLUGIN_CONTINUE
  581. }
  582.  
  583. public print_adminlist(user)
  584. {
  585. new adminnames[33][32]
  586. new message[256]
  587. new contactinfo[256], contact[112]
  588. new id, count, x, len
  589.  
  590. for(id = 1 ; id <= maxplayers ; id++)
  591. if(is_user_connected(id))
  592. if(get_user_flags(id) & ADMIN_LEVEL_H)
  593. get_user_name(id, adminnames[count++], 31)
  594.  
  595. len = format(message, 255, "%s Online V.I.P: ",COLOR)
  596. if(count > 0) {
  597. for(x = 0 ; x < count ; x++) {
  598. len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
  599. if(len > 96 ) {
  600. print_message(user, message)
  601. len = format(message, 255, "%s ",COLOR)
  602. }
  603. }
  604. print_message(user, message)
  605. }
  606. else {
  607. len += format(message[len], 255-len, "Nincs jelent V.I.P!")
  608. print_message(user, message)
  609. }
  610.  
  611. get_cvar_string("amx_contactinfo", contact, 63)
  612. if(contact[0]) {
  613. format(contactinfo, 111, "%s Contact Server Admin -- %s", COLOR, contact)
  614. print_message(user, contactinfo)
  615. }
  616. }
  617.  
  618. print_message(id, msg[])
  619. {
  620. message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  621. write_byte(id)
  622. write_string(msg)
  623. message_end()
  624. }
  625.  
  626. public menu_teleport(id)
  627. {
  628. if(!vip(id) || !is_user_alive(id))
  629. return
  630.  
  631. new Float: cur_time= get_gametime()
  632. new menu = menu_create("\rSurf VIP Teleportáló Menü! \y[Cfg: Danii]", "teleport_menu_handler");
  633.  
  634. menu_additem(menu, "\w Fegyver szoba", "1", 0);
  635. menu_additem(menu, "\d Scout hely", "2", 0);
  636. menu_additem(menu, "\w Márió Szoba", "3", 0);
  637. menu_additem(menu, "\d Awp hely", "4", 0);
  638.  
  639. if(get_pcvar_num(cvar_team_tele))
  640. {
  641. if(cur_time - start_time >= get_pcvar_float(cvar_team_time))
  642. {
  643. menu_additem(menu, "\w CT Oldal", "5", 0);
  644. menu_additem(menu, "\d T Oldal", "6", 0);
  645. g_team_tele = true
  646. }
  647. }
  648.  
  649. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  650. menu_display(id, menu, 0);
  651.  
  652. }
  653.  
  654. public teleport_menu_handler(id, menu, item)
  655. {
  656. if( item == MENU_EXIT )
  657. {
  658. menu_destroy(menu);
  659. return PLUGIN_HANDLED;
  660. }
  661.  
  662. new data[6], iName[64];
  663. new access, callback;
  664.  
  665. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  666.  
  667. new key = str_to_num(data);
  668.  
  669. switch(key)
  670. {
  671. case 1:
  672. {
  673. set_user_origin( id, Gun_Room[ random_num( 0, charsmax( Gun_Room ) ) ] );
  674. }
  675.  
  676. case 2:
  677. {
  678. set_user_origin( id, Scout_Place[ random_num( 0, charsmax( Scout_Place ) ) ] );
  679. }
  680.  
  681. case 3:
  682. {
  683. set_user_origin( id, Mario_Room[ random_num( 0, charsmax( Mario_Room ) ) ] );
  684. }
  685.  
  686. case 4:
  687. {
  688. set_user_origin( id, Awp_Place[ random_num( 0, charsmax( Awp_Place ) ) ] );
  689. }
  690.  
  691. case 5:
  692. {
  693. if(g_team_tele)
  694. set_user_origin( id, CT_4SpawnOrigins[ random_num( 0, charsmax( CT_4SpawnOrigins ) ) ] );
  695. }
  696.  
  697. case 6:
  698. {
  699. if(g_team_tele)
  700. set_user_origin( id, T_4SpawnOrigins[ random_num( 0, charsmax( T_4SpawnOrigins ) ) ] );
  701. }
  702. }
  703.  
  704. emit_sound( id, CHAN_STATIC, TELEPORT_SOUND, VOL_ZERODOTSEVEN, ATTN_NORM, 0, PITCH_NORM );
  705. teleport_effect(id);
  706.  
  707. menu_vip(id)
  708.  
  709. menu_destroy(menu);
  710. return PLUGIN_HANDLED;
  711. }
  712.  
  713. stock teleport_effect(index)
  714. {
  715. new Velocity[ 3 ];
  716. set_pev( index, pev_velocity, Velocity );
  717.  
  718. new iOrigin[ 3 ];
  719. get_user_origin( index, iOrigin, 0 );
  720.  
  721. message_begin( MSG_PVS, SVC_TEMPENTITY, iOrigin );
  722. write_byte( TE_TELEPORT );
  723. write_coord( iOrigin[ 0 ] );
  724. write_coord( iOrigin[ 1 ] );
  725. write_coord( iOrigin[ 2 ] );
  726. message_end();
  727.  
  728. message_begin( MSG_PVS, SVC_TEMPENTITY, iOrigin );
  729. write_byte( TE_TAREXPLOSION );
  730. write_coord( iOrigin[ 0 ] );
  731. write_coord( iOrigin[ 1 ] );
  732. write_coord( iOrigin[ 2 ] );
  733. message_end();
  734. }
  735.  
  736. public ShowMotd(id)
  737. {
  738. show_motd(id, "vip.txt")
  739. }
  740. /*================================================================================
  741.  [Colorchat]
  742. =================================================================================*/
  743.  
  744. ColorChat(id, Color:type, const msg[], any:...)
  745. {
  746. new message[256];
  747.  
  748. switch(type)
  749. {
  750. case NORMAL: // clients scr_concolor cvar color
  751. {
  752. message[0] = 0x01;
  753. }
  754. case GREEN: // Green
  755. {
  756. message[0] = 0x04;
  757. }
  758. default: // White, Red, Blue
  759. {
  760. message[0] = 0x03;
  761. }
  762. }
  763.  
  764. vformat(message[1], 251, msg, 4);
  765.  
  766. // Make sure message is not longer than 192 character. Will crash the server.
  767. message[192] = '^0';
  768.  
  769. new team, ColorChange, index, MSG_Type;
  770.  
  771. if(id)
  772. {
  773. MSG_Type = MSG_ONE_UNRELIABLE;
  774. index = id;
  775. } else {
  776. index = FindPlayer();
  777. MSG_Type = MSG_BROADCAST;
  778. }
  779.  
  780. team = get_user_team(index);
  781. ColorChange = ColorSelection(index, MSG_Type, type);
  782.  
  783. ShowColorMessage(index, MSG_Type, message);
  784.  
  785. if(ColorChange)
  786. {
  787. Team_Info(index, MSG_Type, TeamName[team]);
  788. }
  789. }
  790.  
  791. ShowColorMessage(id, type, message[])
  792. {
  793. static msgSayText;
  794. if(!msgSayText)
  795. {
  796. msgSayText = get_user_msgid("SayText");
  797. }
  798. message_begin(type, msgSayText, _, id);
  799. write_byte(id)
  800. write_string(message);
  801. message_end();
  802. }
  803.  
  804. Team_Info(id, type, team[])
  805. {
  806. static msgTeamInfo;
  807. if(!msgTeamInfo)
  808. {
  809. msgTeamInfo = get_user_msgid("TeamInfo");
  810. }
  811. message_begin(type, msgTeamInfo, _, id);
  812. write_byte(id);
  813. write_string(team);
  814. message_end();
  815.  
  816. return 1;
  817. }
  818.  
  819. ColorSelection(index, type, Color:Type)
  820. {
  821. switch(Type)
  822. {
  823. case RED:
  824. {
  825. return Team_Info(index, type, TeamName[1]);
  826. }
  827. case BLUE:
  828. {
  829. return Team_Info(index, type, TeamName[2]);
  830. }
  831. case GREY:
  832. {
  833. return Team_Info(index, type, TeamName[0]);
  834. }
  835. }
  836.  
  837. return 0;
  838. }
  839.  
  840. FindPlayer()
  841. {
  842. new i = -1, players = get_maxplayers();
  843.  
  844. while(i <= players)
  845. {
  846. if(is_user_connected(++i))
  847. return i;
  848. }
  849.  
  850. return -1;
  851. }
  852. /*================================================================================*/
  853.  
  854. stock bool:vip(id)
  855. {
  856. return (get_user_flags(id) & ADMIN_LEVEL_H)? true : false
  857. }
  858. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  859. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
  860. */
  861.  

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Surf_vip
HozzászólásElküldve: 2013.04.01. 14:58 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
crazy` írta:
pixxa112 írta:
crazy` írta:
SMA Forráskód: [ Mindet kijelol ]
  1. set_task(0.5, "PrintAd")


Köszi.
És azt bele tudnád írni, hogy aki VIP annak minden körben be jöjjön a menü? KÉRLEK !


persze, tessék:
SMA Forráskód: [ Mindet kijelol ]
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <amxmisc>
  5. #include <hamsandwich>
  6. #include <fun>
  7. #include <cstrike>
  8. #include <fakemeta>
  9.  
  10. #define PLUGIN "Surf Vip"
  11. #define VERSION "1.01"
  12. #define AUTHOR "eNz0"
  13.  
  14. #define is_valid_player(%1) (1 <= %1 <= 32)
  15. #define CharsMax(%1) sizeof %1 - 1
  16.  
  17. static const COLOR[] = "^x04"
  18.  
  19. new cvar_time, cvar_type, cvar_blockchat, cvar_team_tele, cvar_team_time, cvar_health, cvar_gravity,
  20. cvar_damage, cvar_speed
  21.  
  22. new bool: g_used[33]
  23. new bool: g_team_tele
  24. new bool: g_speed[33]
  25. new bool: g_damage[33]
  26. new bool: used_weapons[33]
  27. new bool: used_tele[33]
  28. new bool: used_powers[33]
  29.  
  30. static Float: start_time
  31.  
  32. new const g_sound_beep[] = "weapons/c4button.wav";
  33.  
  34. new maxplayers
  35. new gmsgSayText
  36. new g_MsgSync
  37.  
  38. /*================================================================================
  39.  [Colorchat]
  40. =================================================================================*/
  41.  
  42. enum Color
  43. {
  44. NORMAL = 1, // clients scr_concolor cvar color
  45. GREEN, // Green Color
  46. TEAM_COLOR, // Red, grey, blue
  47. GREY, // grey
  48. RED, // Red
  49. BLUE, // Blue
  50. }
  51.  
  52. new const TeamName[][] =
  53. {
  54. "",
  55. "TERRORIST",
  56. "CT",
  57. "SPECTATOR"
  58. }
  59.  
  60. /*================================================================================
  61.  [Teleports]
  62. =================================================================================*/
  63.  
  64. #define TELEPORT_SOUND "common/bodydrop2.wav"
  65. #define VOL_ZERODOTSEVEN 0.7
  66.  
  67. static const CT_4SpawnOrigins[][ 3 ] =
  68. {
  69. { -214, 3715, 41 },
  70. { -448, 3714, 41 },
  71. { -223, 3311, 41 },
  72. { -448, 3308, 41 }
  73. };
  74.  
  75. static const T_4SpawnOrigins[][ 3 ] =
  76. {
  77. { -778, 3705, 41 },
  78. { -554, 3722, 41 },
  79. { -778, 3288, 41 },
  80. { -570, 3347, 41 }
  81. };
  82.  
  83. static const Scout_Place[][ 3 ] =
  84. {
  85. { -317, 943, -1161 },
  86. { -672, 933, -1161 }
  87. };
  88.  
  89. static const Gun_Room[][ 3 ] =
  90. {
  91. { -689, -949, -138 },
  92. { -590, -958, -138 },
  93. { -485, -947, -138 },
  94. { -396, -961, -138 },
  95. { -324, -960, -138 },
  96. { -688, -840, -138 },
  97. { -594, -844, -138 },
  98. { -486, -866, -138 },
  99. { -398, -852, -138 },
  100. { -331, -845, -138 },
  101. { -383, -697, -138 },
  102. { -317, -683, -138 }
  103. };
  104.  
  105. static const Mario_Room[][ 3 ] =
  106. {
  107. { 3610, 1053, -2317 },
  108. { 3612, 629, -2317 },
  109. { 3403, 1079, -2273 },
  110. { 3081, 1091, -2317 },
  111. { 3391, 641, -2317 },
  112. { 3056, 578, -2317 },
  113. { 3116, 285, -2275 },
  114. { 3343, 245, -2317 }
  115. };
  116.  
  117. static const Awp_Place[][ 3 ] =
  118. {
  119. { 1795, -1070, -159 },
  120. { 1544, -1075, -159 },
  121. { 1304, -1072, -159 }
  122. };
  123.  
  124. /*================================================================================*/
  125.  
  126. public plugin_init()
  127. {
  128. register_plugin(PLUGIN, VERSION, AUTHOR)
  129.  
  130. RegisterHam(Ham_Spawn, "player", "bacon_spawn", 1)
  131. RegisterHam(Ham_TakeDamage, "player", "bacon_damage")
  132.  
  133. register_forward(FM_PlayerPreThink, "fwd_player_prethink")
  134.  
  135. cvar_type = register_cvar("vip_type", "1") //1 - auto kiekviena spawn, 0 - Parasius /vipmenu)
  136. cvar_time = register_cvar("vip_time", "5.0") //Laikas iki vip menu pasirodymo (su 1 tipu)
  137. cvar_blockchat = register_cvar("vip_block_chat", "1") //Nerodyti, kai vipas paraso /vipmenu
  138. cvar_team_tele = register_cvar("vip_team_tele", "1") //Ijungti teleportus i spawn vietas
  139. cvar_team_time = register_cvar("vip_team_tele_time", "10") //Po kiek laiko ijungti spawn teleportus
  140.  
  141. //Galiu meniu
  142. cvar_health = register_cvar("vip_extra_health", "50") //Papildomos vip gyvybes
  143. cvar_gravity = register_cvar("vip_gravity", "600") //Vip gravitacija
  144. cvar_damage = register_cvar("vip_dmg_multi", "1.5") //Vip multi zala (1.0 normali)
  145. cvar_speed = register_cvar("vip_speed", "300") //Vip greitis
  146.  
  147. register_clcmd( "say /vipmenu", "vipmenu", ADMIN_LEVEL_H);
  148. register_clcmd("say /vip", "ShowMotd")
  149. register_clcmd( "say", "handle_say")
  150.  
  151. register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
  152. register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
  153.  
  154. maxplayers = get_maxplayers()
  155. g_MsgSync = CreateHudSyncObj()
  156. gmsgSayText = get_user_msgid("SayText")
  157. }
  158.  
  159. public client_connect(id)
  160. {
  161. new name[32];
  162. get_user_name(id,name,31);
  163.  
  164.  
  165. if(vip(id))
  166. ColorChat(0, RED, "^x04[VIP]^x01 V.I.P csatlakozott:^x03 %s", name);
  167.  
  168.  
  169. }
  170.  
  171. public on_damage(id)
  172. {
  173. new attacker = get_user_attacker(id)
  174.  
  175. if ( is_user_connected(id) && is_user_connected(attacker))
  176. if (vip(attacker))
  177. {
  178. new damage = read_data(2)
  179.  
  180. set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
  181. ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
  182. }
  183. }
  184.  
  185. public event_new_round()
  186. {
  187. g_team_tele = false
  188. start_time = get_gametime()
  189. }
  190. public plugin_precache()
  191. {
  192. precache_sound( TELEPORT_SOUND );
  193.  
  194. engfunc(EngFunc_PrecacheSound, g_sound_beep);
  195. }
  196.  
  197.  
  198. public bacon_spawn(id)
  199. {
  200.  
  201. if(task_exists(id))
  202. remove_task(id)
  203.  
  204. if(g_used[id])
  205. g_used[id] = false
  206.  
  207. if(vip(id) && (get_pcvar_num(cvar_type) == 1))
  208. {
  209. set_task(get_pcvar_float(cvar_time), "menu_vip", id)
  210. }
  211.  
  212. if(!(get_pcvar_num(cvar_type) == 1))
  213. set_task(1.0, "PrintAd")
  214.  
  215. used_powers[id] = false
  216. used_weapons[id] = false
  217. used_tele[id] = false
  218. g_speed[id] = false
  219. g_used[id] = false
  220. g_damage[id] = false
  221. }
  222.  
  223. public PrintAd()
  224. {
  225. ColorChat(0, RED, "^x04[VIP]^x01 Ha szeretned latni a vipmenut, ird be:^x03 /vipmenu");
  226. }
  227. public bacon_damage(victim, inflictor, attacker, Float:damage)
  228. {
  229. if (is_valid_player(attacker) && g_damage[attacker])
  230. {
  231. damage *= get_pcvar_float(cvar_damage)
  232. SetHamParamFloat(4, damage)
  233. }
  234. }
  235.  
  236. public fwd_player_prethink(id)
  237. {
  238.  
  239. if(g_speed[id] && vip(id))
  240. {
  241. new Float:speed
  242. speed = get_pcvar_float(cvar_speed)
  243. engfunc(EngFunc_SetClientMaxspeed, id, speed);
  244. set_pev(id, pev_maxspeed, speed);
  245. }
  246. }
  247.  
  248.  
  249. public vipmenu(id)
  250. {
  251. if(get_pcvar_num(cvar_type) == 0)
  252. {
  253. set_task(0.2, "menu_vip", id)
  254. }
  255.  
  256. else if(get_pcvar_num(cvar_type) == 1)
  257. {
  258. ColorChat(0, RED, "^x04[VIP]^x01 VIP menu^x03 Automatikus!");
  259. }
  260.  
  261. else
  262. {
  263. set_task(0.2, "menu_vip", id)
  264. }
  265.  
  266. if(get_pcvar_num(cvar_blockchat))
  267. return PLUGIN_HANDLED
  268.  
  269. return PLUGIN_CONTINUE
  270. }
  271.  
  272. public menu_vip(id)
  273. {
  274. if(!is_user_alive(id))
  275. return
  276.  
  277. new map[ 32 ];
  278. get_mapname( map, charsmax( map ) );
  279.  
  280. new menu = menu_create("\rSurf V.I.P Menü! \y[Cfg: Danii]", "menu_vip_handler");
  281.  
  282.  
  283. if(vip(id))
  284. {
  285.  
  286. if(!used_weapons[id])
  287. menu_additem(menu, "\w Fegyver menü", "1", 0);
  288.  
  289. else if(used_weapons[id])
  290. menu_additem(menu, "\d Fegyver menü", "1", 0);
  291.  
  292. if(!used_powers[id])
  293. menu_additem(menu, "\w Saját menü", "2", 0);
  294.  
  295. else if(used_powers[id])
  296. menu_additem(menu, "\d Saját menü", "2", 0);
  297.  
  298.  
  299. if( equal( map, "surf_ski_2" ) )
  300. {
  301. if(!used_tele[id])
  302. menu_additem(menu, "\wTelepor Menü", "3", 0);
  303.  
  304. else if(used_tele[id])
  305. menu_additem(menu, "\wTelepor Menü", "3", 0);
  306.  
  307. }
  308.  
  309. }
  310.  
  311. else
  312. {
  313.  
  314. menu_additem(menu, "\d Fegyver Menü", "1", 0);
  315.  
  316. menu_additem(menu, "\d Saját Menü", "2", 0);
  317.  
  318. menu_additem(menu, "\d Teleport Menü", "3", 0);
  319.  
  320. menu_additem(menu, "\w V.I.P!", "4", 0);
  321.  
  322. }
  323.  
  324. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  325. menu_display(id, menu, 0);
  326. }
  327.  
  328. public menu_vip_handler(id, menu, item)
  329. {
  330. if( item == MENU_EXIT )
  331. {
  332. menu_destroy(menu);
  333. return PLUGIN_HANDLED;
  334. }
  335.  
  336. new data[6], iName[64];
  337. new access, callback;
  338.  
  339. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  340.  
  341. new key = str_to_num(data);
  342.  
  343. new map[ 32 ];
  344. get_mapname( map, charsmax( map ) );
  345.  
  346. switch(key)
  347. {
  348. case 1:
  349. {
  350. if(!used_weapons[id])
  351. {
  352. menu_weapons(id)
  353. used_weapons[id] = true
  354. ColorChat(id, RED, "^x04[VIP]^x04 Fegyver menu aktiv!")
  355. }
  356. else
  357. {
  358. ColorChat(id, RED, "^x04[VIP]^x03 Varjon a kovetkezo korig!")
  359. menu_vip(id)
  360. }
  361. }
  362. case 2:
  363. {
  364.  
  365. if(!used_powers[id])
  366. {
  367. second_menu(id)
  368. used_powers[id] = true
  369. ColorChat(id, RED, "^x04[VIP]^x04 Fegyver menu aktiv!")
  370. }
  371. else
  372. {
  373. ColorChat(id, RED, "^x04[VIP]^x03 Varjon a kovetkezo korig!")
  374. menu_vip(id)
  375. }
  376.  
  377.  
  378. }
  379.  
  380. case 3:
  381. {
  382. if( equal( map, "surf_ski_2" ) )
  383. {
  384. if(!used_tele[id])
  385. {
  386. menu_teleport(id)
  387. used_tele[id] = true
  388. ColorChat(id, RED, "^x04[VIP]^x04 Teleport Menu aktiv!")
  389. }
  390. else
  391. {
  392. ColorChat(id, RED, "^x04[VIP]^x03 Varjon a kovetkezo korig!")
  393. menu_vip(id)
  394. }
  395. }
  396. }
  397.  
  398. case 4:
  399. {
  400. ShowMotd(id)
  401. }
  402.  
  403. }
  404.  
  405. emit_sound(id, CHAN_VOICE, g_sound_beep, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  406. menu_destroy(menu);
  407. return PLUGIN_HANDLED;
  408. }
  409.  
  410. public menu_weapons(id)
  411. {
  412.  
  413. if(!vip(id) || !is_user_alive(id))
  414. return
  415.  
  416. g_used[id] = true
  417.  
  418. new menu = menu_create("\rSurf V.I.P fegyver Menü! \y[Cfg: Danii]", "weapon_menu_handler");
  419.  
  420. menu_additem(menu, "\w AK47 + M3", "1", 0);
  421. menu_additem(menu, "\d M4A1 + M3", "2", 0);
  422. menu_additem(menu, "\w AWP + M3", "3", 0);
  423. menu_additem(menu, "\d Gránátok + M3", "4", 0);
  424.  
  425. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  426. menu_display(id, menu, 0);
  427.  
  428. }
  429.  
  430. public weapon_menu_handler(id, menu, item)
  431. {
  432. if( item == MENU_EXIT )
  433. {
  434. menu_destroy(menu);
  435. return PLUGIN_HANDLED;
  436. }
  437.  
  438. new data[6], iName[64];
  439. new access, callback;
  440.  
  441. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  442.  
  443. new key = str_to_num(data);
  444.  
  445. switch(key)
  446. {
  447. case 1:
  448. {
  449. strip_user_weapons(id)
  450.  
  451. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  452. cs_set_user_bpammo(id, CSW_M3, 32)
  453. cs_set_weapon_ammo( give_item( id, "weapon_ak47" ), 30 )
  454. cs_set_user_bpammo(id, CSW_AK47, 90)
  455.  
  456. give_item( id, "weapon_knife" )
  457. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  458. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  459.  
  460. }
  461. case 2:
  462. {
  463. strip_user_weapons(id)
  464.  
  465. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  466. cs_set_user_bpammo(id, CSW_M3, 32)
  467. cs_set_weapon_ammo( give_item( id, "weapon_m4a1" ), 30 )
  468. cs_set_user_bpammo(id, CSW_M4A1, 90)
  469.  
  470. give_item( id, "weapon_knife" )
  471. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  472. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  473. }
  474. case 3:
  475. {
  476. strip_user_weapons(id)
  477.  
  478. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  479. cs_set_user_bpammo(id, CSW_M3, 32)
  480. cs_set_weapon_ammo( give_item( id, "weapon_awp" ), 10 )
  481. cs_set_user_bpammo(id, CSW_AWP, 30)
  482.  
  483. give_item( id, "weapon_knife" )
  484. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  485. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  486.  
  487. }
  488. case 4:
  489. {
  490. strip_user_weapons(id)
  491.  
  492. cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
  493. cs_set_user_bpammo(id, CSW_M3, 32)
  494. give_item(id, "weapon_hegrenade")
  495. give_item(id, "weapon_flashbang")
  496. give_item(id, "weapon_flashbang")
  497.  
  498. give_item( id, "weapon_knife" )
  499. cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 7 )
  500. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  501. }
  502. }
  503.  
  504. emit_sound(id, CHAN_VOICE, g_sound_beep, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  505. menu_vip(id)
  506. menu_destroy(menu);
  507. return PLUGIN_HANDLED;
  508. }
  509.  
  510. public second_menu(id)
  511. {
  512. if(!vip(id) || !is_user_alive(id))
  513. return
  514.  
  515. new menu = menu_create("\rSurf VIP Extra menü! \y[Cfg: Danii]", "second_menu_handler");
  516.  
  517. menu_additem(menu, "\w Kisebb gravitáció", "1", 0);
  518. menu_additem(menu, "\d Gyorsabb sebesség", "2", 0);
  519. menu_additem(menu, "\w Több élet", "3", 0);
  520. menu_additem(menu, "\d Nagyobb sebzés", "4", 0);
  521.  
  522. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  523. menu_display(id, menu, 0);
  524.  
  525. }
  526.  
  527. public second_menu_handler(id, menu, item)
  528. {
  529. if( item == MENU_EXIT )
  530. {
  531. menu_destroy(menu);
  532. return PLUGIN_HANDLED;
  533. }
  534.  
  535. new data[6], iName[64];
  536. new access, callback;
  537.  
  538. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  539.  
  540. new key = str_to_num(data);
  541.  
  542. switch(key)
  543. {
  544. case 1:
  545. {
  546. new Float: gravity = get_pcvar_num(cvar_gravity) / 800.0
  547. set_user_gravity(id, gravity)
  548. }
  549. case 2:
  550. {
  551. g_speed[id] = true
  552. }
  553. case 3:
  554. {
  555. set_user_health(id, get_user_health(id) + get_pcvar_num(cvar_health))
  556. }
  557. case 4:
  558. {
  559. g_damage[id] = true
  560. }
  561. }
  562.  
  563. new map[ 32 ];
  564. get_mapname( map, charsmax( map ) );
  565.  
  566. if( equal( map, "surf_ski_2" ) )
  567. menu_vip(id)
  568.  
  569. emit_sound(id, CHAN_VOICE, g_sound_beep, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  570. menu_destroy(menu);
  571. return PLUGIN_HANDLED;
  572. }
  573.  
  574. public handle_say(id) {
  575. new said[192]
  576. read_args(said,192)
  577. if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
  578. set_task(0.1,"print_adminlist",id)
  579.  
  580. return PLUGIN_CONTINUE
  581. }
  582.  
  583. public print_adminlist(user)
  584. {
  585. new adminnames[33][32]
  586. new message[256]
  587. new contactinfo[256], contact[112]
  588. new id, count, x, len
  589.  
  590. for(id = 1 ; id <= maxplayers ; id++)
  591. if(is_user_connected(id))
  592. if(get_user_flags(id) & ADMIN_LEVEL_H)
  593. get_user_name(id, adminnames[count++], 31)
  594.  
  595. len = format(message, 255, "%s Online V.I.P: ",COLOR)
  596. if(count > 0) {
  597. for(x = 0 ; x < count ; x++) {
  598. len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
  599. if(len > 96 ) {
  600. print_message(user, message)
  601. len = format(message, 255, "%s ",COLOR)
  602. }
  603. }
  604. print_message(user, message)
  605. }
  606. else {
  607. len += format(message[len], 255-len, "Nincs jelent V.I.P!")
  608. print_message(user, message)
  609. }
  610.  
  611. get_cvar_string("amx_contactinfo", contact, 63)
  612. if(contact[0]) {
  613. format(contactinfo, 111, "%s Contact Server Admin -- %s", COLOR, contact)
  614. print_message(user, contactinfo)
  615. }
  616. }
  617.  
  618. print_message(id, msg[])
  619. {
  620. message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  621. write_byte(id)
  622. write_string(msg)
  623. message_end()
  624. }
  625.  
  626. public menu_teleport(id)
  627. {
  628. if(!vip(id) || !is_user_alive(id))
  629. return
  630.  
  631. new Float: cur_time= get_gametime()
  632. new menu = menu_create("\rSurf VIP Teleportáló Menü! \y[Cfg: Danii]", "teleport_menu_handler");
  633.  
  634. menu_additem(menu, "\w Fegyver szoba", "1", 0);
  635. menu_additem(menu, "\d Scout hely", "2", 0);
  636. menu_additem(menu, "\w Márió Szoba", "3", 0);
  637. menu_additem(menu, "\d Awp hely", "4", 0);
  638.  
  639. if(get_pcvar_num(cvar_team_tele))
  640. {
  641. if(cur_time - start_time >= get_pcvar_float(cvar_team_time))
  642. {
  643. menu_additem(menu, "\w CT Oldal", "5", 0);
  644. menu_additem(menu, "\d T Oldal", "6", 0);
  645. g_team_tele = true
  646. }
  647. }
  648.  
  649. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  650. menu_display(id, menu, 0);
  651.  
  652. }
  653.  
  654. public teleport_menu_handler(id, menu, item)
  655. {
  656. if( item == MENU_EXIT )
  657. {
  658. menu_destroy(menu);
  659. return PLUGIN_HANDLED;
  660. }
  661.  
  662. new data[6], iName[64];
  663. new access, callback;
  664.  
  665. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  666.  
  667. new key = str_to_num(data);
  668.  
  669. switch(key)
  670. {
  671. case 1:
  672. {
  673. set_user_origin( id, Gun_Room[ random_num( 0, charsmax( Gun_Room ) ) ] );
  674. }
  675.  
  676. case 2:
  677. {
  678. set_user_origin( id, Scout_Place[ random_num( 0, charsmax( Scout_Place ) ) ] );
  679. }
  680.  
  681. case 3:
  682. {
  683. set_user_origin( id, Mario_Room[ random_num( 0, charsmax( Mario_Room ) ) ] );
  684. }
  685.  
  686. case 4:
  687. {
  688. set_user_origin( id, Awp_Place[ random_num( 0, charsmax( Awp_Place ) ) ] );
  689. }
  690.  
  691. case 5:
  692. {
  693. if(g_team_tele)
  694. set_user_origin( id, CT_4SpawnOrigins[ random_num( 0, charsmax( CT_4SpawnOrigins ) ) ] );
  695. }
  696.  
  697. case 6:
  698. {
  699. if(g_team_tele)
  700. set_user_origin( id, T_4SpawnOrigins[ random_num( 0, charsmax( T_4SpawnOrigins ) ) ] );
  701. }
  702. }
  703.  
  704. emit_sound( id, CHAN_STATIC, TELEPORT_SOUND, VOL_ZERODOTSEVEN, ATTN_NORM, 0, PITCH_NORM );
  705. teleport_effect(id);
  706.  
  707. menu_vip(id)
  708.  
  709. menu_destroy(menu);
  710. return PLUGIN_HANDLED;
  711. }
  712.  
  713. stock teleport_effect(index)
  714. {
  715. new Velocity[ 3 ];
  716. set_pev( index, pev_velocity, Velocity );
  717.  
  718. new iOrigin[ 3 ];
  719. get_user_origin( index, iOrigin, 0 );
  720.  
  721. message_begin( MSG_PVS, SVC_TEMPENTITY, iOrigin );
  722. write_byte( TE_TELEPORT );
  723. write_coord( iOrigin[ 0 ] );
  724. write_coord( iOrigin[ 1 ] );
  725. write_coord( iOrigin[ 2 ] );
  726. message_end();
  727.  
  728. message_begin( MSG_PVS, SVC_TEMPENTITY, iOrigin );
  729. write_byte( TE_TAREXPLOSION );
  730. write_coord( iOrigin[ 0 ] );
  731. write_coord( iOrigin[ 1 ] );
  732. write_coord( iOrigin[ 2 ] );
  733. message_end();
  734. }
  735.  
  736. public ShowMotd(id)
  737. {
  738. show_motd(id, "vip.txt")
  739. }
  740. /*================================================================================
  741.  [Colorchat]
  742. =================================================================================*/
  743.  
  744. ColorChat(id, Color:type, const msg[], any:...)
  745. {
  746. new message[256];
  747.  
  748. switch(type)
  749. {
  750. case NORMAL: // clients scr_concolor cvar color
  751. {
  752. message[0] = 0x01;
  753. }
  754. case GREEN: // Green
  755. {
  756. message[0] = 0x04;
  757. }
  758. default: // White, Red, Blue
  759. {
  760. message[0] = 0x03;
  761. }
  762. }
  763.  
  764. vformat(message[1], 251, msg, 4);
  765.  
  766. // Make sure message is not longer than 192 character. Will crash the server.
  767. message[192] = '^0';
  768.  
  769. new team, ColorChange, index, MSG_Type;
  770.  
  771. if(id)
  772. {
  773. MSG_Type = MSG_ONE_UNRELIABLE;
  774. index = id;
  775. } else {
  776. index = FindPlayer();
  777. MSG_Type = MSG_BROADCAST;
  778. }
  779.  
  780. team = get_user_team(index);
  781. ColorChange = ColorSelection(index, MSG_Type, type);
  782.  
  783. ShowColorMessage(index, MSG_Type, message);
  784.  
  785. if(ColorChange)
  786. {
  787. Team_Info(index, MSG_Type, TeamName[team]);
  788. }
  789. }
  790.  
  791. ShowColorMessage(id, type, message[])
  792. {
  793. static msgSayText;
  794. if(!msgSayText)
  795. {
  796. msgSayText = get_user_msgid("SayText");
  797. }
  798. message_begin(type, msgSayText, _, id);
  799. write_byte(id)
  800. write_string(message);
  801. message_end();
  802. }
  803.  
  804. Team_Info(id, type, team[])
  805. {
  806. static msgTeamInfo;
  807. if(!msgTeamInfo)
  808. {
  809. msgTeamInfo = get_user_msgid("TeamInfo");
  810. }
  811. message_begin(type, msgTeamInfo, _, id);
  812. write_byte(id);
  813. write_string(team);
  814. message_end();
  815.  
  816. return 1;
  817. }
  818.  
  819. ColorSelection(index, type, Color:Type)
  820. {
  821. switch(Type)
  822. {
  823. case RED:
  824. {
  825. return Team_Info(index, type, TeamName[1]);
  826. }
  827. case BLUE:
  828. {
  829. return Team_Info(index, type, TeamName[2]);
  830. }
  831. case GREY:
  832. {
  833. return Team_Info(index, type, TeamName[0]);
  834. }
  835. }
  836.  
  837. return 0;
  838. }
  839.  
  840. FindPlayer()
  841. {
  842. new i = -1, players = get_maxplayers();
  843.  
  844. while(i <= players)
  845. {
  846. if(is_user_connected(++i))
  847. return i;
  848. }
  849.  
  850. return -1;
  851. }
  852. /*================================================================================*/
  853.  
  854. stock bool:vip(id)
  855. {
  856. return (get_user_flags(id) & ADMIN_LEVEL_H)? true : false
  857. }
  858. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  859. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
  860. */
  861.  


Köszi :D

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Surf_vip
HozzászólásElküldve: 2013.04.01. 14:58 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7962
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 535 alkalommal
Ez mindenkinek fogja írni, nem csak a vipeknek.

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Surf_vip
HozzászólásElküldve: 2013.04.01. 14:59 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
kiki írta:
Ez mindenkinek fogja írni, nem csak a vipeknek.

mivel a szerveremen is ez van, CSAK a vipeknek fogja írni.
ediT:
SMA Forráskód: [ Mindet kijelol ]
  1. stock bool:vip(id)
  2. {
  3. return (get_user_flags(id) & ADMIN_LEVEL_H)? true : false
  4. }

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Surf_vip
HozzászólásElküldve: 2013.04.01. 17:14 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
crazy` írta:
kiki írta:
Ez mindenkinek fogja írni, nem csak a vipeknek.

mivel a szerveremen is ez van, CSAK a vipeknek fogja írni.
ediT:
SMA Forráskód: [ Mindet kijelol ]
  1. stock bool:vip(id)
  2. {
  3. return (get_user_flags(id) & ADMIN_LEVEL_H)? true : false
  4. }


Bele tudnád írni mert nem látom hova kell.

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Surf_vip
HozzászólásElküldve: 2013.04.01. 17:22 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
beleírtam, a kiki posztja előttibe.

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Surf_vip
HozzászólásElküldve: 2013.04.01. 17:35 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
crazy` írta:
beleírtam, a kiki posztja előttibe.


Köszi, de nem hozza be a VIPnek :(

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 12 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 16 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole