![]()
#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


Dodatki SourceMod




Moja zawartość
Mężczyzna






codclass_pirotechnik.amxx