hola antibots mira yo nesesito si pudees podificar el extra item de las lasser mine para que se puden comprar lasermine y tripe mine
que todo sea aparte que se compren diferentes las dos y que cada una tenga sus respectivas cvar mira yo encontre este sma pero tira muchos errores
Code:
//--- lasermine_023.sma 2008/09/24 20:22:42 249
//+++ lasermine_023.sma 2008/09/24 20:24:13 250
//@@ -1,14 +1,11 @@
/* Plugin generated by AMXX-Studio */
//#define BIOHAZARD_SUPPORT
//#define UL_MONEY_SUPPORT
#include <amxmodx>
#include <fakemeta>
#include <xs>
#include <zombieplague.inc>
//-#if defined BIOHAZARD_SUPPORT
//-#include <biohazard>
//-#endif
#if defined BIOHAZARD_SUPPORT
#include <biohazard>
#endif
#if defined UL_MONEY_SUPPORT
#include <money_ul>
#assert AMX Mod X v1.8.0 or greater library required!
#endif
/*-#if defined BIOHAZARD_SUPPORT
- #define PLUGIN "LTM for BIOHAZARD"
- #define VERSION "+1.4"
-#else
- #define PLUGIN "Laser/Tripmine Entity"
- #define VERSION "2.3"
-#endif
+#define PLUGIN "Laser/Tripmine Entity"
+#define VERSION "2.3"
+
+
*/
#if defined BIOHAZARD_SUPPORT
#define PLUGIN "LTM for BIOHAZARD"
#define VERSION "+1.4"
#else
#define PLUGIN "Laser/Tripmine Entity"
#define VERSION "2.3"
#endif
#define PLUGIN "Laser/Tripmine Entity"
#define VERSION "2.3"
#define AUTHOR "SandStriker"
#define RemoveEntity(%1) engfunc(EngFunc_RemoveEntity,%1)
//#define ACCESSLEVEL ADMIN_LEVEL_H
//-#define TASK_PLANT 15100
//+#define TASK_PLANT 30100
#define TASK_PLANT 15100
#define TASK_PLANT 30100
#define TASK_RESET 15500
#define TASK_RELEASE 15900
//@@ -56,6 +50,13 @@
#define cs_set_user_money(%1,%2) set_offset_value(%1,OFFSET_MONEY,%2)
////////////// Define ZP EXTRA! //////////////////////
new const g_item_name[] = { "LaserMines" }
const g_item_lmines = 8
new g_itemid_lminas
//new id
//new proban;
//////////////////////////////////////////////////////
enum CsTeams {
CS_TEAM_UNASSIGNED = 0,
//@@ -108,34 +109,29 @@
ENT_CLASS_NAME3[] = "func_breakable";
new const
#if defined BIOHAZARD_SUPPORT
CHATTAG[] = "[BioLaser]",
else
CHATTAG[] = "[Lasermine]",
#endif
CHATTAG[] = "[ZP]",
//STR_MINEDETNATED[] = "Your mine has detonated.",
//STR_MINEDETNATED2[] = "detonated your mine.",
STR_NOTACTIVE[] = "Lasermines are not currently active.",
STR_DONTHAVEMINE[] = "You don't have lasermine.",
STR_DONTHAVEMINE[] = "You do not have LaserMines.",
//STR_CANTDEPLOY[] = "Your team can't deploying lasermine!",
STR_MAXDEPLOY[] = "Maximum mines have been deployed.",
STR_MANYPPL[] = "Too many ppl on your team...",
STR_PLANTWALL[] = "You must plant the lasermine on a wall!",
STR_PLANTWALL[] = "You have to plant the LaserMine on the wall!",
STR_REF[] = "Refer to a lasermine rule with this server. say 'lasermine'",
#if defined BIOHAZARD_SUPPORT
STR_CBT[] = "Your Zombie! Can't buy and deploying lasermine!",
#else
STR_CBT[] = "Your Team Can't buy and deploying lasermine!",
#endif
STR_CANTBUY[] = "Can't buying this server.",
STR_HAVEMAX[] = "You have a maximum lasermine.",
STR_NOMONEY[] = "You don't have enough money to buy a lasermine! ($",
STR_NEEDED[] = "needed)",
STR_DELAY[] = "You can buying and deploying lasermine in after",
STR_SECONDS[] = "seconds.",
STR_BOUGHT[] = "You have successfully bought a lasermine.",
STR_STATE[] = "LaserMines Ammo:",
STR_NOACCESS[] = "You can't access, this command.";
STR_DELAY[] = "To use lasermines, you have to wait until the first zombie",
//STR_SECONDS[] = "seconds.",
STR_BOUGHT[] = "You earned a LaserMine!. You can plant with the key 'P'",
//STR_STATE[] = "LaserMine Ammo:",
STR_NOACCESS[] = "You have no access to this command.";
new g_EntMine;
new beam, boom
//@@ -148,7 +144,7 @@
new g_dcount[33],g_nowtime,g_MaxPL
new bool:g_settinglaser[33]
new g_msgDeathMsg,g_msgScoreInfo,g_msgDamage,g_msgStatusText,g_msgMoney;
new g_msgDeathMsg,g_msgScoreInfo,g_msgDamage,g_msgMoney;
new Float:plspeed[33]
new plsetting[33]
new g_havemine[33];
//@@ -157,65 +153,44 @@
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_plugin("[ZP] Extra: LaserMines", "1.2", "LARP")
g_itemid_lminas = zp_register_extra_item(g_item_name, g_item_lmines, ZP_TEAM_HUMAN)
// Add your code here...
register_clcmd("say /lm","buy_lmines");
register_clcmd("+setlaser","CreateLaserMine_Progress_b");
register_clcmd("-setlaser","StopCreateLaserMine");
register_clcmd("+dellaser","ReturnLaserMine_Progress");
register_clcmd("-dellaser","StopReturnLaserMine");
register_clcmd("say","say_lasermine");
register_clcmd("buy_lasermine","BuyLasermine");
//register_clcmd("say","say_lasermine");
#if defined BIOHAZARD_SUPPORT
g_LENABLE = register_cvar("bio_ltm","1");
g_LACCESS = register_cvar("bio_ltm_acs","0"); //0 all, 1 admin
g_LMODE = register_cvar("bio_ltm_mode","0"); //0 lasermine, 1 tripmine
g_LAMMO = register_cvar("bio_ltm_ammo","2");
g_LDMG = register_cvar("bio_ltm_dmg","60"); //laser hit dmg
g_LCOST = register_cvar("bio_ltm_cost","2500");
g_LFMONEY = register_cvar("bio_ltm_fragmoney","300");
g_LHEALTH = register_cvar("bio_ltm_health","300");
g_LTMAX = register_cvar("bio_ltm_teammax","10");
g_LRADIUS = register_cvar("bio_ltm_radius","320.0");
g_LRDMG = register_cvar("bio_ltm_rdmg","100"); //radius damage
g_LFF = register_cvar("bio_ltm_ff","0");
g_LCBT = register_cvar("bio_ltm_cbt","ALL");
g_LBUYMODE = register_cvar("bio_ltm_buymode","1");
g_LDELAY = register_cvar("bio_ltm_delay","15");
//g_LTHINK = register_cvar("bio_ltm_think","0.01");
g_LVISIBLE = register_cvar("bio_ltm_line","1");
g_LGLOW = register_cvar("bio_ltm_glow","0");
g_LCBRIGHT = register_cvar("bio_ltm_bright","255"); //laser line brightness.
g_LCLMODE = register_cvar("bio_ltm_color","0"); //0 is team color,1 is green
g_LDMGMODE = register_cvar("bio_ltm_ldmgmode","0"); //0 - frame dmg, 1 - once dmg, 2 - 1 second dmg
g_LDSEC = register_cvar("bio_ltm_ldmgseconds","1"); //mode 2 only, damage / seconds. default 1 (sec)
g_LSTAMMO = register_cvar("bio_ltm_startammo","1");
g_LCMDMODE = register_cvar("bio_ltm_cmdmode","1"); //0 is +USE key, 1 is bind, 2 is each.
#else
g_LENABLE = register_cvar("amx_ltm","1");
g_LACCESS = register_cvar("amx_ltm_acs","0"); //0 all, 1 admin
g_LMODE = register_cvar("amx_ltm_mode","0"); //0 lasermine, 1 tripmine
g_LAMMO = register_cvar("amx_ltm_ammo","2");
g_LDMG = register_cvar("amx_ltm_dmg","60"); //laser hit dmg
g_LCOST = register_cvar("amx_ltm_cost","2500");
g_LFMONEY = register_cvar("amx_ltm_fragmoney","300");
g_LHEALTH = register_cvar("amx_ltm_health","300");
g_LTMAX = register_cvar("amx_ltm_teammax","20");
g_LRADIUS = register_cvar("amx_ltm_radius","320.0");
g_LRDMG = register_cvar("amx_ltm_rdmg","100"); //radius damage
g_LFF = register_cvar("amx_ltm_ff","0");
g_LCBT = register_cvar("amx_ltm_cbt","ALL");
g_LBUYMODE = register_cvar("amx_ltm_buymode","1");
g_LDELAY = register_cvar("amx_ltm_delay","15");
g_LENABLE = register_cvar("zp_ltm","1");
g_LACCESS = register_cvar("zp_ltm_acs","0"); //0 all, 1 admin
g_LMODE = register_cvar("zp_ltm_mode","1"); //0 lasermine, 1 tripmine
g_LAMMO = register_cvar("zp_ltm_ammo","99999");
g_LDMG = register_cvar("zp_ltm_dmg","1000"); //laser hit dmg
g_LCOST = register_cvar("zp_ltm_cost","2500");
g_LFMONEY = register_cvar("zp_ltm_fragmoney","0");
g_LHEALTH = register_cvar("zp_ltm_health","500");
g_LTMAX = register_cvar("zp_ltm_teammax","22");
g_LRADIUS = register_cvar("zp_ltm_radius","800");
g_LRDMG = register_cvar("zp_ltm_rdmg","1200"); //radius damage
g_LFF = register_cvar("zp_ltm_ff","0");
g_LCBT = register_cvar("zp_ltm_cbt","ALL");
g_LBUYMODE = register_cvar("zp_ltm_buymode","1");
g_LDELAY = register_cvar("zp_delay","");
//g_LTHINK = register_cvar("amx_ltm_think","0.01")
g_LVISIBLE = register_cvar("amx_ltm_line","1");
g_LGLOW = register_cvar("amx_ltm_glow","0");
g_LCBRIGHT = register_cvar("amx_ltm_bright","255"); //laser line brightness.
g_LCLMODE = register_cvar("amx_ltm_color","0"); //0 is team color,1 is green
g_LDMGMODE = register_cvar("amx_ltm_ldmgmode","0"); //0 - frame dmg, 1 - once dmg, 2 - 1 second dmg
g_LDSEC = register_cvar("amx_ltm_ldmgseconds","1"); //mode 2 only, damage / seconds. default 1 (sec)
g_LSTAMMO = register_cvar("amx_ltm_startammo","1");
g_LCMDMODE = register_cvar("amx_ltm_cmdmode","1"); //0 is +USE key, 1 is bind, 2 is each.
#endif
g_LVISIBLE = register_cvar("zp_ltm_line","1");
g_LGLOW = register_cvar("zp_ltm_glow","0");
g_LCBRIGHT = register_cvar("zp_ltm_bright","100"); //laser line brightness.
g_LCLMODE = register_cvar("zp_ltm_color","0"); //0 is team color,1 is green
g_LDMGMODE = register_cvar("zp_ltm_ldmgmode","0"); //0 - frame dmg, 1 - once dmg, 2 - 1 second dmg
g_LDSEC = register_cvar("zp_ltm_ldmgseconds","1"); //mode 2 only, damage / seconds. default 1 (sec)
g_LSTAMMO = register_cvar("zp_ltm_startammo","1");
g_LCMDMODE = register_cvar("zp_ltm_cmdmode","1"); //0 is +USE key, 1 is bind, 2 is each.
//g_ACT = register_cvar("zp_ltm_act","0");
register_event("DeathMsg", "DeathEvent", "a");
register_event("CurWeapon", "standing", "be", "1=1");
register_event("ResetHUD", "delaycount", "a");
//@@ -224,8 +199,9 @@
g_msgDeathMsg = get_user_msgid("DeathMsg");
g_msgScoreInfo = get_user_msgid("ScoreInfo");
g_msgDamage = get_user_msgid("Damage");
g_msgStatusText = get_user_msgid("StatusText");
//g_msgStatusText = get_user_msgid("StatusText");
g_msgMoney = get_user_msgid("Money");
//proban = get_cvar_num("zp_delay") + 5;
// -- Forward.
register_forward(FM_Think, "ltm_Think" );
register_forward(FM_PlayerPostThink, "ltm_PostThink" );
//@@ -263,11 +239,9 @@
g_MaxPL = get_maxplayers();
new file[64]; get_localinfo("amxx_configsdir",file,63);
#if defined BIOHAZARD_SUPPORT
format(file, 63, "%s/bhltm_cvars.cfg", file);
#else
format(file, 63, "%s/ltm_cvars.cfg", file);
#endif
if(file_exists(file)) server_cmd("exec %s", file), server_exec();
}
//@@ -280,16 +254,28 @@
bool:CheckTime(id)
{
g_nowtime = floatround(get_gametime()) - g_dcount[id];
if(g_nowtime >= get_pcvar_num(g_LDELAY))
if(g_nowtime >= get_pcvar_num(g_LDELAY)+ 5)
return true;
return false;
}
public CreateLaserMine_Progress_b(id)
{
if(get_pcvar_num(g_LCMDMODE) != 0)
if (!CheckTime(id))
{
client_print(id,print_chat, "%s %s",CHATTAG,STR_DELAY);
return false;
}
if (!zp_get_user_zombie(id))
{
if(get_pcvar_num(g_LCMDMODE) != 0)
CreateLaserMine_Progress(id);
return PLUGIN_HANDLED;
return PLUGIN_HANDLED;
}
client_print(id, print_chat, "[ZP] The zombies can not use this command");
return false;
}
public CreateLaserMine_Progress(id)
//@@ -370,7 +356,7 @@
g_havemine[id] ++;
g_deployed[id] --;
emit_sound(id, CHAN_ITEM, ENT_SOUND5, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
ShowAmmo(id)
//ShowAmmo(id)
return;
}
//@@ -447,7 +433,7 @@
// -- Save results to be used later.
set_pev(i_Ent, LASERMINE_OWNER, id );
set_pev(i_Ent,LASERMINE_BEAMENDPOINT,vTracedBeamEnd);
set_pev(i_Ent,LASERMINE_TEAM,int:cs_get_user_team(id));
set_pev(i_Ent,LASERMINE_TEAM,2);
new Float:fCurrTime = get_gametime();
set_pev(i_Ent,LASERMINE_POWERUP, fCurrTime + 2.5 );
//@@ -459,7 +445,7 @@
g_deployed[id]++;
g_havemine[id]--;
DeleteTask(id);
ShowAmmo(id);
//ShowAmmo(id);
return 1;
}
//@@ -520,13 +506,6 @@
return false;
}
if(!pev_user_alive(id)) return false;
#if defined BIOHAZARD_SUPPORT
if(is_user_zombie(id))
{
client_print(id, print_chat, "%s %s",CHATTAG,STR_CBT);
return false;
}
#endif
if (!CheckCanTeam(id))
{
client_print(id, print_chat, "%s %s",CHATTAG,STR_CBT);
//@@ -558,11 +537,11 @@
return false;
}
}
if(!CheckTime(id))
/*if(!CheckTime(id))
{
- client_print(id,print_chat, "%s %s %d %s",CHATTAG,STR_DELAY,get_pcvar_num(g_LDELAY)-g_nowtime,STR_SECONDS);
+ client_print(id,print_chat, "%s %s %d %s",CHATTAG,STR_DELAY);
return false;
- }
+ }*/
return true;
}
//@@ -594,7 +573,7 @@
client_print(id, print_chat, "%s %s",CHATTAG,STR_MAXDEPLOY);
return false;
}
//client_print(id,print_chat,"[Lasermine] your team deployed %d",TeamDeployedCount(id))
if(TeamDeployedCount(id) >= get_pcvar_num(g_LTMAX))
{
//@@ -602,6 +581,7 @@
return false;
}
new Float:vTraceDirection[3], Float:vTraceEnd[3],Float:vOrigin[3];
pev( id, pev_origin, vOrigin );
//@@ -642,8 +622,10 @@
if ( !equal( EntityName, ENT_CLASS_NAME ) )
return FMRES_IGNORED;
static Float:fCurrTime;
fCurrTime = get_gametime();
switch( pev( i_Ent, LASERMINE_STEP ) )
{
//@@ -673,6 +655,7 @@
set_rendering(i_Ent,kRenderFxGlowShell,0,255,0,kRenderNormal,5);
}
}
set_pev( i_Ent, pev_nextthink, fCurrTime + 0.1 );
}
case BEAMBREAK_THINK :
//@@ -875,6 +858,7 @@
CreateDamage(iCurrent,Float:DmgMAX,Float:Radius)
{
// Get given parameters
new Float:vecSrc[3];
pev(iCurrent, pev_origin, vecSrc);
//@@ -988,7 +972,7 @@
if(get_pcvar_num(g_LFF))
{
cs_set_user_money(AtkID,cs_get_user_money(AtkID) - get_pcvar_num(g_LFMONEY))
set_score(AtkID,ent,-1,iHitHP)
set_score(AtkID,ent,1,iHitHP)
}
}
}else
// -1026,7 +1010,6 @@
new Float:vOrigin[3];
pev(iCurrent,pev_origin,vOrigin);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(99); //99 = KillBeam
write_short(iCurrent);
//@@ -1042,6 +1025,7 @@
write_byte(15);
write_byte(0);
message_end();
//client_print(0,print_chat,"asdasdasd")
}
CreateLaserDamage(iCurrent,isHit)
//@@ -1221,11 +1205,11 @@
g_havemine[id]++;
client_print(id, print_chat, "%s %s",CHATTAG,STR_BOUGHT)
emit_sound(id, CHAN_ITEM, ENT_SOUND5, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
ShowAmmo(id)
//ShowAmmo(id)
return PLUGIN_HANDLED
}
-ShowAmmo(id)
/*ShowAmmo(id)
{
new ammo[51]
formatex(ammo, 50, "%s %i/%i",STR_STATE, g_havemine[id],get_pcvar_num(g_LAMMO))
@@ -1234,7 +1218,11 @@
write_byte(0)
write_string(ammo)
message_end()
}
set_hudmessage(0, 0, 255, 0.0, 0.27, 0, 6.0, 12.0)
show_hudmessage(id, "%s %i/%i",STR_STATE, g_havemine[id],get_pcvar_num(g_LAMMO))
}
*/
public showInfo(id)
{
//@@ -1337,6 +1325,7 @@
RemoveAllTripmines(id);
delaycount(id);
SetStartAmmo(id);
g_havemine[id] = 0
return PLUGIN_CONTINUE
}
//@@ -1388,13 +1377,6 @@
DeleteTask(id);
}
#if defined BIOHAZARD_SUPPORT
public event_infect2(id)
{
DeleteTask(id);
return PLUGIN_CONTINUE
}
#endif
DeleteTask(id)
{
//@@ -1484,3 +1466,53 @@
return PLUGIN_CONTINUE;
}
public zp_extra_item_selected(player, itemid)
{
if (itemid == g_itemid_lminas)
{
cmd_bind(player)
BuyLasermine(player)
}
}
public cmd_bind(id)
{
client_cmd(id,"bind p +setlaser");
return PLUGIN_HANDLED
}
public buy_lmines(id)
{
if ( get_pcvar_num(g_LENABLE) == 0 )
{
client_print(id, print_chat, "[ZP] LaserMines plugin is disabled.")
return PLUGIN_HANDLED
}
if ( !zp_get_user_zombie(id))
{
new money = zp_get_user_ammo_packs(id)
new cost = g_item_lmines
if ( money < cost )
{
client_print(id, print_chat, "[ZP] You don't have enough ammo packs to buy a LaserMines. ($%i needed).", g_item_lmines)
return PLUGIN_CONTINUE
}
zp_set_user_ammo_packs(id, money - g_item_lmines)
cmd_bind(id)
BuyLasermine(id)
return PLUGIN_CONTINUE
}
client_print(id,print_chat,"[ZP] You can't buy LaserMines because You are Zombie!")
return PLUGIN_HANDLED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
+*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
+*/