hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.08.06. 21:02



Jelenlévő felhasználók

Jelenleg 349 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 347 vendég

A legtöbb felhasználó (2883 fő) 2025.07.30. 16:00-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], 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  [7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Zm vip
HozzászólásElküldve:2012.06.06. 14:07 
Offline
Őstag
Avatar

Csatlakozott:2011.11.15. 16:29
Hozzászólások:1142
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 24 alkalommal
Hogy lehetne megoldani , hogy a vip extrák nélkül lehessen venni vipet.?
ugy hogy csak simán rámegyünk a VIP-re extra cuccok menübe és megvesszük,( Névre)

(Ugyanis nem akarok semmi mást csak amit kap alapból több sebbzés,3 ugrás több páncél stb.)

_________________
[url=http://www.gametracker.com/server_info/188.227.227.114:27286/][img]http://cache.www.gametracker.com/server_info/188.227.227.114:27286/b_350_20_323957_202743_F19A15_111111.png[/img][/url]


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

Csatlakozott:2011.09.17. 17:54
Hozzászólások:2350
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 57 alkalommal
Nem raksz be vip extrákat...


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zm vip
HozzászólásElküldve:2012.06.06. 14:21 
Offline
Őstag
Avatar

Csatlakozott:2011.11.15. 16:29
Hozzászólások:1142
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 24 alkalommal
[VIP] You are not VIP member.


<- Akkor meg ezt irja. mikor megakarom venni

_________________
[url=http://www.gametracker.com/server_info/188.227.227.114:27286/][img]http://cache.www.gametracker.com/server_info/188.227.227.114:27286/b_350_20_323957_202743_F19A15_111111.png[/img][/url]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zm vip
HozzászólásElküldve:2012.06.06. 15:31 
Offline
Veterán
Avatar

Csatlakozott:2011.06.07. 15:29
Hozzászólások:1728
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 63 alkalommal
Akkor úgy csináld, hogy ha valaki beírja, hogy pl. /buyvip, akkor ad neki VIP-et abban az esetben, ha van elég Ammo-ja. Persze le is vonja az adott ammot. ( amnnyibe kerül a cucc. )

Vagy csinálsz egy menüt, amit beleépítesz ZP Menübe.
Ha kell segítség ebben ,szólj!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zm vip
HozzászólásElküldve:2012.06.06. 15:44 
Offline
Őstag
Avatar

Csatlakozott:2011.11.15. 16:29
Hozzászólások:1142
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 24 alkalommal
Hát kéne ,mert hülye vagyok ehhez:S

_________________
[url=http://www.gametracker.com/server_info/188.227.227.114:27286/][img]http://cache.www.gametracker.com/server_info/188.227.227.114:27286/b_350_20_323957_202743_F19A15_111111.png[/img][/url]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zm vip
HozzászólásElküldve:2012.06.06. 19:11 
Offline
Veterán
Avatar

Csatlakozott:2011.06.07. 15:29
Hozzászólások:1728
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 63 alkalommal
4.3, vagy 5.0?
Ha átírt forrásod van, akkor azt rakd be. ( lehet, hogy nem fogja engedni, mert max 60 000 karaktert tartalmazhat egy üzenet. )


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Zm vip
HozzászólásElküldve:2012.06.06. 22:18 
Offline
Őstag
Avatar

Csatlakozott:2011.11.15. 16:29
Hozzászólások:1142
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 24 alkalommal
4.3

Kód:
  1. /* Plugin generated by AMXX-Studio */

  2.  

  3. #include <amxmodx>

  4. #include <amxmisc>

  5. #include <fakemeta>

  6. #include <engine>

  7. #include <hamsandwich>

  8. #include <zombieplague>

  9.  

  10. ////////// PLUGIN SETTINGS //////////

  11. #define MODE 3

  12. #define CHAT_PREFIX "[VIP]"

  13.  

  14. // (Only if MODE 1 is turrned OFF. Otherwise set flags in vips.ini.) //

  15. #define VIPACCES ADMIN_LEVEL_H

  16. #define MJACCES ADMIN_LEVEL_H

  17. ////////// SETTINGS END //////////

  18.  

  19. // Flags

  20. #define FLAG_A (1<<0)

  21. #define FLAG_B (1<<1)

  22. #define FLAG_C (1<<2)

  23. #define FLAG_D (1<<3)

  24. #define FLAG_E (1<<4)

  25. #define FLAG_K (1<<10)

  26.  

  27. #define VERSION "1.6"

  28.  

  29. #if cellbits == 32

  30. const OFFSET_CLIPAMMO = 51

  31. #else

  32. const OFFSET_CLIPAMMO = 65

  33. #endif

  34. const OFFSET_LINUX_WEAPONS = 4

  35.  

  36. const DMG_HEGRENADE = (1<<24)

  37.  

  38. #if MODE & (1<<0) || MODE & (1<<1)

  39. new amx_password_field_string[31]

  40. #endif

  41. #if MODE & (1<<0)

  42. new g_user_privileges[33]

  43. enum _:database_items

  44. {

  45.         auth[50],

  46.         password[50],

  47.         accessflags,

  48.         flags

  49. }

  50. new vips_database[database_items]

  51. new Array:database_holder

  52. #endif

  53. #if MODE & (1<<1)

  54. const ZV_PLUGIN_HANDLED = 97

  55. enum _:items

  56. {

  57.         i_name[31],

  58.         i_description[31],

  59.         i_cost,

  60.         i_team

  61. }

  62. new g_register_in_zp_extra

  63. new g_zp_extra_item_number

  64. new g_menu_close

  65. new extra_items[items]

  66. new Array:items_database

  67. new g_registered_items_count

  68. new g_forward_return

  69. new g_extra_item_selected

  70. #endif

  71. #if MODE == 3

  72. new g_vip_buy_time

  73. new g_vip_cost_ammo

  74. new g_vip_buy_flags

  75. new days

  76. new months

  77. new years

  78. #endif

  79. new const MAXCLIP[] = { -1, 13, -1, 10, 1, 7, -1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 }

  80. static const CONTACT[] = ""

  81. new g_jumps, g_armor, g_killammo, g_infectammo, g_infecthealth, g_nemhealth, g_show_vips, g_unlimited_clip, g_damage_reward, g_damage_increase

  82. new g_bit

  83. new maxplayers, g_msgSayText

  84. new jumpnum[33]

  85. new bool:dojump[33]

  86. new Float:g_damage[33]

  87.  

  88. public plugin_init() {

  89.        

  90.         register_plugin("ZM VIP", VERSION, "aaarnas")

  91.         RegisterHam(Ham_Spawn, "player", "FwdHamPlayerSpawnPost", 1)

  92.         RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")

  93.         RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")

  94.         register_event("ResetHUD", "HUDReset", "be")

  95.         register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")

  96.  

  97.         maxplayers = get_maxplayers()

  98.         g_msgSayText = get_user_msgid("SayText")

  99.        

  100.         g_jumps = register_cvar("zp_vip_jumps", "1")

  101.         g_bit = get_pcvar_num(register_cvar("zp_vip_allow_jump", "3"))

  102.         g_armor = register_cvar("zp_vip_armor", "65")

  103.         g_killammo = register_cvar("zp_vip_killammo", "2")

  104.         g_infectammo = register_cvar("zp_vip_infectammo", "2")

  105.         g_infecthealth = register_cvar("zp_vip_infecthealth", "300")

  106.         g_nemhealth = register_cvar("zp_vip_nemextra", "1")

  107.         g_show_vips = register_cvar("zp_vip_show", "1")

  108.         g_unlimited_clip = register_cvar("zp_vip_unlimited_ammo", "0")

  109.         g_damage_reward = register_cvar("zp_vip_damage_reward", "500")

  110.         g_damage_increase = register_cvar("zp_vip_damage_increase", "1.5")

  111.         register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)

  112.         register_cvar("zp_vip_version", VERSION, FCVAR_SERVER|FCVAR_SPONLY)

  113.         set_cvar_string("zp_vip_version", VERSION)

  114. #if MODE & (1<<0) || MODE & (1<<1)

  115.         get_cvar_string("amx_password_field", amx_password_field_string, 30)

  116.         register_dictionary("zm_vip.txt")

  117. #endif

  118. #if MODE & (1<<0) && MODE & (1<<1)

  119.         g_vip_cost_ammo = register_cvar("zp_vip_cost_ammo", "0")

  120.         g_vip_buy_time = register_cvar("zp_vip_buy_time", "7")

  121.         g_vip_buy_flags = register_cvar("zp_vip_buy_flags", "abcd")

  122.         set_task(5.0,"check_date",0)

  123. #endif

  124. #if MODE & (1<<0)

  125.         register_concmd("amx_reloadvips", "reload_vips", ADMIN_CFG)

  126.         reload_vips()

  127. #endif

  128. #if MODE & (1<<1)

  129.         register_clcmd("say /vm", "menu_open")

  130.         g_register_in_zp_extra = register_cvar("zp_vip_register_in_zp_extra", "1")

  131.         g_menu_close = register_cvar("zp_vip_menu_close", "1")

  132.         items_database = ArrayCreate(items)

  133.        

  134.         new temp[31]

  135.         formatex(temp, 30, "%L", LANG_PLAYER, "VIP_EXTRA_NAME")

  136.         if(get_pcvar_num(g_register_in_zp_extra)) g_zp_extra_item_number = zp_register_extra_item(temp, 0, 0)

  137.         g_extra_item_selected = CreateMultiForward("zv_extra_item_selected", ET_CONTINUE, FP_CELL, FP_CELL)

  138. #endif

  139.         register_clcmd("say /vips", "print_adminlist")

  140.         register_clcmd("say /vip", "ShowMotd")

  141. }

  142. public plugin_cfg()

  143. {

  144.         new directory[31]

  145.         get_configsdir(directory, 30)

  146.         server_cmd("exec %s/zm_vip.cfg", directory)

  147. }

  148. #if MODE & (1<<1) || MODE & (1<<0)

  149. public plugin_natives() {

  150. #if MODE & (1<<1)

  151.         register_native("zv_register_extra_item", "native_zv_register_extra_item", 1)

  152. #endif

  153. #if MODE & (1<<0)

  154.         register_native("zv_get_user_flags", "native_zv_get_user_flags", 1)

  155. #endif 

  156. }

  157. #endif

  158. public FwdHamPlayerSpawnPost(id) {

  159. #if MODE & (1<<0)

  160.         if(!(g_user_privileges[id] & FLAG_A))

  161. #else

  162.         if(!(get_user_flags(id) & VIPACCES))

  163. #endif

  164.                 return PLUGIN_HANDLED;

  165.  

  166.         if(pev(id, pev_armorvalue) < get_pcvar_num(g_armor))

  167.         set_pev(id, pev_armorvalue, float(get_pcvar_num(g_armor)))

  168.         return HAM_IGNORED;

  169. }

  170.  

  171. public fw_PlayerKilled(victim, attacker) {

  172. #if MODE & (1<<0)

  173.         if(is_user_alive(attacker) && g_user_privileges[attacker] & FLAG_A) {

  174. #else

  175.         if(is_user_alive(attacker) && get_user_flags(attacker) & VIPACCES) {

  176. #endif

  177.                 if(zp_get_user_zombie(attacker) && !(zp_get_user_nemesis(attacker) && !get_pcvar_num(g_nemhealth))) fm_set_user_health(attacker, (pev(attacker, pev_health) + get_pcvar_num(g_infecthealth)))

  178.                 zp_set_user_ammo_packs(attacker, zp_get_user_ammo_packs(attacker) + get_pcvar_num(g_killammo))

  179.         }

  180. }

  181.  

  182. public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) {

  183.        

  184.         if(victim == attacker)

  185.                 return HAM_IGNORED

  186.                

  187.         if(damage_type & DMG_HEGRENADE)

  188.                 return HAM_IGNORED

  189.                

  190.         if(!is_user_connected(attacker))

  191.                 return HAM_IGNORED

  192.        

  193.         if(zp_get_user_zombie(attacker) || zp_get_user_survivor(attacker))

  194.                 return HAM_IGNORED

  195.                

  196. #if MODE & (1<<0)

  197.         if(g_user_privileges[attacker] & FLAG_D) {

  198. #else

  199.         if(get_user_flags(attacker) & VIPACCES) {

  200. #endif

  201.                 if(get_pcvar_num(g_damage_reward) != 0) {

  202.                         g_damage[attacker]+damage

  203.                         if(g_damage[attacker] > float(get_pcvar_num(g_damage_reward))) {

  204.                                 zp_set_user_ammo_packs(attacker, zp_get_user_ammo_packs(attacker)+1)

  205.                                 g_damage[attacker] -= float(get_pcvar_num(g_damage_reward))

  206.                         }

  207.                 }      

  208.         }

  209. #if MODE & (1<<0)

  210.         if(g_user_privileges[attacker] & FLAG_D) {

  211. #else

  212.         if(get_user_flags(attacker) & VIPACCES) {

  213. #endif

  214.                 damage *= get_pcvar_float(g_damage_increase)

  215.                 SetHamParamFloat(4, damage)

  216.         }

  217.         return HAM_IGNORED     

  218.        

  219. }

  220.  

  221. public zp_user_infected_post(id, infector, nemesis) {

  222.        

  223.         setVip()

  224. #if MODE & (1<<0)

  225.         if(g_user_privileges[infector] & FLAG_A) {

  226. #else

  227.         if(get_user_flags(infector) & VIPACCES) {

  228. #endif

  229.                 fm_set_user_health(infector, (pev(infector, pev_health) + get_pcvar_num(g_infecthealth)))

  230.                 zp_set_user_ammo_packs(infector, zp_get_user_ammo_packs(infector) + get_pcvar_num(g_infectammo))

  231.         }      

  232. }

  233.  

  234. public client_connect(id) {

  235.        

  236.         jumpnum[id] = 0

  237.         g_damage[id] = 0.0

  238.         dojump[id] = false

  239. #if MODE & (1<<0)

  240.         set_flags(id)

  241.         if(get_pcvar_num(g_show_vips) == 1 && g_user_privileges[id] & FLAG_A) {

  242. #else

  243.         if(get_pcvar_num(g_show_vips) == 1 && get_user_flags(id) & VIPACCES) {

  244. #endif

  245.                 new name[100]

  246.                 get_user_name(id, name, 100)

  247.                 client_printcolor(0, "/g%L", LANG_PLAYER, "VIP_CONNECTED", name)

  248.         }

  249. }

  250. #if MODE & (1<<1)

  251. public zp_extra_item_selected(id, item_id)

  252.         if(item_id == g_zp_extra_item_number)

  253.                 menu_open(id)

  254.  

  255. public menu_open(id) {

  256. #if MODE & (1<<0)

  257.         if(g_user_privileges[id] & FLAG_E)

  258.                 vip_menu(id)

  259.         else if(g_user_privileges[id] > 0) client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "OFF")  

  260. #else

  261.         if(get_user_flags(id) & VIPACCES)

  262.                 vip_menu(id)

  263. #endif

  264. #if MODE & (1<<0)

  265.         else if(get_pcvar_num(g_vip_cost_ammo) != 0)

  266.                 buy_meniu(id)

  267. #endif

  268.         else client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "NOT_A_VIP")  

  269.         return ZP_PLUGIN_HANDLED

  270. }

  271.        

  272. public vip_menu(id)

  273. {

  274.         if(g_registered_items_count == 0) {

  275.                 client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "OFF")

  276.                 return PLUGIN_HANDLED

  277.         }

  278.         new buttons_string[16], menu_string[31], menu

  279.         formatex(menu_string, 30, "\r%L", id, "MENU_TOP")

  280.         menu = menu_create(menu_string, "vip_menu_handler")

  281.         static i, menu_item[61], team_check, num[3], ammo_packs, check

  282.         check = 0

  283.         team_check = 0

  284.         ammo_packs = zp_get_user_ammo_packs(id)

  285.         if(zp_get_user_zombie(id) && !zp_get_user_nemesis(id)) team_check |= FLAG_A

  286.         else if(!zp_get_user_zombie(id)) team_check |= FLAG_B

  287.         else if(zp_get_user_nemesis(id)) team_check |= FLAG_C

  288.         else if(zp_get_user_survivor(id)) team_check |= FLAG_D

  289.         for(i=0; i < g_registered_items_count; i++) {

  290.                 ArrayGetArray(items_database, i, extra_items)

  291.                 if(extra_items[i_team] == 0 || team_check & extra_items[i_team]) {

  292.                         formatex(menu_item, 61, "%s \r[%s] %s[%d %L]", extra_items[i_name], extra_items[i_description], ammo_packs < extra_items[i_cost] ? "\r" : "\y", extra_items[i_cost], id, "AMMO")

  293.                         formatex(num, 2, "%d", i)

  294.                         menu_additem(menu, menu_item, num, 0)

  295.                         check++

  296.                 }

  297.         }

  298.         if(check == 0) {

  299.                 client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "NO_ITEMS")

  300.                 return 1

  301.         }

  302.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

  303.         formatex(buttons_string, 15, "%L", id, "NEXT")

  304.         menu_setprop(menu, MPROP_NEXTNAME, buttons_string)

  305.         formatex(buttons_string, 15, "%L", id, "BACK")

  306.         menu_setprop(menu, MPROP_BACKNAME, buttons_string)

  307.         formatex(buttons_string, 15, "%L", id, "EXIT")

  308.         menu_setprop(menu, MPROP_EXITNAME, buttons_string)

  309.         menu_display(id, menu, 0)

  310.        

  311.         return 1

  312. }

  313.  

  314. public vip_menu_handler(id, menu, item)

  315. {

  316.         if( item == MENU_EXIT )

  317.         {

  318.                 menu_destroy(menu)

  319.                 return PLUGIN_HANDLED

  320.         }

  321.         new data[6], iName[64], item_id, ammo_packs

  322.         new access, callback

  323.         menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)

  324.         item_id = str_to_num(data)

  325.         ammo_packs = zp_get_user_ammo_packs(id)

  326.         ArrayGetArray(items_database, item_id, extra_items)

  327.         if(ammo_packs >= extra_items[i_cost]) zp_set_user_ammo_packs(id, ammo_packs - extra_items[i_cost])

  328.         else {

  329.                 client_printcolor(id, "/g%s %L", CHAT_PREFIX, id, "MISSING_AMMO", extra_items[i_cost]-ammo_packs)

  330.                 if(g_menu_close) menu_destroy(menu)

  331.                 else vip_menu(id)

  332.                 return PLUGIN_HANDLED

  333.         }

  334.         item_id++

  335.         ExecuteForward(g_extra_item_selected, g_forward_return, id, item_id)

  336.         if (g_forward_return >= ZV_PLUGIN_HANDLED)

  337.                 zp_set_user_ammo_packs(id, ammo_packs)

  338.        

  339.         if(g_menu_close) menu_destroy(menu)

  340.         else vip_menu(id)

  341.         return PLUGIN_HANDLED

  342. }

  343. #endif

  344. #if MODE & (1<<0) && MODE & (1<<1)

  345. public buy_meniu(id)

  346. {

  347.         new buttons_string[16], menu_string[101], menu_item[31], menu

  348.         formatex(menu_string, 100, "\r%L", id, "BUY_MENU_TOP", get_pcvar_num(g_vip_cost_ammo), get_pcvar_num(g_vip_buy_time))

  349.         menu = menu_create(menu_string, "buy_menu_handler")

  350.        

  351.         formatex(menu_item, 30, "%L", id, "BUY_MENU_TYPE1")

  352.         menu_additem(menu, menu_item, "1", 0)

  353.         formatex(menu_item, 30, "%L", id, "BUY_MENU_TYPE2")

  354.         menu_additem(menu, menu_item, "2", 0)

  355.         formatex(menu_item, 30, "%L", id, "BUY_MENU_TYPE3")

  356.         menu_additem(menu, menu_item, "3", 0)

  357.        

  358.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

  359.         formatex(buttons_string, 15, "%L", id, "EXIT")

  360.         menu_setprop(menu, MPROP_EXITNAME, buttons_string)

  361.         menu_display(id, menu, 0)

  362. }

  363.  

  364. public buy_menu_handler(id, menu, item)

  365. {

  366.         if( item == MENU_EXIT )

  367.         {

  368.                 menu_destroy(menu)

  369.                 return PLUGIN_HANDLED

  370.         }

  371.  

  372.         new data[6], iName[64], key, ammo_packs

  373.         new access, callback

  374.         menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)

  375.  

  376.         key = str_to_num(data)

  377.         ammo_packs = zp_get_user_ammo_packs(id)

  378.         if(key > 1) {

  379.                 if(ammo_packs >= get_pcvar_num(g_vip_cost_ammo)) {

  380.                         amx_tempadmin(id, key)

  381.                         zp_set_user_ammo_packs(id, ammo_packs - get_pcvar_num(g_vip_cost_ammo))

  382.                         client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "BOUGHT_VIP", get_pcvar_num(g_vip_buy_time))

  383.                        

  384.                 }

  385.                 else client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "MISSING_AMMO", get_pcvar_num(g_vip_cost_ammo)-ammo_packs)

  386.         }

  387.         else {

  388.                 nick_buy_meniu(id)

  389.                 return PLUGIN_HANDLED

  390.         }

  391.        

  392.         menu_destroy(menu)

  393.         return PLUGIN_HANDLED

  394. }

  395.  

  396. public nick_buy_meniu(id)

  397. {

  398.         new buttons_string[16], menu_string[151], menu_item[81], menu, client_password[21]

  399.         get_user_info(id, amx_password_field_string, client_password, 20)

  400.         formatex(menu_string, 150, "\r%L", id, "NICK_BUY_MENU_TOP", client_password)

  401.         menu = menu_create(menu_string, "nick_buy_menu_handler")

  402.        

  403.         formatex(menu_item, 80, "%L", id, "NICK_BUY_MENU_TYPE1")

  404.         menu_additem(menu, menu_item, "1", 0)

  405.         formatex(menu_item, 80, "%L", id, "NICK_BUY_MENU_TYPE2")

  406.         menu_additem(menu, menu_item, "2", 0)

  407.         formatex(menu_item, 80, "%L", id, "NICK_BUY_MENU_TYPE3", get_pcvar_num(g_vip_cost_ammo) ,get_pcvar_num(g_vip_buy_time))

  408.         menu_additem(menu, menu_item, "3", 0)

  409.        

  410.         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

  411.         formatex(buttons_string, 15, "%L", id, "BACK")

  412.         menu_setprop(menu, MPROP_EXITNAME, buttons_string)

  413.         menu_display(id, menu, 0)

  414.        

  415. }

  416.  

  417. public nick_buy_menu_handler(id, menu, item)

  418. {

  419.         if( item == MENU_EXIT )

  420.         {

  421.                 buy_meniu(id)

  422.                 return PLUGIN_HANDLED

  423.         }

  424.  

  425.         new data[6], iName[64]

  426.         new access, callback

  427.         menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)

  428.  

  429.         new key = str_to_num(data)

  430.         switch(key) {

  431.                 case 1: {

  432.                         generate_password(id)

  433.                         nick_buy_meniu(id)

  434.                 }

  435.                 case 2: nick_buy_meniu_sec(id)

  436.                 case 3: {

  437.                         amx_tempadmin(id, 1)

  438.                         menu_destroy(menu)

  439.                         return PLUGIN_HANDLED

  440.                 }

  441.         }

  442.         return PLUGIN_HANDLED

  443. }

  444. public nick_buy_meniu_sec(id)

  445. {

  446.         new menu_string[151], menu_item[51], menu

  447.         formatex(menu_string, 150, "\r%L", id, "NICK_BUY_MENU_SEC_TOP")

  448.         menu = menu_create(menu_string, "nick_buy_menu_sec_handler")

  449.        

  450.         formatex(menu_item, 50, "%L", id, "EXIT")

  451.         menu_additem(menu, menu_item, "1", 0)

  452.        

  453.         menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)

  454.         menu_display(id, menu, 0)

  455. }

  456.  

  457. public nick_buy_menu_sec_handler(id, menu, item)

  458. {

  459.         nick_buy_meniu(id)

  460. }

  461. #endif

  462. public message_cur_weapon(msg_id, msg_dest, msg_entity)

  463. {

  464.         if (!get_pcvar_num(g_unlimited_clip)) return

  465. #if MODE & (1<<0)

  466.         if (!(g_user_privileges[msg_entity] & FLAG_C)) return

  467. #else

  468.         if (!(get_user_flags(msg_entity) & VIPACCES)) return

  469. #endif

  470.         if (!is_user_alive(msg_entity) || get_msg_arg_int(1) != 1) return

  471.        

  472.         static weapon, clip

  473.         weapon = get_msg_arg_int(2)

  474.         clip = get_msg_arg_int(3)

  475.        

  476.         if (MAXCLIP[weapon] > 2)

  477.         {

  478.                 set_msg_arg_int(3, get_msg_argtype(3), MAXCLIP[weapon])

  479.                

  480.                 if (clip < 2)

  481.                 {

  482.                         static wname[32], weapon_ent

  483.                         get_weaponname(weapon, wname, sizeof wname - 1)

  484.                         weapon_ent = fm_find_ent_by_owner(-1, wname, msg_entity)

  485.                         fm_set_weapon_ammo(weapon_ent, MAXCLIP[weapon])

  486.                 }

  487.         }

  488. }

  489.  

  490. public HUDReset()

  491.         setVip()

  492.        

  493. public setVip()

  494. {

  495.         new players[32], pNum

  496.         get_players(players, pNum, "a")

  497.  

  498.         for (new i = 0; i < pNum; i++)

  499.         {

  500.                 new id = players[i]

  501. #if MODE & (1<<0)      

  502.                 if (g_user_privileges[id] & FLAG_A)

  503. #else

  504.                 if (get_user_flags(id) & VIPACCES)

  505. #endif

  506.                 {

  507.                         message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))

  508.                         write_byte(id)

  509.                         write_byte(4)

  510.                         message_end()

  511.                 }

  512.         }

  513.         return PLUGIN_HANDLED

  514. }

  515.  

  516. public print_adminlist(user)

  517. {

  518.         new adminnames[33][32]

  519.         new message[256]

  520.         new contactinfo[256], contact[112]

  521.         new id, count, x, len

  522.        

  523.         for(id = 1 ; id <= maxplayers ; id++)

  524.                 if(is_user_connected(id))

  525. #if MODE & (1<<0)

  526.                         if(g_user_privileges[id] & FLAG_A)

  527. #else

  528.                         if(get_user_flags(id) & VIPACCES)

  529. #endif

  530.                                 get_user_name(id, adminnames[count++], 31)

  531.  

  532.         len = format(message, 255, "%L ", id, "VIP_STATUS")

  533.         if(count > 0) {

  534.                 for(x = 0 ; x < count ; x++) {

  535.                         len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")

  536.                         if(len > 96 ) {

  537.                                 client_printcolor(user, "/g%s", message)

  538.                                 len = format(message, 255, "")

  539.                         }

  540.                 }

  541.                 client_printcolor(user, "/g%s", message)

  542.         }

  543.         else {

  544.                 len += format(message[len], 255-len, "%L ", id, "VIP_STATUS_N")

  545.                 client_printcolor(user, "/g%s", message)

  546.         }

  547.        

  548.         get_cvar_string("amx_contactinfo", contact, 63)

  549.         if(contact[0])  {

  550.                 format(contactinfo, 111, "%L ", id, "VIP_STATUS_CON", contact)

  551.                 client_printcolor(user, "/g%s", contactinfo)

  552.         }

  553.        

  554. }

  555.  

  556. public client_disconnect(id)

  557. {

  558.         jumpnum[id] = 0

  559.         g_damage[id] = 0.0

  560.         dojump[id] = false

  561. }

  562.  

  563. public client_PreThink(id)

  564. {

  565. #if MODE & (1<<0)

  566.         if(!is_user_alive(id) || !g_jumps || (!(g_user_privileges[id] & FLAG_B))) return PLUGIN_CONTINUE

  567. #else

  568.         if(!is_user_alive(id) || !g_jumps || (!(get_user_flags(id) & MJACCES))) return PLUGIN_CONTINUE

  569. #endif

  570.         new nbut = get_user_button(id)

  571.         new obut = get_user_oldbutton(id)

  572.         if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))

  573.         {

  574.                 if(jumpnum[id] < get_pcvar_num(g_jumps) &&

  575.                 ((g_bit & FLAG_D && zp_get_user_nemesis(id)) ||

  576.                 (g_bit & FLAG_C && zp_get_user_survivor(id)) ||

  577.                 (g_bit & FLAG_A && !zp_get_user_zombie(id)) ||

  578.                 (g_bit & FLAG_B && zp_get_user_zombie(id) && !zp_get_user_nemesis(id))))

  579.                 {

  580.                         dojump[id] = true

  581.                         jumpnum[id]++

  582.                         return PLUGIN_CONTINUE

  583.                 }

  584.         }

  585.         if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))

  586.         {

  587.                 jumpnum[id] = 0

  588.                 return PLUGIN_CONTINUE

  589.         }

  590.         return PLUGIN_CONTINUE

  591. }

  592.  

  593. public client_PostThink(id)

  594. {

  595. #if MODE & (1<<0)

  596.         if(!is_user_alive(id) || !get_pcvar_num(g_jumps) || (!(g_user_privileges[id] & FLAG_B))) return PLUGIN_CONTINUE

  597. #else

  598.         if(!is_user_alive(id) || !get_pcvar_num(g_jumps) || (!(get_user_flags(id) & MJACCES))) return PLUGIN_CONTINUE

  599. #endif

  600.         if(dojump[id] == true)

  601.         {

  602.                 new Float:velocity[3]  

  603.                 entity_get_vector(id,EV_VEC_velocity,velocity)

  604.                 velocity[2] = random_float(265.0,285.0)

  605.                 entity_set_vector(id,EV_VEC_velocity,velocity)

  606.                 dojump[id] = false

  607.                 return PLUGIN_CONTINUE

  608.         }

  609.         return PLUGIN_CONTINUE

  610. }      

  611.  

  612. public ShowMotd(id)

  613.         show_motd(id, "vip.txt")

  614. #if MODE & (1<<0)

  615. public reload_vips() {

  616.        

  617.         if(database_holder) ArrayDestroy(database_holder)

  618.         database_holder = ArrayCreate(database_items)

  619.         new configsDir[64]

  620.         get_configsdir(configsDir, 63)

  621.         format(configsDir, 63, "%s/vips.ini", configsDir)

  622.        

  623.         new File=fopen(configsDir,"r");

  624.        

  625.         if (File)

  626.         {

  627.                 static Text[512], Flags[32], AuthData[50], Privileges_Flags[32], Password[50]

  628.                 while (!feof(File))

  629.                 {

  630.                         fgets(File,Text,sizeof(Text)-1);

  631.                        

  632.                         trim(Text);

  633.                        

  634.                         // comment

  635.                         if (Text[0]==';')

  636.                         {

  637.                                 continue;

  638.                         }

  639.                        

  640.                         Flags[0]=0;

  641.                         AuthData[0]=0;

  642.                         Privileges_Flags[0]=0;

  643.                         Password[0]=0;

  644.                        

  645.                         // not enough parameters

  646.                         if (parse(Text,AuthData,sizeof(AuthData)-1,Password,sizeof(Password)-1,Privileges_Flags,sizeof(Privileges_Flags)-1,Flags,sizeof(Flags)-1) < 2)

  647.                         {

  648.                                 continue;

  649.                         }

  650.  

  651.                         vips_database[auth] = AuthData

  652.                         vips_database[password] = Password

  653.                         vips_database[accessflags] = read_flags(Privileges_Flags)

  654.                         vips_database[flags] = read_flags(Flags)

  655.                         ArrayPushArray(database_holder, vips_database)

  656.                 }

  657.                

  658.                 fclose(File);

  659.         }

  660.         else log_amx("Error: vips.ini file doesn't exist")

  661. }

  662. #endif

  663. #if MODE & (1<<0) && MODE & (1<<1)

  664. public check_date()

  665. {

  666.         new todaysmonth[32]

  667.         new todaysday[32]

  668.         new todaysyear[32]

  669.         get_time("%m",todaysmonth,31)

  670.         get_time("%d",todaysday,31)

  671.         get_time("%Y",todaysyear,31)

  672.         new todaysdaynum = str_to_num(todaysday)

  673.         new todaysmonthnum = str_to_num(todaysmonth)

  674.         new todaysyearnum = str_to_num(todaysyear)

  675.         new alltogether[200]

  676.         format(alltogether,199,"m%dd%dy%d",todaysmonthnum,todaysdaynum,todaysyearnum)

  677.  

  678.         new configdir[200]

  679.         get_configsdir(configdir,199)

  680.  

  681.         new configfile1[200]

  682.  

  683.         format(configfile1,199,"%s/vips.ini",configdir)

  684.        

  685.         new text[512], len

  686.         new pnum = file_size(configfile1,1)

  687.         for(new i = 1; i < pnum; i++)

  688.         {

  689.                 read_file(configfile1, i, text, 511, len)

  690.                 if ( contain(text, alltogether) != -1 )

  691.                 {

  692.                         DeleteLine(configfile1, i)

  693.                 }

  694.         }

  695.         return PLUGIN_HANDLED

  696. }

  697.  

  698. public amx_tempadmin(id, type)

  699. {      

  700.         new authid[31], ip[31], name[51], client_password[21], p_flags[21]

  701.         get_pcvar_string(g_vip_buy_flags, p_flags, 20)

  702.         get_user_authid(id, authid, 30)

  703.         get_user_ip(id, ip, 30, 1)

  704.         get_user_name(id, name, 50)

  705.         get_user_info(id, amx_password_field_string, client_password, 20)

  706.         new todaysmonth[32]

  707.         new todaysday[32]

  708.         new todaysyear[32]

  709.         get_time("%m",todaysmonth,31)

  710.         get_time("%d",todaysday,31)

  711.         get_time("%Y",todaysyear,31)

  712.         new day = str_to_num(todaysday)

  713.         months = str_to_num(todaysmonth)

  714.         years = str_to_num(todaysyear)

  715.         days = day + get_pcvar_num(g_vip_buy_time)

  716.        

  717.         if(get_pcvar_num(g_vip_buy_time) == 0 || get_pcvar_num(g_vip_buy_time)>=900)

  718.         {

  719.                 new instertintovips[200]

  720.                 switch(type) {

  721.                         case 1: formatex(instertintovips,199,"^"%s^" ^"%s^" ^"%s^" ^"b^"",name,client_password,p_flags)

  722.                         case 2: formatex(instertintovips,199,"^"%s^" ^"^" ^"%s^" ^"ce^"",authid,p_flags)

  723.                         case 3: formatex(instertintovips,199,"^"%s^" ^"^" ^"%s^" ^"de^"",ip,p_flags)

  724.                 }

  725.                 new configdir[200]

  726.                 get_configsdir(configdir,199)

  727.                 new configfile1[200]

  728.                 format(configfile1,199,"%s/vips.ini",configdir)

  729.                 write_file(configfile1,instertintovips,-1)

  730.                 server_cmd("amx_reloadvips")

  731.                 set_task(1.0, "set_flags", id)

  732.                 return PLUGIN_HANDLED

  733.         }

  734.  

  735.         switch(months) {

  736.                 case 1: {

  737.                         if(days>31)

  738.                         {

  739.                                 thirtyone(id, type)

  740.                                 return PLUGIN_HANDLED

  741.                         }

  742.                         else

  743.                         {

  744.                                 makenewdate(id, type)

  745.                                 return PLUGIN_HANDLED

  746.                         }

  747.                         return PLUGIN_HANDLED

  748.                 }

  749.                 case 2: {

  750.                         if(days>28)

  751.                         {

  752.                                 february(id, type)

  753.                                 return PLUGIN_HANDLED

  754.                         }

  755.                         else

  756.                         {

  757.                                 makenewdate(id, type)

  758.                                 return PLUGIN_HANDLED

  759.                         }

  760.                         return PLUGIN_HANDLED

  761.                 }

  762.                 case 3: {

  763.                         if(days>31)

  764.                         {

  765.                                 thirtyone(id, type)

  766.                                 return PLUGIN_HANDLED

  767.                         }

  768.                         else

  769.                         {

  770.                                 makenewdate(id, type)

  771.                                 return PLUGIN_HANDLED

  772.                         }

  773.                         return PLUGIN_HANDLED

  774.                 }

  775.                 case 4: {

  776.                         if(days>30)

  777.                         {

  778.                                 thirty(id, type)

  779.                                 return PLUGIN_HANDLED

  780.                         }

  781.                         else

  782.                         {

  783.                                 makenewdate(id, type)

  784.                                 return PLUGIN_HANDLED

  785.                         }

  786.                         return PLUGIN_HANDLED

  787.                 }

  788.                 case 5: {

  789.                         if(days>31)

  790.                         {

  791.                                 thirtyone(id, type)

  792.                                 return PLUGIN_HANDLED

  793.                         }

  794.                         else

  795.                         {

  796.                                 makenewdate(id, type)

  797.                                 return PLUGIN_HANDLED

  798.                         }

  799.                         return PLUGIN_HANDLED

  800.                 }

  801.                 case 6: {

  802.                         if(days>30)

  803.                         {

  804.                                 thirty(id, type)

  805.                                 return PLUGIN_HANDLED

  806.                         }

  807.                         else

  808.                         {

  809.                                 makenewdate(id, type)

  810.                                 return PLUGIN_HANDLED

  811.                         }

  812.                         return PLUGIN_HANDLED

  813.                 }

  814.                 case 7: {

  815.                         if(days>31)

  816.                         {

  817.                                 thirtyone(id, type)

  818.                                 return PLUGIN_HANDLED

  819.                         }

  820.                         else

  821.                         {

  822.                                 makenewdate(id, type)

  823.                                 return PLUGIN_HANDLED

  824.                         }

  825.                         return PLUGIN_HANDLED

  826.                 }

  827.                 case 8: {

  828.                         if(days>31)

  829.                         {

  830.                                 thirtyone(id, type)

  831.                                 return PLUGIN_HANDLED

  832.                         }

  833.                         else

  834.                         {

  835.                                 makenewdate(id, type)

  836.                                 return PLUGIN_HANDLED

  837.                         }

  838.                         return PLUGIN_HANDLED

  839.                 }

  840.                 case 9: {

  841.                         if(days>30)

  842.                         {

  843.                                 thirty(id, type)

  844.                                 return PLUGIN_HANDLED

  845.                         }

  846.                         else

  847.                         {

  848.                                 makenewdate(id, type)

  849.                                 return PLUGIN_HANDLED

  850.                         }

  851.                         return PLUGIN_HANDLED

  852.                 }

  853.                 case 10: {

  854.                         if(days>31)

  855.                         {

  856.                                 thirtyone(id, type)

  857.                                 return PLUGIN_HANDLED

  858.                         }

  859.                         else

  860.                         {

  861.                                 makenewdate(id, type)

  862.                                 return PLUGIN_HANDLED

  863.                         }

  864.                         return PLUGIN_HANDLED

  865.                 }

  866.                 case 11: {

  867.                         if(days>30)

  868.                         {

  869.                                 thirty(id, type)

  870.                                 return PLUGIN_HANDLED

  871.                         }

  872.                         else

  873.                         {

  874.                                 makenewdate(id, type)

  875.                                 return PLUGIN_HANDLED

  876.                         }

  877.                         return PLUGIN_HANDLED

  878.                 }

  879.                 case 12: {

  880.                         if(days>31)

  881.                         {

  882.                                 december(id, type)

  883.                                 return PLUGIN_HANDLED

  884.                         }

  885.                         else

  886.                         {

  887.                                 makenewdate(id, type)

  888.                                 return PLUGIN_HANDLED

  889.                         }

  890.                         return PLUGIN_HANDLED

  891.                 }

  892.         }

  893.         return PLUGIN_HANDLED

  894. }

  895.  

  896. public makenewdate(id, type)

  897. {

  898.         new alltogether[200], authid[31], ip[31], name[51], client_password[21], p_flags[21]

  899.         get_pcvar_string(g_vip_buy_flags, p_flags, 20)

  900.         get_user_authid(id, authid, 30)

  901.         get_user_ip(id, ip, 30, 1)

  902.         get_user_name(id, name, 50)

  903.         get_user_info(id, amx_password_field_string, client_password, 20)

  904.         format(alltogether,199,"m%dd%dy%d",months,days,years)

  905.         new instertintovips[200]

  906.         switch(type) {

  907.                 case 1: formatex(instertintovips,199,"^"%s^" ^"%s^" ^"%s^" ^"b^"; Exp: %s",name,client_password,p_flags,alltogether)

  908.                 case 2: formatex(instertintovips,199,"^"%s^" ^"^" ^"%s^" ^"ce^"; Exp: %s",authid,p_flags,alltogether)

  909.                 case 3: formatex(instertintovips,199,"^"%s^" ^"^" ^"%s^" ^"de^"; Exp: %s",ip,p_flags,alltogether)

  910.         }

  911.         new configdir[200]

  912.         get_configsdir(configdir,199)

  913.         new configfile1[200]

  914.         format(configfile1,199,"%s/vips.ini",configdir)

  915.         write_file(configfile1,instertintovips,-1)

  916.         server_cmd("amx_reloadvips")

  917.         set_task(1.0, "set_flags", id)

  918.         return PLUGIN_HANDLED

  919. }

  920.  

  921. public december(id, type)

  922. {

  923.         if(days>31)

  924.         {

  925.                 days = days - 31

  926.                 months = 1

  927.                 years = years + 1

  928.                 select_days(id, type)

  929.         }

  930.         else

  931.         {

  932.                 makenewdate(id, type)

  933.         }

  934.         return PLUGIN_HANDLED

  935. }

  936.  

  937. public thirtyone(id, type)

  938. {

  939.         if(days>31)

  940.         {

  941.                 days = days - 31

  942.                 months = months + 1

  943.                 select_days(id, type)

  944.         }

  945.         else

  946.         {

  947.                 makenewdate(id, type)

  948.         }

  949.         return PLUGIN_HANDLED

  950. }

  951.  

  952. public thirty(id, type)

  953. {

  954.         if(days>30)

  955.         {

  956.                 days = days - 30

  957.                 months = months + 1

  958.                 select_days(id, type)

  959.         }

  960.         else

  961.         {

  962.                 makenewdate(id, type)

  963.         }

  964.         return PLUGIN_HANDLED

  965. }

  966.  

  967. public february(id, type)

  968. {

  969.         if(days>28)

  970.         {

  971.                 days = days - 28

  972.                 months = 3

  973.                 select_days(id, type)

  974.         }

  975.         else

  976.         {

  977.                 makenewdate(id, type)

  978.         }

  979.         return PLUGIN_HANDLED

  980. }

  981.  

  982. public newyear(id, type)

  983. {

  984.         if(days>31)

  985.         {

  986.                 days = days - 31

  987.                 years = years + 1

  988.                 months = 1

  989.                 select_days(id, type)

  990.         }

  991.         else

  992.         {

  993.                 makenewdate(id, type)

  994.         }

  995.         return PLUGIN_HANDLED

  996. }

  997.  

  998. public select_days(id, type)

  999. {

  1000.         switch(months) {

  1001.                 case 1, 4, 5, 7, 8, 10: thirtyone(id, type)

  1002.                 case 2: february(id, type)

  1003.                 case 3, 6, 9, 11: thirty(id, type)

  1004.                 case 12: newyear(id, type)

  1005.         }

  1006.         return PLUGIN_HANDLED

  1007. }

  1008.  

  1009. DeleteLine( const szFilename[ ], const iLine )

  1010. {

  1011.         new iFile = fopen( szFilename, "rt" );

  1012.         if( !iFile )

  1013.         {

  1014.                 return;

  1015.         }

  1016.         static const szTempFilename[ ] = "delete_line.txt";

  1017.         new iTempFile = fopen( szTempFilename, "wt" );

  1018.    

  1019.         new szData[ 256 ], iLineCount, bool:bReplaced = false;

  1020.         while( !feof( iFile ) )

  1021.         {

  1022.                 fgets( iFile, szData, 255 );

  1023.        

  1024.                 if( iLineCount++ == iLine )

  1025.                 {

  1026.                         bReplaced = true;

  1027.                 }

  1028.                 else

  1029.                 {

  1030.                         fputs( iTempFile, szData );

  1031.                 }

  1032.         }

  1033.    

  1034.         fclose( iFile );

  1035.         fclose( iTempFile );

  1036.    

  1037.         if( bReplaced )

  1038.         {

  1039.                 delete_file( szFilename );

  1040.        

  1041.                 while( !rename_file( szTempFilename, szFilename, 1 ) ) { }

  1042.         }

  1043.         else

  1044.         {

  1045.                 delete_file( szTempFilename );

  1046.         }

  1047. }

  1048. #endif

  1049. stock fm_set_user_health(id, health)

  1050. {

  1051.         (health > 0) ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id);

  1052. }

  1053.  

  1054. stock client_printcolor(const id, const input[], any:...)

  1055. {

  1056.        

  1057.         new iCount = 1, iPlayers[32]

  1058.        

  1059.         static szMsg[191]

  1060.         vformat(szMsg, charsmax(szMsg), input, 3)

  1061.        

  1062.         replace_all(szMsg, 190, "/g", "^4") // green txt

  1063.         replace_all(szMsg, 190, "/y", "^1") // orange txt

  1064.         replace_all(szMsg, 190, "/ctr", "^3") // team txt

  1065.         replace_all(szMsg, 190, "/w", "^0") // team txt

  1066.        

  1067.         if(id) iPlayers[0] = id

  1068.         else get_players(iPlayers, iCount, "ch")

  1069.                

  1070.         for (new i = 0; i < iCount; i++)

  1071.         {

  1072.                 if (is_user_connected(iPlayers[i]))

  1073.                 {

  1074.                         message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, iPlayers[i])

  1075.                         write_byte(iPlayers[i])

  1076.                         write_string(szMsg)

  1077.                         message_end()

  1078.                 }

  1079.         }

  1080. }

  1081.  

  1082. stock fm_find_ent_by_owner(entity, const classname[], owner)

  1083. {

  1084.         while ((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) {}

  1085.        

  1086.         return entity;

  1087. }

  1088.  

  1089. stock fm_set_weapon_ammo(entity, amount)

  1090. {

  1091.         set_pdata_int(entity, OFFSET_CLIPAMMO, amount, OFFSET_LINUX_WEAPONS);

  1092. }

  1093. #if MODE & (1<<0)

  1094. public set_flags(id) {

  1095.        

  1096.         static authid[31], ip[31], name[51], index, client_password[31], size, log_flags[11]

  1097.         get_user_authid(id, authid, 30)

  1098.         get_user_ip(id, ip, 30, 1)

  1099.         get_user_name(id, name, 50)

  1100.         get_user_info(id, amx_password_field_string, client_password, 30)

  1101.        

  1102.         g_user_privileges[id] = 0

  1103.         size = ArraySize(database_holder)

  1104.         for(index=0; index < size ; index++) {

  1105.                 ArrayGetArray(database_holder, index, vips_database)

  1106.                 if(vips_database[flags] & FLAG_D) {

  1107.                         if(equal(ip, vips_database[auth])) {

  1108.                                 if(!(vips_database[flags] & FLAG_E)) {

  1109.                                         if(equal(client_password, vips_database[password]))

  1110.                                                 g_user_privileges[id] = vips_database[accessflags]

  1111.                                         else if(vips_database[flags] & FLAG_A) {

  1112.                                                 server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "INV_PAS")

  1113.                                                 break

  1114.                                         }

  1115.                                 }

  1116.                                 else g_user_privileges[id] = vips_database[accessflags]

  1117.                                 get_flags(vips_database[accessflags], log_flags, 10)

  1118.                                 log_amx("%L",LANG_PLAYER, "AUTHORISED", name, authid, ip, log_flags)

  1119.                                 break

  1120.                         }

  1121.                 }

  1122.                 else if(vips_database[flags] & FLAG_C) {

  1123.                         if(equal(authid, vips_database[auth])) {

  1124.                                 if(!(vips_database[flags] & FLAG_E)) {

  1125.                                         if(equal(client_password, vips_database[password]))

  1126.                                                 g_user_privileges[id] = vips_database[accessflags]

  1127.                                         else if(vips_database[flags] & FLAG_A) {

  1128.                                                 server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "INV_PAS")

  1129.                                                 break

  1130.                                         }

  1131.                                 }

  1132.                                 else g_user_privileges[id] = vips_database[accessflags]

  1133.                                 get_flags(vips_database[accessflags], log_flags, 10)

  1134.                                 log_amx("%L",LANG_PLAYER, "AUTHORISED", name, authid, ip, log_flags)

  1135.                                 break

  1136.                         }

  1137.                 }

  1138.                 else {

  1139.                         if(vips_database[flags] & FLAG_K) {

  1140.                                 if((vips_database[flags] & FLAG_B && contain(name, vips_database[auth]) != -1) || equal(name, vips_database[auth])) {

  1141.                                         if(!(vips_database[flags] & FLAG_E)) {

  1142.                                                 if(equal(client_password, vips_database[password]))

  1143.                                                         g_user_privileges[id] = vips_database[accessflags]

  1144.                                                 else if(vips_database[flags] & FLAG_A) {

  1145.                                                         server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "INV_PAS")

  1146.                                                         break

  1147.                                                 }

  1148.                                         }

  1149.                                         else g_user_privileges[id] = vips_database[accessflags]

  1150.                                         get_flags(vips_database[accessflags], log_flags, 10)

  1151.                                         log_amx("%L",LANG_PLAYER, "AUTHORISED", name, authid, ip, log_flags)

  1152.                                         break

  1153.                                 }

  1154.                         }

  1155.                         else {

  1156.                                 if((vips_database[flags] & FLAG_B && containi(name, vips_database[auth]) != -1) || equali(name, vips_database[auth])) {

  1157.                                         if(!(vips_database[flags] & FLAG_E)) {

  1158.                                                 if(equal(client_password, vips_database[password]))

  1159.                                                         g_user_privileges[id] = vips_database[accessflags]

  1160.                                                 else if(vips_database[flags] & FLAG_A) {

  1161.                                                         server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "INV_PAS")

  1162.                                                         break

  1163.                                                 }

  1164.                                         }

  1165.                                         else g_user_privileges[id] = vips_database[accessflags]

  1166.                                         get_flags(vips_database[accessflags], log_flags, 10)

  1167.                                         log_amx("%L",LANG_PLAYER, "AUTHORISED", name, authid, ip, log_flags)

  1168.                                         break

  1169.                                 }

  1170.                         }

  1171.                 }

  1172.         }

  1173. }

  1174. #endif

  1175. #if MODE & (1<<0) && MODE & (1<<1)

  1176. stock generate_password(id) {

  1177.        

  1178.         new password_holder[31]

  1179.         formatex(password_holder, 30, "%d%d%d%d%d", random(9), random(9), random(9), random(9), random(9))

  1180.         client_cmd(id, "setinfo %s %s", amx_password_field_string, password_holder)

  1181. }

  1182. #endif

  1183. #if MODE & (1<<0)

  1184. public native_zv_get_user_flags(id)

  1185.         return g_user_privileges[id]

  1186. #endif

  1187. #if MODE & (1<<1)

  1188. public native_zv_register_extra_item(const item_name[], const item_discription[], item_cost, item_team)

  1189. {

  1190.                 param_convert(1)

  1191.                 param_convert(2)

  1192.                 copy(extra_items[i_name], 30, item_name)

  1193.                 copy(extra_items[i_description], 30, item_discription)

  1194.                 extra_items[i_cost] = item_cost

  1195.                 extra_items[i_team] = item_team

  1196.                 ArrayPushArray(items_database, extra_items)

  1197.                 g_registered_items_count++

  1198.                

  1199.                 return g_registered_items_count

  1200. }

  1201. #endif

  1202.  

_________________
[url=http://www.gametracker.com/server_info/188.227.227.114:27286/][img]http://cache.www.gametracker.com/server_info/188.227.227.114:27286/b_350_20_323957_202743_F19A15_111111.png[/img][/url]


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  [7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 28 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