Advertisement
Guest User

Untitled

a guest
Jul 13th, 2013
502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.10 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fun>
  4. #include <cstrike>
  5. #include <colorchat>
  6. #include <hamsandwich>
  7. #include <fakemeta>
  8.  
  9. enum {
  10. SCOREATTRIB_ARG_PLAYERID = 1,
  11. SCOREATTRIB_ARG_FLAGS
  12. };
  13.  
  14. enum ( <<= 1 ) {
  15. SCOREATTRIB_FLAG_NONE = 0,
  16. SCOREATTRIB_FLAG_DEAD = 1,
  17. SCOREATTRIB_FLAG_BOMB,
  18. SCOREATTRIB_FLAG_VIP
  19. };
  20.  
  21. new maxplayers, gmsgSayText
  22.  
  23. static const COLOR[] = "^x04"
  24.  
  25. new cvar_za_recoil
  26. new cvar_za_skin
  27. new cvar_za_reklamu
  28. new cvar_za_hp
  29. new cvar_za_armor
  30. new cvar_za_vipchat
  31. new Trie: Vipac
  32.  
  33. new const viporder[] = "addons/amxmodx/configs/dmvip/order.txt"
  34. new const vipdm[] = "addons/amxmodx/configs/dmvip"
  35. new const vipcfg[] = "addons/amxmodx/configs/dmvip/vipcfg.cfg"
  36. new const vipfajl[] = "addons/amxmodx/configs/dmvip/vips.ini"
  37.  
  38. public plugin_init() {
  39. register_plugin("DeathMatch VIP Advanced", "2.0", "AlerteR")
  40.  
  41. maxplayers = get_maxplayers()
  42. gmsgSayText = get_user_msgid("SayText")
  43.  
  44. register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  45.  
  46. cvar_za_recoil = register_cvar("vip_recoil", "1")
  47. cvar_za_skin = register_cvar("vip_skinmenu", "1")
  48. cvar_za_reklamu = register_cvar("vip_reklama", "60.0")
  49. cvar_za_hp = register_cvar("vip_hp", "150")
  50. cvar_za_armor = register_cvar("vip_armor", "100")
  51. cvar_za_vipchat = register_cvar("vip_vipchat", "1")
  52.  
  53. RegisterHam(Ham_Spawn, "player", "oziveo", 1)
  54.  
  55. register_clcmd("say /vips", "handle_say")
  56. register_clcmd("say /buyvip", "narucivipa")
  57. register_clcmd("say /skin", "skinmenu")
  58. register_clcmd("say", "vipprefix")
  59.  
  60. set_task(get_pcvar_float(cvar_za_reklamu), "reklamiraj", 100, _, _, "b")
  61. }
  62.  
  63. public plugin_cfg()
  64. {
  65. Vipac = TrieCreate()
  66. new Directory [] = "addons/amxmodx/configs/dmvip/vips.ini"
  67.  
  68. new Data[35],File
  69. File = fopen(Directory, "rt")
  70.  
  71. while (!feof(File)) {
  72. fgets(File, Data, charsmax(Data))
  73.  
  74. trim(Data)
  75.  
  76. if (Data[0] == ';' || !Data[0])
  77. continue;
  78.  
  79. remove_quotes(Data)
  80. TrieSetCell(Vipac, Data, true)
  81. }
  82.  
  83. fclose(File)
  84. }
  85. bool:vipcuga(id)
  86. {
  87. new steam[33]
  88. get_user_authid(id,steam,32)
  89. if(TrieKeyExists(Vipac,steam))
  90. {
  91. set_user_flags(id, ADMIN_LEVEL_H)
  92. return true
  93. }
  94. return false
  95. }
  96. public oziveo(id)
  97. {
  98. if(!is_user_alive(id))
  99. return PLUGIN_HANDLED
  100.  
  101. if(vipcuga(id))
  102. {
  103. set_task(2.0, "viptasks", id)
  104. }
  105. return PLUGIN_CONTINUE
  106. }
  107. public viptasks(id)
  108. {
  109. set_user_health(id, get_pcvar_num(cvar_za_hp))
  110. set_user_armor(id, get_pcvar_num(cvar_za_armor))
  111. if(get_pcvar_num(cvar_za_recoil) == 1)
  112. {
  113. set_pev(id, pev_punchangle, 0.1)
  114. }
  115. }
  116. public vipprefix(id)
  117. {
  118. if(vipcuga(id) && (get_pcvar_num(cvar_za_vipchat) == 1))
  119. {
  120. new vipnick[33]
  121. get_user_name(id, vipnick, 32)
  122. new viptext[192]
  123. read_args(viptext, 191)
  124. remove_quotes(viptext)
  125. ColorChat(0, TEAM_COLOR, "^4[VIP]^3 %s: ^1%s", vipnick, viptext)
  126. return PLUGIN_HANDLED
  127. }
  128. return PLUGIN_CONTINUE
  129. }
  130. public narucivipa(id)
  131. {
  132. new narucinick[33]
  133. get_user_name(id, narucinick, 32)
  134. new naruciid[33]
  135. get_user_authid(id, naruciid, 32)
  136. new order[192]
  137. format(order, 191, "Information about orders: Nick: %s STEAM ID: %s", narucinick, naruciid)
  138. write_file(viporder, order)
  139. write_file(viporder, " ")
  140. ColorChat(id, TEAM_COLOR, "^4[VIP]^1 You successfully commissioned VIP. Pick up an admin for further instructions.")
  141. }
  142. public reklamiraj(id)
  143. {
  144. ColorChat(0, TEAM_COLOR, "^4[VIP]^1 If you want to buy VIP and you get a number of benefits, ^3say /buyvip")
  145. }
  146. public skinmenu(id)
  147. {
  148. if(vipcuga(id) && (get_pcvar_num(cvar_za_skin) == 1))
  149. {
  150. new menu = menu_create("VIP Skin Menu", "vipskin_handler")
  151. menu_additem(menu, "VIP Skin 1")
  152. menu_additem(menu, "VIP Skin 2")
  153. menu_additem(menu, "VIP Skin 3")
  154. menu_display(id, menu)
  155. }
  156. }
  157. public vipskin_handler(id, menu, item)
  158. {
  159. if(item == MENU_EXIT)
  160. {
  161. menu_destroy(menu)
  162. return PLUGIN_CONTINUE
  163. }
  164.  
  165. switch(item)
  166. {
  167. case 0:
  168. {
  169. cs_set_user_model(id, "vipskin1")
  170. }
  171. case 1:
  172. {
  173. cs_set_user_model(id, "vipskin2")
  174. }
  175. case 2:
  176. {
  177. cs_set_user_model(id, "vipskin3")
  178. }
  179. }
  180. return PLUGIN_CONTINUE
  181. }
  182. public handle_say(id)
  183. {
  184. set_task(0.1,"print_adminlist",id)
  185. return PLUGIN_CONTINUE
  186. }
  187. public print_adminlist(user)
  188. {
  189. new adminnames[33][32]
  190. new message[256]
  191. new contactinfo[256], contact[112]
  192. new id, count, x, len
  193.  
  194. for(id = 1 ; id <= maxplayers ; id++)
  195. if(is_user_connected(id))
  196. if(get_user_flags(id) & ADMIN_LEVEL_H)
  197. get_user_name(id, adminnames[count++], 31)
  198.  
  199. len = format(message, 255, "%s Online VIP-ovi: ",COLOR)
  200. if(count > 0) {
  201. for(x = 0 ; x < count ; x++) {
  202. len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
  203. if(len > 96 ) {
  204. print_message(user, message)
  205. len = format(message, 255, "%s ",COLOR)
  206. }
  207. }
  208. print_message(user, message)
  209. }
  210. else {
  211. len += format(message[len], 255-len, "There are currently no Online VIP's.")
  212. print_message(user, message)
  213. }
  214.  
  215. get_cvar_string("amx_contactinfo", contact, 63)
  216. if(contact[0]) {
  217. format(contactinfo, 111, "%s Contact Server Vip -- %s", COLOR, contact)
  218. print_message(user, contactinfo)
  219. }
  220. }
  221. print_message(id, msg[])
  222. {
  223. message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  224. write_byte(id)
  225. write_string(msg)
  226. message_end()
  227. }
  228. public MessageScoreAttrib(iMsgId,iDest,iReceiver )
  229. {
  230. new id = get_msg_arg_int(SCOREATTRIB_ARG_PLAYERID);
  231. if(vipcuga(id))
  232. set_msg_arg_int(SCOREATTRIB_ARG_FLAGS,ARG_BYTE,SCOREATTRIB_FLAG_VIP);
  233. }
  234. public plugin_precache()
  235. {
  236. server_cmd("exec %s", vipcfg)
  237.  
  238. precache_model("models/player/vipskin1/vipskin1.mdl")
  239. precache_model("models/player/vipskin2/vipskin2.mdl")
  240. precache_model("models/player/vipskin3/vipskin3.mdl")
  241.  
  242. if(!dir_exists(vipdm))
  243. {
  244. mkdir(vipdm)
  245. }
  246. if(!file_exists(viporder))
  247. {
  248. write_file(viporder, "Ovde se pisu narudzbine VIP-a")
  249. write_file(viporder, " ")
  250. }
  251. if(!file_exists(vipcfg))
  252. {
  253. write_file(vipcfg, "Ovde se nalaze cvarovi vezani za VIP-a")
  254. write_file(vipcfg, " ")
  255. write_file(vipcfg, "vip_recoil ^"1^" // da li vip ima no recoil")
  256. write_file(vipcfg, "vip_skinmenu ^"1^" // da li je upaljen vip skin menu")
  257. write_file(vipcfg, "vip_reklama ^"60.0^" // na koliko izlazi reklama za vipa")
  258. write_file(vipcfg, "vip_hp ^"150^" // koliko vip dobija hp na spawnu")
  259. write_file(vipcfg, "vip_armor ^"100^" // koliko vip dobija armor na spawnu")
  260. write_file(vipcfg, "vip_vipchat ^"1^" // da li je upaljen vip prefix za chat")
  261. }
  262. if(!file_exists(vipfajl))
  263. {
  264. write_file(vipfajl, "Here are entered STEAM IDs VIP's:")
  265. write_file(vipfajl, " ")
  266. }
  267. }
  268. public plugin_end()
  269. TrieDestroy(Vipac)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement