PDA

View Full Version : Antidot plugin



petryca
13-12-2014, 09:23 AM
Am luat sursa pluginului cu antidot de pe un site si am incercat sa modific (aseara a fost primul contact cu amxmodx si obiecte) astfel incat sa arate un mic meniu de arme.Nu merge(nu se compileaza si nu stiu unde e eroarea).
As dori,daca e cineva amabil si priceput,sa-mi ofere cateva informatii cu privire la eventualele greseli.
Multumesc frumos!
Antidot (<b>You have to register to ba able to see this link</b>)
:ass:

Tiger
13-12-2014, 10:05 AM
Nu a fost testat.

/* Plugin modified by petryca */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <biohazard>

#if !defined _biohazard_included
#assert Biohazard functions file required!
#endif

#define OFFSET_NVGOGGLES 129
#define HAS_NVGS (1<<0)
#define USES_NVGS (1<<8)
#define PA_LOW 25.0
#define PA_HIGH 50.0

new antidote_enabled, antidote_cost, antidote_hudmessage

new gmsgNVGToggle, g_msgMoney
//new g_hasadgun[33]

public plugin_init()
{
/* Plugin */
register_plugin("Antidot meniu", "1.0", "petryca")

g_msgMoney = get_user_msgid("Money")
gmsgNVGToggle = get_user_msgid("NVGToggle")

/* Commands */
register_clcmd("say /antidot", "infect_antidote")
register_clcmd("say antidot", "infect_antidote")

/* Admin Commands */
register_concmd("amx_antidote", "cmd_give_antidote", ADMIN_BAN, "<name>")

/* Events */
//register_event("Damage", "event_damage", "b", "2>0") - nu mai folosesti antidotegun, nu mai ai nevoie de asta
//register_event("HLTV","event_newround", "a","1=0", "2=0")

/* Pcvars */
antidote_enabled = register_cvar("bio_antidote_enabled", "1" )
antidote_cost = register_cvar("bio_antidote_cost", "8000")
antidote_hudmessage = register_cvar("bio_antidote_hudmessage", "1")

/* Language */
register_dictionary("bio_antidote.txt")

/*By me*/
new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_K EY_4
register_menucmd(register_menuid("Alege arma:"), keys, "giveWeapon")
register_clcmd("giveme", "showWeaponMenu")
}

/*
public event_damage(id)
{
new iWeapID, attacker = get_user_attacker(id, iWeapID);

if(!is_user_connected(attacker))
return PLUGIN_CONTINUE;
// S-a verificat deja daca jucatorul ID este in viata sau nu, instructiunea urmatoare este useless
// if(!is_user_connected(id))
// return PLUGIN_CONTINUE;
//

// if user have antidote..

//if((iWeapID == CSW_AWP)||(iWeapID == CSW_M4A1)||(iWeapID == CSW_MP5NAVY)||(iWeapID == CSW_SG550)||(iWeapID == CSW_AK47))
if(iWeapID == CSW_AWP)
{
if (g_hasadgun[id])
{
set_user_human(id)
}
}
return PLUGIN_CONTINUE;
}
*/

/* Admin Commands: amx_antidote */
public cmd_give_antidote(id,level,cid)
{
/* Check user admin */
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;

/* Check user alive */
if(!is_user_alive(id))
return PLUGIN_HANDLED

/* Check user zombie */
if(!is_user_zombie(id))
return PLUGIN_HANDLED;

new arg[32];
read_argv(1,arg,31);

new player = cmd_target(id,arg,7);
if (!player)
return PLUGIN_HANDLED;

new name[32];
get_user_name(player,name,31);

/* Give a Antidote */
set_user_human(player)

return PLUGIN_HANDLED
}


/* Commands: say /antidote */
public infect_antidote(id)
{
if(get_pcvar_num(antidote_enabled))
{
new money = cs_get_user_money(id)
new price_antidote = get_pcvar_num(antidote_cost)

new ts[32], tsnum
new maxplayers = get_maxplayers()
new CsTeams:team

for (new i=1; i<=maxplayers; i++)
{
if (!is_user_connected(i) || !is_user_alive(i))
{
continue
}
team = cs_get_user_team(i)

if (team == CS_TEAM_T)
{
ts[tsnum++] = i
}
}

/* Check user last zombie */
if (tsnum == 1)
{
client_print(id, print_chat, "[BIO] %L", LANG_PLAYER, "LAST_ZOMBIE")
return PLUGIN_HANDLED
}

/* Check user alive */
if(!is_user_alive(id))
return PLUGIN_HANDLED

/* Check user zombie */
if(!is_user_zombie(id))
return PLUGIN_HANDLED

/* Check user money */
if(money <= price_antidote)
{
client_print(id, print_center, "[BIO] %L", LANG_PLAYER, "NOT_ENOUGH_MONEY" , price_antidote)
}
else
{
/* -user money to buy a zombie antidote */
message_begin(MSG_ONE, g_msgMoney, _, id)
write_long(money-price_antidote) // amount
write_byte(1) // flash
message_end()

cs_set_user_money(id, money - price_antidote)

/* Client Print */
client_print(id, print_center, "[BIO] %L", LANG_PLAYER, "USED_ANTIDOTE")

/* Set user to survivor */
set_user_human(id)

/* HudMessage */
if(get_pcvar_num(antidote_hudmessage))
{
set_hudmessage(0, 0, 255, -1.0, 0.53)
show_hudmessage(id, "%L", LANG_PLAYER, "AGAIN_SURVIVOR")
}
}
}
return PLUGIN_HANDLED
}


/* Set user to survivor */
stock set_user_human(id)
{
cure_user(id)

/* Remove night vision from user*/
Remove_User_Nvgs(id)

/* Set user health to 100 */
set_user_health(id, 100)

/* Set user to CT TEAM */
cs_set_user_team(id, CS_TEAM_CT)

/* reset user model */
cs_reset_user_model(id)


// Daca doresti sa afisezi meniul cu armele apelezi direct functia

showWeaponMenu(id)
/*
//give user weapon
give_item(id, "weapon_m4a1")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_mp5navy")
give_item(id, "weapon_sg550")

// set user ammo
cs_set_user_bpammo(id, CSW_M4A1, 90)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
cs_set_user_bpammo(id, CSW_MP5NAVY, 60)
cs_set_user_bpammo(id, CSW_SG550, 60)
*/
}
//by me

//The clcmd function will just give us the player id
public showWeaponMenu(id)
{
new menu[192]
new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_K EY_4

format(menu, 191, "Alege arma:^n^n0. AK47^n1. M4A1^n2. MP5NAVY^n3. SG550^n4. AWP")
show_menu(id, keys, menu)
return PLUGIN_HANDLED
}

//Our menu function will get the player id and the key they pressed
public giveWeapon(id, key)
{
//key will start at 0
if (key == 1)
{
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)

} else if (key == 2) {
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90)
} else if (key == 3) {
give_item(id, "weapon_mp5navy")
cs_set_user_bpammo(id, CSW_MP5NAVY, 60)
}else if (key == 4) {
give_item(id, "weapon_sg550")
cs_set_user_bpammo(id, CSW_SG550, 60)
}

give_item(id, "weapon_deagle")
give_item(id, "weapon_hegrenade")

cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}


/* Remove night vision from user*/
Remove_User_Nvgs(id)
{
new iNvgs = get_pdata_int(id, OFFSET_NVGOGGLES, 5)
if( !iNvgs )
{
return
}
if( iNvgs & USES_NVGS )
{
emit_sound(id, CHAN_ITEM, "items/nvg_off.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)

emessage_begin(MSG_ONE, gmsgNVGToggle, _, id)
ewrite_byte(0)
emessage_end()
}
set_pdata_int(id, OFFSET_NVGOGGLES, 0, 5)
}

petryca
13-12-2014, 10:24 AM
Mai exact?Tot nu merge...da eroare la compilare.
:ass:

Tiger
13-12-2014, 11:21 AM
Pai pune "biohazard.inc" in folder-ul "/includes/" al compiler-ului. -_-

petryca
13-12-2014, 12:31 PM
Este pus biohazard.inc si totusi da "Internal error" ;)
:ass:

Tiger
13-12-2014, 08:03 PM
Compileaza-l online daca nu te descurci cu compilatorul pe care-l ai. Mie imi compileaza fara probleme.

petryca
13-12-2014, 09:49 PM
Am revenit aici.
Am facut un mic meniu de arme la acest plugin.Sper sa fie bun.Astept parerea ta,Tiger!

/* Plugin modified by petryca */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <biohazard>

#if !defined _biohazard_included
#assert Biohazard functions file required!
#endif

#define OFFSET_NVGOGGLES 129
#define HAS_NVGS (1<<0)
#define USES_NVGS (1<<8)
#define PA_LOW 25.0
#define PA_HIGH 50.0

new antidote_enabled, antidote_cost, antidote_hudmessage

new gmsgNVGToggle, g_msgMoney

public plugin_init()
{
/* Plugin */
register_plugin("Antidot meniu", "1.0", "petryca")

g_msgMoney = get_user_msgid("Money")
gmsgNVGToggle = get_user_msgid("NVGToggle")

/* Commands */
register_clcmd("say /antidot", "infect_antidote")
register_clcmd("say antidot", "infect_antidote")

/* Admin Commands */
register_concmd("amx_antidote", "cmd_give_antidote", ADMIN_BAN, "<name>")


/* Pcvars */
antidote_enabled = register_cvar("bio_antidote_enabled", "1" )
antidote_cost = register_cvar("bio_antidote_cost", "8000")
antidote_hudmessage = register_cvar("bio_antidote_hudmessage", "1")

/* Language */
register_dictionary("bio_antidote.txt")

/*By me*/
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_K EY_5
register_menucmd(register_menuid("Alege arma"), keys, "giveWeapon")
register_clcmd("giveme", "showWeaponMenu")
}




/* Admin Commands: amx_antidote */
public cmd_give_antidote(id,level,cid)
{
/* Check user admin */
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;

/* Check user alive */
if(!is_user_alive(id))
return PLUGIN_HANDLED

/* Check user zombie */
if(!is_user_zombie(id))
return PLUGIN_HANDLED;

new arg[32];
read_argv(1,arg,31);

new player = cmd_target(id,arg,7);
if (!player)
return PLUGIN_HANDLED;

new name[32];
get_user_name(player,name,31);

/* Give a Antidote */
set_user_human(player)

return PLUGIN_HANDLED
}


/* Commands: say /antidote */
public infect_antidote(id)
{
if(get_pcvar_num(antidote_enabled))
{
new money = cs_get_user_money(id)
new price_antidote = get_pcvar_num(antidote_cost)

new ts[32], tsnum
new maxplayers = get_maxplayers()
new CsTeams:team

for (new i=1; i<=maxplayers; i++)
{
if (!is_user_connected(i) || !is_user_alive(i))
{
continue
}
team = cs_get_user_team(i)

if (team == CS_TEAM_T)
{
ts[tsnum++] = i
}
}

/* Check user last zombie */
if (tsnum == 1)
{
client_print(id, print_chat, "[BIO] %L", LANG_PLAYER, "LAST_ZOMBIE")
return PLUGIN_HANDLED
}

/* Check user alive */
if(!is_user_alive(id))
return PLUGIN_HANDLED

/* Check user zombie */
if(!is_user_zombie(id))
return PLUGIN_HANDLED

/* Check user money */
if(money <= price_antidote)
{
client_print(id, print_center, "[BIO] %L", LANG_PLAYER, "NOT_ENOUGH_MONEY" , price_antidote)
}
else
{
/* -user money to buy a zombie antidote */
message_begin(MSG_ONE, g_msgMoney, _, id)
write_long(money-price_antidote) // amount
write_byte(1) // flash
message_end()

cs_set_user_money(id, money - price_antidote)

/* Client Print */
client_print(id, print_center, "[BIO] %L", LANG_PLAYER, "USED_ANTIDOTE")

/* Set user to survivor */
set_user_human(id)

/* HudMessage */
if(get_pcvar_num(antidote_hudmessage))
{
set_hudmessage(0, 0, 255, -1.0, 0.53)
show_hudmessage(id, "%L", LANG_PLAYER, "AGAIN_SURVIVOR")
}
}
}
return PLUGIN_HANDLED
}

//by me

//The clcmd function will just give us the player id
public showWeaponMenu(id)
{
new menu[192]
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_K EY_5

format(menu, 191, "Alege arma ^n^n1. AK47^n2. M4A1^n3. MP5NAVY^n4. Sniper")
show_menu(id, keys, menu)
return PLUGIN_HANDLED
}

//Our menu function will get the player id and the key they pressed
public giveWeapon(id, key)
{


//key will start at 1
if (key == 0)
{
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
}

if (key == 1)
{
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90)
}
if (key == 2)
{
give_item(id, "weapon_mp5navy")
cs_set_user_bpammo(id, CSW_MP5NAVY, 60)
}
if (key == 3)
{
give_item(id, "weapon_sg550")
cs_set_user_bpammo(id, CSW_SG550, 60)
}
if (key == 4)
{
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 60)
}
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
give_item(id, "weapon_hegrenade")
give_item(id,"weapon_smokegrenade")

}

/* Set user to survivor */
stock set_user_human(id)
{
cure_user(id)

/* Remove night vision from user*/
Remove_User_Nvgs(id)

/* Set user health to 100 */
set_user_health(id, 100)

/* Set user to CT TEAM */
cs_set_user_team(id, CS_TEAM_CT)

/* reset user model */
cs_reset_user_model(id)



showWeaponMenu(id)

}



/* Remove night vision from user*/
Remove_User_Nvgs(id)
{
new iNvgs = get_pdata_int(id, OFFSET_NVGOGGLES, 5)
if( !iNvgs )
{
return
}
if( iNvgs & USES_NVGS )
{
emit_sound(id, CHAN_ITEM, "items/nvg_off.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)

emessage_begin(MSG_ONE, gmsgNVGToggle, _, id)
ewrite_byte(0)
emessage_end()
}
set_pdata_int(id, OFFSET_NVGOGGLES, 0, 5)
}