AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Help limiting to once per map (https://forums.alliedmods.net/showthread.php?t=22492)

MOBOB 12-28-2005 12:05

Help limiting to once per map
 
Hey i am writing a plugin for my server which enables server regulars to say "freegun ak" or "freegun m4" once per map to recieve the cooresponding weapon. I have edited a plugin that allows them to say "freegun XX" but i need help limiting it to only one use per map. Here is my code so far:

Code:
 #include <amxmodx> #include <amxmisc> #include <fun> #define PLUGIN "AutoWeapons" #define VERSION "1.0" #define AUTHOR "[CHEEZ-IT]" public plugin_init() {     register_plugin(PLUGIN, VERSION, AUTHOR)           register_clcmd("freegun", "cmd_weapon", ADMIN_SLAY, "<weapon(m4, ak)>")           set_task(15.0, "sayplugin", 0, "", 0, "", 1)       } public cmd_weapon(id){                 new  whatwassaid[32]     read_argv(1, whatwassaid, 31)           if(equali(whatwassaid,"m4")){         give_item(id, "weapon_m4a1")         give_item(id, "weapon_m4a1")         give_item(id, "weapon_m4a1")         client_print(0,print_chat,"%s used his freegun power to give himself an M4A1. Please visit <a href="http://www.sXeGaming.cjb.net" target="_blank" rel="nofollow noopener">www.sXeGaming.cjb.net</a> to learn about donating to our server and recieving freegun access.", id)     }     if(equali(whatwassaid,"ak")){         give_item(id, "weapon_ak47")         give_item(id, "weapon_ak47")         give_item(id, "weapon_ak47")         client_print(0,print_chat,"%s used his freegun power to give himself an AK47. Please visit <a href="http://www.sXeGaming.cjb.net" target="_blank" rel="nofollow noopener">www.sXeGaming.cjb.net</a> to learn about donating to our server and recieving freegun access.", id)         }     return PLUGIN_HANDLED       }             public sayplugin(id){ client_print(id, print_chat, "|sXe| Clan Pub Server: Freegun access is enabled. Those with freegun access type freegun ak or freegun m4 in console to recieve cooresponding weapon.")     set_hudmessage(0, 0, 0, 0.57, 0.93, 0, 6.0, 12.0)     show_hudmessage(id, "If you have freegun access, say freegun to receive your gun.")       }

I have a very limited knowlege of the small language so any help is greatly appreciated.

Thanks in advance,
MOBOB

VEN 12-28-2005 13:03

Why 3 times?
Code:
give_item(id, "weapon_m4a1")    give_item(id, "weapon_m4a1")    give_item(id, "weapon_m4a1")

v3x 12-28-2005 14:56

To give more ammo.

Alternative:
Code:
cs_set_user_bpammo(id, CSW_M4A1, 90);
Or just give them the actual ammo_ in give_item.

Cheap_Suit 12-28-2005 15:16

Code:
#include <amxmodx>   #include <amxmisc>   #include <cstrike>   #include <fun>   #define PLUGIN "AutoWeapons"   #define VERSION "1.0"   #define AUTHOR "[CHEEZ-IT]"   new bool:user_gothisgun[33] public plugin_init() {       register_plugin(PLUGIN, VERSION, AUTHOR)       register_clcmd("say freegun", "cmd_weapon", ADMIN_SLAY, "<weapon(m4, ak)>")             set_task(15.0, "sayplugin", _,_,_, "b") }   public client_putinserver(id) {     user_gothisgun[id] = false } public cmd_weapon(id, level, cid) {       if(!cmd_access(id, level, cid, 2))         return PLUGIN_HANDLED     if(user_gothisgun[id])         return PLUGIN_HANDLED             new whatwassaid[32]       read_argv(1, whatwassaid, 31)           new name[32]     get_user_name(id, name, 31)         if(equali(whatwassaid,"m4", 2))     {           give_item(id, "weapon_m4a1")           cs_set_user_bpammo(id, CSW_M4A1, 90)         client_print(0,print_chat, "%s used his freegun power to give himself an M4A1. Please visit <a href="http://www.sXeGaming.cjb.net" target="_blank" rel="nofollow noopener">www.sXeGaming.cjb.net</a> to learn about donating to our server and recieving freegun access.", name)           user_gothisgun[id] = true     }     else if(equali(whatwassaid,"ak", 2))     {           give_item(id, "weapon_ak47")         cs_set_user_bpammo(id, CSW_AK47, 90)         client_print(0, print_chat, "%s used his freegun power to give himself an AK47. Please visit <a href="http://www.sXeGaming.cjb.net" target="_blank" rel="nofollow noopener">www.sXeGaming.cjb.net</a> to learn about donating to our server and recieving freegun access.", name)               user_gothisgun[id] = true     }     return PLUGIN_HANDLED }   public sayplugin() {     for(new id = 1; id <= get_maxplayers(); id++)     {         client_print(id, print_chat, "|sXe| Clan Pub Server: Freegun access is enabled. Those with freegun access type freegun ak or freegun m4 in console to recieve cooresponding weapon.")         set_hudmessage(0, 0, 0, 0.57, 0.93, 0, 6.0, 12.0)           show_hudmessage(id, "If you have freegun access, say freegun to receive your gun.")     } }

I put the
Quote:

set_task
flag to repeat. So it will repeat the message every 15 seconds.

MOBOB 12-28-2005 23:32

ok thanks, the limiting works fine, however i made some changes and i am having some problems. Here is the code...

Code:
#include <amxmodx>   #include <amxmisc>   #include <cstrike>   #include <fun>   #define PLUGIN "Freegun"   #define VERSION "1.0"   #define AUTHOR "|sXe| Mr. Foster"   new bool:user_gothisgun[33] public plugin_init() {       register_plugin(PLUGIN, VERSION, AUTHOR)       register_clcmd("say", "cmd_weapon", ADMIN_LEVEL_H, "<weapon(freegun_m4, freegun_ak)>")             set_task(300.0, "sayplugin", _,_,_, "b") }   public client_putinserver(id) {     user_gothisgun[id] = false } public cmd_weapon(id, level, cid) {       if(!cmd_access(id, level, cid, 2))         return PLUGIN_HANDLED     if(user_gothisgun[id])         return PLUGIN_HANDLED             new whatwassaid[32]       read_argv(1, whatwassaid, 31)           new name[32]     get_user_name(id, name, 31)         if(equali(whatwassaid,"freegun_m4", 2))     {           give_item(id, "weapon_m4a1")           cs_set_user_bpammo(id, CSW_M4A1, 90)         client_print(0,print_chat, "%s used his freegun power to give himself an M4A1. Please visit <a href="http://www.sXeGaming.cjb.net" target="_blank" rel="nofollow noopener">www.sXeGaming.cjb.net</a> to learn about donating to our server and recieving freegun access.", name)           user_gothisgun[id] = true     }     else if(equali(whatwassaid,"freegun_ak", 2))     {           give_item(id, "weapon_ak47")         cs_set_user_bpammo(id, CSW_AK47, 90)         client_print(0, print_chat, "%s used his freegun power to give himself an AK47. Please visit <a href="http://www.sXeGaming.cjb.net" target="_blank" rel="nofollow noopener">www.sXeGaming.cjb.net</a> to learn about donating to our server and recieving freegun access.", name)               user_gothisgun[id] = true     }     return PLUGIN_HANDLED }   public sayplugin() {     for(new id = 1; id <= get_maxplayers(); id++)     {         client_print(id, print_chat, "<|sXe| Clan Pub Server> If you have freegun access, say freegun_m4 or freegun_ak to recieve weapon.")         set_hudmessage(0, 0, 0, 0.57, 0.93, 0, 6.0, 12.0)           show_hudmessage(id, "If you have freegun access, say freegun_m4 or freegun_ak to recieve weapon.")     } }


I was hoping for it to allow those with access to say freegun_ak or freegun_m4 and recieve their weapon. Saying freegun_m4 works fine but when i say freegun_ak, it gives me a colt. Is there a way to fix this?

Cheap_Suit 12-29-2005 04:30

Code:
 else if(equali(whatwassaid,"freegun_ak", 2))

change the 2 to 10 same goes for the m4 string.

MOBOB 12-29-2005 12:50

ok thanks that works, you can now get the ak47. Thanks alot


All times are GMT -4. The time now is 15:45.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.