#include <amxmodx> #include <amxmisc> #include <fakemeta> #include <cstrike> #include <StripWeapons> #define Plugin "Sell Weapons" #define Version "1.5" #define Author "Doombringer" #define MAX_WEAPONS 33 new const g_prices[MAX_WEAPONS][] = { "0", "600", "0", "2750", "0", "3000", "0", "1400", "3500", "0", "800", "750", "1700", "4200", "2000", "2250", "500", "400", "4750", "1500", "5750", "1700", "3100", "1250", "5000", "0", "650", "3500", "2500", "0", "2350", "0", "0" } new cvar, buyzone, annonce, divide //Pcvar stuff, makes life easier public plugin_init() // Plugin_init(): Does all the "one-time" stuff. Called after plugin_precache(). { register_plugin(Plugin, Version, Author) //Register's the plugin so it can be seen in amx_help register_clcmd("say /sprzedaj", "cmd_sell") //Registers the command itself. So if someone say /sell the function will be executed register_clcmd("say_team /sprzedaj", "cmd_sell") //Save as above but for team chat register_clcmd("drop", "przerwij"); cvar = register_cvar("SW_enabled", "1") //Registers the cvar SW_enabled, Default 1 (If nothing else is in server.cfg or any other .cfg file) buyzone = register_cvar("SW_buyzone", "0") //Registers the cvar SW_buyzone, Default 0 (If nothing else is in server.cfg or any other .cfg file) annonce = register_cvar("SW_annonce", "150") //Registers the cvar SW_annonce, Default 120 (If nothing else is in server.cfg or any other .cfg file) divide = register_cvar("SW_divide", "2") //Registers the cvar SW_divide, Default 2 (If nothing else is in server.cfg or any other .cfg file) if(get_pcvar_num(annonce) > 1) //If the pcvar annonce is higher then 1 set_task(get_pcvar_float(annonce), "print_annonce",_,_,_,"b") //Set a task to run the annonce function every get_pcvar_float(annonce) time } public print_annonce() //The function that shows the annonce { if(get_pcvar_num(annonce) < 1) //If it's lower then 1 return PLUGIN_CONTINUE //Make the plugin continue (Yes i know i should do remove_task() but this is better) client_print(0, print_chat, "Chcesz sprzedac bron? Wpisz /sprzedaj") //Prints the message to everyones chat area return PLUGIN_CONTINUE //Continue... } public cmd_sell(id) //The whole main function { set_task(0.5, "trolo", id); } //EOF public przerwij(id) remove_task(id); public trolo(id){ if(get_pcvar_num(cvar) < 1) //If the pcvar cvar is lower then one return PLUGIN_CONTINUE //Continue... if(get_pcvar_num(buyzone) == 1 && cs_get_user_buyzone(id) == 0) //If pcvar buyzone is equal to one and user is not in a buyzone { client_print(id, print_chat, "Musisz byc na respie by sprzedac bron!") //Prints a angry little message :) return PLUGIN_HANDLED //And ends the function } if(!is_user_alive(id)) //Isn't he alive?! { client_print(id, print_chat, "Musisz byc zywy, by sprzedac bron!") //Prints a angry little message :) return PLUGIN_HANDLED //And ends the function } new temp, weapon = get_user_weapon(id, temp, temp) //Fills weapon with the current hold weapon (temp is a so called dummy) new price = str_to_num(g_prices[weapon]) //Gets the price for the current weapon if(price == 0) //If it's equal to zero { client_print(id, print_chat, "Nie mozesz tego sprzedac!") //Prints a angry little message :) return PLUGIN_HANDLED //And ends the function } new oldmoney = cs_get_user_money(id) //Gets the players money new cash = clamp(oldmoney + (price / get_pcvar_num(divide)), 0, 16000) //clamps the total amount of cash, so it doesn't extend the 16000 limit if(weapon != 1 && weapon != 10 && weapon != 11 && weapon != 16 && weapon != 17 && weapon != 26) StripWeapons(id, Primary); else StripWeapons(id, Secondary); cs_set_user_money(id, cash) //Sets the money from cash client_print(id, print_chat, "Otrzymales %d$", cs_get_user_money(id) - oldmoney) //Prints some info about what you got return PLUGIN_HANDLED //Done }
Czek diz