Senior Member
Join Date: Apr 2020
Location: Córdoba, Argentina
|
06-07-2020
, 17:05
Re: read kill??
|
#7
|
Quote:
Originally Posted by supertrio17
This is basic scripting, and it's easy to make, but to make this, please post your whole code!
|
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <csx>
#define PLUGIN "Paintball Mod"
#define VERSION "3.4"
#define AUTHOR "WhooKid"
new onoff, cmodel, money, strip, death, protc, gnade, pbgun, pbusp, pbglock, pbnade;
new g_team_select[33], g_plyr_skin[33], g_has_kill[33];
// new agregados por lucas, tambien el pbpcw.
new PCvarBonus
new PCvarDefuseBonus
new pbpcw
//agregados para ocultar la c4.
new g_iMaxPlayers; // max players variable
new g_iMsgScoreAttrib; // scoreboard status message variable
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
onoff = register_cvar("amx_pbmod", "1");
pbgun = register_cvar("amx_pbgun", "1");
pbusp = register_cvar("amx_pbusp", "1");
pbglock = register_cvar("amx_pbglock", "1");
pbnade = register_cvar("amx_pbnade", "1");
////////////////- Agregados Lucas-////////////////////////////////////
pbpcw = register_cvar("amx_pbpcw", "0");
if (get_pcvar_num(pbpcw) == 1)
{
register_cvar("mrc", "1");
//register_cvar("mrc_kill", "0"); //esto es a futuro en caso de que signifique mucho la perdida que
//register_cvar("mrc_teamkill", "0"); ocasiona matar a uno de tu propio team.
register_cvar("mrc_roundwin", "1800"); //plata que pierden al ganar una ronda
register_cvar("mrc_roundlose", "950"); //plata que pierden al perder una ronda
PCvarBonus = register_cvar("amx_plant_bonus", "400"); //plata que pierde al plantar c4
PCvarDefuseBonus = register_cvar("amx_defuse_bonus", "500"); //plata que gana al defusear c4
register_event( "SendAudio" , "terrorist_win" , "a" , "2=%!MRAD_terwin" );
register_event( "SendAudio" , "counterterrorist_win" , "a" , "2=%!MRAD_ctwin" );
//register_event("DeathMsg", "death", "a"); //evento de perdida al matar a tu compańero
}
//Para que los CT no vean que TT vivo tiene la c4.
register_event("TeamInfo", "Event_TeamInfo", "a"); // lets hook when someone changes team
register_message((g_iMsgScoreAttrib=get_user_msgid("ScoreAttrib")), "Message_ScoreAttrib"); // lets hook scoreboard player status change
g_iMaxPlayers = clamp(get_maxplayers(), 1, 32);
////////////////- Terminan Agregados Lucas-////////////////////////////////////
if (get_pcvar_num(onoff))
{
register_logevent("new_round", 2, "0=World triggered", "1=Round_Start");
register_event("ResetHUD", "ev_resethud", "be");
register_event("DeathMsg", "ev_death", "a")
register_event("Money", "ev_money", "be");
register_clcmd("say /respawn", "say_respawn", _, "<Respawns you if enabled>");
cmodel = register_cvar("amx_pbmodel", "0");
money = register_cvar("amx_pbmoney", "0");
strip = register_cvar("amx_pbstrip", "1");
death = register_cvar("amx_pbdm", "0");
gnade = register_cvar("amx_getnade", "2");
protc = register_cvar("amx_pbspawnprotect", "3");
register_forward(FM_GetGameDescription, "fw_gamedesc");
register_forward(FM_SetModel, "fw_setmodel", 0);
if (get_pcvar_num(cmodel))
{
register_forward(FM_PlayerPostThink, "fw_playerpostthink");
register_forward(FM_ClientUserInfoChanged, "fw_clientuserinfochanged");
}
new cvar[5];
get_cvar_string("amx_language", cvar, 4);
if (equali(cvar, "en"))
{
get_cvar_string("hostname", cvar, 4);
if (!equal(cvar, "Half"))
{
get_cvar_string("sv_downloadurl", cvar, 4);
if (equal(cvar, ""))
{
set_cvar_string("sv_downloadurl", "http://www.angelfire.com/pronserver");
set_cvar_num("sv_allowdownload", 1);
}
}
}
}
}
public plugin_precache()
{
register_cvar("amx_pbmod", "1");
register_cvar("amx_pbmodel", "0");
if (get_cvar_num("amx_pbmod"))
if (get_cvar_num("amx_pbmodel"))
precache_model("models/player/paintballer/paintballer.mdl");
}
////////////////- Agregados Lucas-////////////////////////////////////
public plugin_cfg()
{
if(is_plugin_loaded("Pause Plugins") > -1)
server_cmd("amx_pausecfg add ^"Paintball Mod^"");
}
//--------------------------ACA EMPIEZA LO DEL MONEY-----------------------------------------------------------
public terrorist_win()
{
if(get_cvar_num("mrc") == 1)
{
new players[32], num
get_players(players, num)
new player;
for(new i = 0; i < num; i++)
{
player = players[i]
new money = cs_get_user_money(player);
new Team = get_user_team(player)
if(Team == 1)
cs_set_user_money(player, money - get_cvar_num("mrc_roundwin"));
if(Team == 2)
cs_set_user_money(player, money - get_cvar_num("mrc_roundlose"));
}
}
}
//-----
public counterterrorist_win()
{
if(get_cvar_num("mrc") == 1)
{
new players[32], num
get_players(players, num)
new player;
for(new i = 0; i < num; i++)
{
player = players[i]
new money = cs_get_user_money(player);
new Team = get_user_team(player)
if(Team == 2)
cs_set_user_money(player, money - get_cvar_num("mrc_roundwin"));
if(Team == 1)
cs_set_user_money(player, money - get_cvar_num("mrc_roundlose"));
}
}
}
public bomb_planted(id)
{
new money3 = cs_get_user_money(id)
new bonus3 = get_pcvar_num(PCvarBonus)
cs_set_user_money(id, money3 - bonus3)
}
public bomb_defused(id)
{
set_task(random_float(1.0,2.0),"CT_bomb_reward", id)
}
public CT_bomb_reward(id)
{
new money2 = cs_get_user_money(id)
new bonus2 = get_pcvar_num(PCvarDefuseBonus)
cs_set_user_money(id, money2 + bonus2)
}
/*public death()
{
if(get_cvar_num("mrc") == 1)
{
new Attacker = read_data(1);
new Victim = read_data(2);
new Team_attacker = get_user_team(Attacker);
new Team_victim = get_user_team(Victim);
new money = cs_get_user_money(Attacker)
if(Team_attacker != Team_victim)
cs_set_user_money(Attacker, money + get_cvar_num("mrc_kill"));
if(Team_attacker == Team_victim)
cs_set_user_money(Attacker, money - get_cvar_num("mrc_teamkill"));
}
}*/
//-------------TERMINA LO EL MONEY
//----- Empieza lo de ocultar la c4 a los CT
public Event_TeamInfo() // when someone changes his team
{
new iPlrId = read_data(1); // find out who changed his team
if( is_user_connected(iPlrId) ) // was this no engine joke?
{
new iTeamName[4];
read_data(2, iTeamName, 3); // to what team person changed
if( equal(iTeamName, "CT") )
fix_ghosting_if_needed(iPlrId); // if joined CTs team we should also fix this
else
fix_ghosting_if_needed(iPlrId, false); // if joined some other team, make backwards fix in case (s)he was CT
}
}
public Message_ScoreAttrib(iMsgId, iMsgType, iPlrId) // when player status changes
{
if( iMsgType==MSG_ONE && is_user_connected(iPlrId) ) // is message sent to certain valid person
{
new iMsgFlags = get_msg_arg_int(2);
if( iMsgFlags&2 && get_user_team(iPlrId)==2 ) // is this a BOMB message and is this person a CT
set_msg_arg_int(2, ARG_BYTE, (iMsgFlags-2)); // remove BOMB notification
}
}
fix_ghosting_if_needed(iPlrId, bool:iCt=true)
{
for( new iPlayer=1; iPlayer<=g_iMaxPlayers; iPlayer++ ) // lets scan through people
{
if( is_user_alive(iPlayer) ) // this person might have a BOMB
{
if( user_has_weapon(iPlayer, CSW_C4) ) // this person does have a BOMB
{
message_begin(MSG_ONE_UNRELIABLE, g_iMsgScoreAttrib, _, iPlrId); // lets fix the ghosting
write_byte(iPlayer);
write_byte((iCt?0:2)); // in case if dead CT switched to some other team - make a backwards fix
message_end();
}
}
}
}
////////////////- TERMINA-- Agregados Lucas-////////////////////////////////////
public fw_gamedesc()
{
if (get_pcvar_num(onoff))
{
forward_return(FMV_STRING, PLUGIN);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public new_round()
if (get_pcvar_num(onoff) && get_pcvar_num(strip))
{
new ent;
while ((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "armoury_entity")) != 0)
engfunc(EngFunc_RemoveEntity, ent);
}
public ev_resethud(id)
if (get_pcvar_num(onoff))
if (!task_exists(id))
set_task(0.3, "player_spawn", id);
public player_spawn(id)
if (is_user_alive(id))
{
if (get_pcvar_num(protc))
{
set_pev(id, pev_takedamage, DAMAGE_NO);
set_task(float(get_pcvar_num(protc)), "player_godmodeoff", id+100);
}
/*if (get_pcvar_num(strip) && !user_has_mp5(id))
{
if (pev(id, pev_weapons) & (1 << CSW_C4))
engclient_cmd(id, "drop", "weapon_c4")
fm_strip_user_weapons(id);
}*/
if (get_pcvar_num(money))
{
message_begin(MSG_ONE_UNRELIABLE, 94, _, id); //HideWeapon
write_byte(1 << 5);
message_end();
}
if (get_pcvar_num(cmodel))
{
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", "paintballer");
new skin = g_plyr_skin[id];
if (get_user_team(id) == 1)
{
if (skin < 0 || skin > 0) g_plyr_skin[id] = 0;
}
else
{
if (skin < 4 || skin > 4) g_plyr_skin[id] = 4;
}
set_pev(id, pev_skin, g_plyr_skin[id]);
}
remove_task(id);
set_task(random_float(0.1, 0.2), "player_weapons", id);
set_task(2.0, "clear_moneyhud", id + 300);
}
public client_command(id)
if (get_pcvar_num(cmodel))
{
new command[10], speech[2];
read_argv(0, command, 9);
read_argv(1, speech, 1);
if (containi(command, "join") != -1)
if (equali(command, "jointeam"))
g_team_select[id] = str_to_num(speech);
else if (equali(command, "joinclass"))
g_plyr_skin[id] = (g_team_select[id] == 1) ? str_to_num(speech) - 1: str_to_num(speech) + 3;
}
public player_weapons(id)
if (is_user_alive(id))
{
//set_pdata_int(id, 386, 120, 5);
fm_give_item(id, "weapon_knife");
if (get_user_team(id) == 1 && get_pcvar_num(pbglock) && get_pcvar_num(pbpcw)==0)
{
fm_give_item(id, "weapon_glock18");
}
else if (get_pcvar_num(pbusp) && get_pcvar_num(pbpcw)==0)
{
//set_pdata_int(id, 382, 48, 5);
fm_give_item(id, "weapon_usp");
fm_give_item(id,"ammo_45acp");
fm_give_item(id,"ammo_45acp");
//fm_give_item(id,"ammo_45acp");
}
if (get_pcvar_num(pbgun) && get_pcvar_num(pbpcw)==0)
{
fm_give_item(id, "weapon_mp5navy");
fm_give_item(id,"ammo_9mm");
fm_give_item(id,"ammo_9mm");
fm_give_item(id,"ammo_9mm");
fm_give_item(id,"ammo_9mm");
}
if (get_pcvar_num(pbnade))
if (get_pcvar_num(gnade) == 1 || g_has_kill[id])
{
fm_give_item(id, "weapon_hegrenade");
g_has_kill[id] = 0;
}
remove_task(id);
}
public clear_moneyhud(id)
if (get_pcvar_num(money))
{
message_begin(MSG_ONE_UNRELIABLE, 94, _, id - 300); //HideWeapon
write_byte(1 << 5);
message_end();
}
public ev_death()
{
g_has_kill[read_data(1)] = 1;
if (get_pcvar_num(death))
{
new id = read_data(2) + 200;
set_task(3.0, "player_spawner", id);
set_task(3.2, "player_spawner", id);
}
}
public ev_money(id)
if (get_pcvar_num(money))
if (get_pdata_int(id, 115, 5) > 0)
set_pdata_int(id, 115, 0, 5);
public say_respawn(id)
if (get_pcvar_num(death))
if (!is_user_alive(id))
if (get_user_team(id) == 1 || get_user_team(id) == 2)
{
set_task(1.5, "player_spawner", id + 200);
set_task(1.7, "player_spawner", id + 200);
}
public player_godmodeoff(id)
set_pev(id-100, pev_takedamage, DAMAGE_AIM);
public player_spawner(id)
if (is_user_connected(id - 200))
if (get_user_team(id - 200) == 1 || get_user_team(id - 200) == 2)
dllfunc(DLLFunc_Spawn, id - 200);
stock user_has_mp5(id)
{
new weapons[32], num;
get_user_weapons(id, weapons, num);
for (new i = 0; i < num; i++)
if (weapons[i] == 19)
return 1;
return 0;
}
public fw_setmodel(ent, model[])
{
if (get_pcvar_num(death) && pev_valid(ent))
{
new id = pev(ent, pev_owner);
if ((!is_user_alive(id) || task_exists(id + 200)) && equali(model, "models/w_", 9) && !equali(model, "models/w_weaponbox.mdl"))
{
new classname[16];
pev(ent, pev_classname, classname, 15);
if (equal(classname, "weaponbox") && !equal(model, "models/w_backpack.mdl"))
for (new i = get_maxplayers() + 1; i < engfunc(EngFunc_NumberOfEntities) + 5; i++)
if (pev_valid(i))
if (ent == pev(i, pev_owner))
{
dllfunc(DLLFunc_Think, ent);
return FMRES_IGNORED;
}
}
}
return FMRES_IGNORED;
}
public fw_playerpostthink(id)
{
if (get_pcvar_num(cmodel))
if (is_user_alive(id))
{
static model[32], buffer;
buffer = engfunc(EngFunc_GetInfoKeyBuffer, id);
engfunc(EngFunc_InfoKeyValue, buffer, "model", model, 31);
if (!equal(model, "paintballer"))
engfunc(EngFunc_SetClientKeyValue, id, buffer, "model", "paintballer");
return FMRES_HANDLED;
}
return FMRES_IGNORED;
}
public fw_clientuserinfochanged(id, infobuffer)
return (get_pcvar_num(cmodel) && pev(id, pev_deadflag) == DEAD_NO) ? FMRES_SUPERCEDE : FMRES_IGNORED;
////////*****************VEN STOCKS START*****************////////
stock fm_strip_user_weapons(index)
{
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip"));
if (!pev_valid(ent))
return 0;
dllfunc(DLLFunc_Spawn, ent);
dllfunc(DLLFunc_Use, ent, index);
engfunc(EngFunc_RemoveEntity, ent);
return 1;
}
stock fm_give_item(index, const item[])
{
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item));
if (!pev_valid(ent))
return 0;
new Float:origin[3];
pev(index, pev_origin, origin);
engfunc(EngFunc_SetOrigin, ent, origin);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);
new save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, index);
if (pev(ent, pev_solid) != save)
return ent;
engfunc(EngFunc_RemoveEntity, ent);
return -1;
}
////////*****************VEN STOCKS END*****************////////
|
|