drug grenade
#1
Código PHP:
if (model[9] == 'h' && model[10] == 'e'
    {
        if (
g_DrugBomb[owner] > && !zp_get_user_zombie(owner)) 
        {
            
g_DrugBomb[owner]--;
            
            
set_rendering(entitykRenderFxGlowShellg_GlowColor[0], g_GlowColor[1], g_GlowColor[2], kRenderNormal16);
            
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
            
write_byte(TE_BEAMFOLLOW);
            
write_short(entity);
            
write_short(g_TrailSpr);
            
write_byte(30);
            
write_byte(10);
            
write_byte(g_GlowColor[0]);
            
write_byte(g_GlowColor[1]);
            
write_byte(g_GlowColor[2]);
            
write_byte(200);
            
message_end();
            
            
set_pev(entityPEV_NADE_TYPENADE_TYPE_DRUG);
            
engfunc(EngFunc_SetModelentityW_Model);
            
//entity_set_model(entity, W_Model);
            
            
return FMRES_SUPERCEDE;
        }
    } 

Código PHP:
L 06/07/2022 01:28:39: [AMXXRun time error 5memory access 
L 06
/07/2022 01:28:39: [AMXX]    [0px_extra_human_drug.sma::fw_SetModel (line 289
Responder
#2
asi lo tengo yo y funciona perfecto, compara y edita y si aun no te sirve es otra funcion que te genera el problema

Código PHP:
if (bbc_granadas[pev(entitypev_owner)][DROGA])
{
    
fm_set_rendering(entitykRenderFxGlowShell2500250kRenderNormal16);
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMFOLLOW
    
write_short(entity)
    
write_short(g_trail
    
write_byte(10
    
write_byte(10
    
write_byte(250
    
write_byte(0)  
    
write_byte(250
    
write_byte(200
    
message_end()
            
    
set_pev(entityPEV_NADE_TYPENADE_TYPE_DROGA)
    
entity_set_model(entity"models/bb_chile/w_droga.mdl")
        return 
FMRES_SUPERCEDE;


puedes mirar tambien los plugin de bomba droga que hay por el foro, si aun asi te falla tendras que dejar todo el code para ver bien y poder ayudarte
Responder
#3
Código PHP:
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <private/px_zombie_escape>

new const NOMBRE[] = "[PX] Extra: DRUG BOMB";
new const 
VERSION[] = "1.0";
new const 
CREADOR[] = "BhK-";

new const 
Prefix[] = "^4[PX]";

new const 
Name_Item[] = "Bomba de Droga";

const 
PEV_NADE_TYPE pev_flTimeStepSound;
const 
NADE_TYPE_DRUG 5678;

const 
Float:NADE_EXPLOSION_RADIUS 240.0;

const 
UNIT_SECOND = (1<<12);

const 
OFFSET_PDATA 2;
const 
OFFSET_LINUX_WEAPONS 4;
const 
OFFSET_WEAPON_OWNER 41;

new 
g_TrailSprg_exploSprg_exploSpr2;
new 
g_ItemID;
new 
g_msgScreenFadeg_msgScreenShakeg_msgAmmoPickup;
new 
g_EndRound;

new 
g_IsAlive[33];
new 
g_DrugBomb[33];
new 
g_HasDrug[33];
new 
g_GlowColorId[33][3];
new 
g_FX_RenderId[33];
new 
g_RenderModeId[33];
new 
g_AmountId[33];

const 
MAX_TEXT 20;
new 
g_Message_Print[MAX_TEXT];
new 
g_GlowColor[3];

new 
g_pcvar_DrugLastZombie;
new 
g_pcvar_DrugNemesis;
new 
g_pcvar_DrugTime;
new 
g_pcvar_DrugDamage;
new 
g_pcvar_Drug_Attack;
new 
g_pcvar_DrugLimit;
new 
g_pcvar_Print;
new 
g_pcvar_Message;
new 
g_pcvar_GlowColor;
new 
g_pcvar_ScreenFade;
new 
g_pcvar_ScreenShake;

new 
g_DrugLastZombieg_DrugNemesisg_DrugTimeg_DrugDamageg_Drug_Attackg_DrugLimitg_Print,
g_ScreenFadeg_ScreenShake;

/*****************************************************/
/* CUSTOMIZATION */
/*****************************************************/

new const V_Model[] = "models/px_escape/weapons/v_drug_grenade.mdl";
new const 
P_Model[] = "models/px_escape/weapons/p_drug_grenade.mdl";
new const 
W_Model[] = "models/px_escape/weapons/w_drug_grenade.mdl";
new const 
Sprite_Grenade_Trail[] = "sprites/laserbeam.spr";
new const 
Sprite_Grenade_Explode[] = "sprites/shockwave.spr";
new const 
Sprite_Grenade_Particles[] = "sprites/tflare.spr";

new const 
Grenade_DrugBomb[][] = { "px_escape/grenade_infect.wav" };
new const 
Zombie_Pain[][] = { "px_escape/gameplay/zombi_hurt_01.wav""px_escape/gameplay/zombi_hurt_02.wav" };

new const 
Sound_Buyammo[] = "items/9mmclip1.wav";

const 
Item_Cost 30;

#define TASK_DRUG 789123
#define ID_DRUG (taskID - TASK_DRUG)

/*****************************************************/
/* END CUSTOMIZATION */
/*****************************************************/
public plugin_precache() {
 new 
i;
 
 
g_TrailSpr precache_model(Sprite_Grenade_Trail);
 
g_exploSpr precache_model(Sprite_Grenade_Explode);
 
g_exploSpr2 precache_model(Sprite_Grenade_Particles);
 
 
precache_model(V_Model);
 
precache_model(W_Model);
 
precache_model(P_Model);
 
 for (
0sizeof(Grenade_DrugBomb); ++i) {
 
precache_sound(Grenade_DrugBomb[i]);
 }
 
 for (
0sizeof(Zombie_Pain); ++i) {
 
precache_sound(Zombie_Pain[i]);
 }
 
 
precache_sound(Sound_Buyammo);
}

public 
plugin_init() {
 
register_plugin(NOMBREVERSIONCREADOR);
 
 
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1);
 
RegisterHam(Ham_Killed"player""fw_PlayerKilled");
 
RegisterHam(Ham_Think"grenade""fw_ThinkGrenade"); 
 
RegisterHam(Ham_Item_Deploy"weapon_hegrenade""fw_Item_Deploy_Post"1);
 
 
register_forward(FM_SetModel"fw_SetModel");
 
register_forward(FM_CmdStart"fw_CmdStart");
 
 
register_event("HLTV""event_round_start""a""1=0""2=0");
 
register_logevent("logevent_round_end"2"1=Round_End");
 
 
g_ItemID px_register_extra_item(Name_ItemItem_CostZP_TEAM_HUMAN);
 
 
g_pcvar_DrugLastZombie  register_cvar("zp_drug_lastzm""1");                // Activa/desactiva la posibilidad de drogar al ultimo zombie vivo [0 = No || 1 = Si][Defecto 0]
 
g_pcvar_DrugNemesis    register_cvar("zp_drug_nemesis""1");                // Activa/desactiva la posibilidad de drogar a los Nemesis [0 = No || 1 = Si][Defecto 0]
 
g_pcvar_DrugTime        register_cvar("zp_drug_time""8");                  // Cantidad de veces que drogara a la victima [Defecto 8]
 
g_pcvar_DrugDamage      register_cvar("zp_drug_damage""0");                // Define un porcentaje de danio que le sacara del total de vida que posea la victima [Defecto 7]
 
g_pcvar_Drug_Attack    register_cvar("zp_drug_attack""0");                // Define la posibilidad de atacar mientras estas drogado [0 = Sí || 1 = No ataca || 2 = Le saca el Knife][Defecto 2]
 
g_pcvar_DrugLimit      register_cvar("zp_drug_limit""1");                  // Define un limite de compra de bomba, hasta que se agoten [Defecto 3]
 
g_pcvar_Print          register_cvar("zp_print_dhud""1");                  // Elige el estilo del mensaje que aparecera en pantalla [0 = DHUD || 1 = Print Center][Defecto 1]
 
g_pcvar_Message        register_cvar("zp_message_print""Você está drogado")// Mensaje que aparecera en pantalla [Defecto "ESTAS DROGADO"]
 
g_pcvar_GlowColor      register_cvar("zp_glow_color""0 250 180");          // Elige el color del trail y glow de la bomba. Ejemplo amx_glow_color "255 255 255" (Color blanco)
 
g_pcvar_ScreenFade      register_cvar("zp_screenfade""1");                  // Activa/desactiva el efecto ScreenFade [0 = No || 1 = Si][Defecto 1]
 
g_pcvar_ScreenShake    register_cvar("zp_screenshake""1");                // Activa/desactiva el efecto ScreenShake [0 = No || 1 = Si][Defecto 1]
 
 
g_msgAmmoPickup get_user_msgid("AmmoPickup");
 
g_msgScreenFade get_user_msgid("ScreenFade");
 
g_msgScreenShake get_user_msgid("ScreenShake");
 
 
loadCVARs();
}

public 
event_round_start() {
 
g_EndRound false;
 
 
loadCVARs();
}
public 
logevent_round_end() {
 
g_EndRound true;
}

loadCVARs() {
 
// Color de trail y glow de la bomba (CVAR "amx_print_dhud")
 
new szColors[20];
 new 
szRed[4];
 new 
szGreen[4];
 new 
szBlue[4];
 
 
get_pcvar_string(g_pcvar_GlowColorszColorscharsmax(szColors));
 
 
parse(szColorsszRedcharsmax(szRed), szGreencharsmax(szGreen), szBluecharsmax(szBlue));
 
 
g_GlowColor[0] = clamp(str_to_num(szRed), 0255);
 
g_GlowColor[1] = clamp(str_to_num(szGreen), 0255);
 
g_GlowColor[2] = clamp(str_to_num(szBlue), 0255);
 
 
// Mensaje que aparecera en pantalla (CVAR "amx_message_print")
 
new szMessage[MAX_TEXT];
 
 
get_pcvar_string(g_pcvar_MessageszMessagecharsmax(szMessage));
 
 
g_Message_Print szMessage// Revisar MAX_TEXT
 
 // Guardo 9 CVARs
 
g_DrugLastZombie get_pcvar_num(g_pcvar_DrugLastZombie);
 
g_DrugNemesis    get_pcvar_num(g_pcvar_DrugNemesis);
 
g_DrugTime      get_pcvar_num(g_pcvar_DrugTime);
 
g_DrugDamage    get_pcvar_num(g_pcvar_DrugDamage);
 
g_Drug_Attack    get_pcvar_num(g_pcvar_Drug_Attack);
 
g_DrugLimit      get_pcvar_num(g_pcvar_DrugLimit);
 
g_Print          get_pcvar_num(g_pcvar_Print);
 
g_ScreenFade    get_pcvar_num(g_pcvar_ScreenFade);
 
g_ScreenShake    get_pcvar_num(g_pcvar_ScreenShake);
}

public 
client_disconnected(id) {
 
remove_task(id+TASK_DRUG);
}

public 
zp_extra_item_selected(PlayerItemID) {
 if (
ItemID == g_ItemID) {
 if (
g_DrugBomb[Player] >= g_DrugLimit) {
 
client_print_color(Playerprint_team_default"%s ^1Você só pode carregar %d ^4%s ^1equipada%s"Prefixg_DrugLimitName_Itemg_DrugLimit == "" "s");
 return 
ZP_PLUGIN_HANDLED;
 }
 
 new 
weaponbp;
 
weaponbp cs_get_user_bpammo(PlayerCSW_HEGRENADE);
 
 
g_DrugBomb[Player]++;
 
 if (!
user_has_weapon(PlayerCSW_HEGRENADE)) {
 
give_item(Player"weapon_hegrenade");
 } else {
 
cs_set_user_bpammo(PlayerCSW_HEGRENADEweaponbp 1);
 
 
message_begin(MSG_ONE_UNRELIABLEg_msgAmmoPickup_Player);
 
write_byte(1);
 
write_byte(1);
 
message_end();
 
 
emit_sound(PlayerCHAN_ITEMSound_Buyammo1.0ATTN_NORM0PITCH_NORM);
 }
 
 
//client_print_color(Player, print_team_default, "%s ^1Você comprou uma ^4%s", Prefix, Name_Item);
 
}
 
 return 
PLUGIN_HANDLED;
}

public 
fw_CmdStart(idhandle) {
 if (!
g_IsAlive[id]) {
 return;
 }
 
 static 
iButton;
 
iButton get_uc(handleUC_Buttons);
 
 if (
g_HasDrug[id] > && g_Drug_Attack == 1) {
 if (
iButton IN_ATTACK || iButton IN_ATTACK2) {
 
set_uc(handleUC_Buttons, (iButton & ~IN_ATTACK & ~IN_ATTACK2));
 }
 }
}

public 
fw_PlayerSpawn_Post(id) {
 if (!
is_user_alive(id)) {
 return;
 }
 
 
g_IsAlive[id] = true;
 
g_HasDrug[id] = 0;
 
g_GlowColorId[id][0] = 0;
 
remove_task(id+TASK_DRUG);
}

public 
fw_PlayerKilled(victimattackershouldgib) {
 
g_IsAlive[victim] = false;
 
g_DrugBomb[victim] = false;
 
g_HasDrug[victim] = 0;
 
g_GlowColorId[victim][0] = 0;
 
 if (
task_exists(victim+TASK_DRUG)) {
 
remove_task(victim+TASK_DRUG);
 
set_rendering(victim);
 }
}

public 
fw_ThinkGrenade(entity) {
 if (!
pev_valid(entity)) {
 return 
HAM_IGNORED;
 }
 
 static 
Float:dmgtimeFloat:current_time;
 
pev(entitypev_dmgtimedmgtime);
 
current_time get_gametime();
 
 if (
dmgtime current_time) {
 return 
HAM_IGNORED;
 }
 
 if (
pev(entityPEV_NADE_TYPE) == NADE_TYPE_DRUG) {
 
Drug_Explode(entity);
 return 
HAM_SUPERCEDE;
 }
 
 return 
HAM_IGNORED;
}

public 
fw_SetModel(entity, const model[]) {
 static 
Float:dmgtime;
 
pev(entitypev_dmgtimedmgtime);
 
 if (
dmgtime == 0.0) {
 return 
FMRES_IGNORED;
 }
 
 static 
owner;
 
owner pev(entitypev_owner);
 
 
//if (equal(model, "models/he_", 10))
 /*if (model[9] == 'h' && model[10] == 'e') 
 {
 if (g_DrugBomb[owner] > 0 && !zp_get_user_zombie(owner)) 
 {
 g_DrugBomb[owner]--;
 
 set_rendering(entity, kRenderFxGlowShell, g_GlowColor[0], g_GlowColor[1], g_GlowColor[2], kRenderNormal, 16);
 
 message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
 write_byte(TE_BEAMFOLLOW);
 write_short(entity);
 write_short(g_TrailSpr);
 write_byte(30);
 write_byte(10);
 write_byte(g_GlowColor[0]);
 write_byte(g_GlowColor[1]);
 write_byte(g_GlowColor[2]);
 write_byte(200);
 message_end();
 
 set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_DRUG);
 engfunc(EngFunc_SetModel, entity, W_Model);
 //entity_set_model(entity, W_Model);
 
 return FMRES_SUPERCEDE;
 }
 }*/

 
if (bbc_granadas[pev(entitypev_owner)][DROGA])
 {
    fm_set_rendering(entitykRenderFxGlowShell2500250kRenderNormal16);
    
    message_begin
(MSG_BROADCASTSVC_TEMPENTITY)
    write_byte(TE_BEAMFOLLOW
    write_short(entity)
  write_short(g_trail
    write_byte(10
    write_byte(10
    write_byte(250
    write_byte(0)  
    write_byte
(250
    write_byte(200
    message_end()
            
    set_pev
(entityPEV_NADE_TYPENADE_TYPE_DROGA)
    entity_set_model(entity"models/bb_chile/w_droga.mdl")
        return FMRES_SUPERCEDE;

 
 return 
FMRES_IGNORED;
}

public 
fw_Item_Deploy_Post(__weaponEnt) {
 if(!
pev_valid(__weaponEnt)) {
 return;
 }
 
 static 
id;
 
id fm_get_weapon_ent_owner(__weaponEnt);
 
 if(!
pev_valid(id) || g_DrugBomb[id] < || zp_get_user_zombie(id)) {
 return;
 }
 
 
entity_set_string(idEV_SZ_viewmodelV_Model);
 
entity_set_string(idEV_SZ_weaponmodelP_Model);
}

/*****************************************************/
/* OTRAS FUNCIONES */
/*****************************************************/
public Drug_Explode(entity) {
 static 
Float:originF[3];
 
pev(entitypev_originoriginF);

 
create_blast(originF);
 
 
emit_sound(entityCHAN_WEAPONGrenade_DrugBomb[random_num(0charsmax(Grenade_DrugBomb))], 1.0ATTN_NORM0PITCH_NORM);
 
 static 
victim;
 
victim = -1;
 
 while ((
victim find_ent_in_sphere(victimoriginFNADE_EXPLOSION_RADIUS)) != 0) {
 
Check_Victim(victim);
 }
 
 
remove_entity(entity);
}

public 
Check_Victim(victim) {
 if (!
is_user_alive(victim) || !zp_get_user_zombie(victim) || g_EndRound) {
 return;
 }
 
 if ((
zp_get_user_last_zombie(victim) && g_DrugLastZombie 1)
 || (
zp_get_user_nemesis(victim) && g_DrugNemesis 1)) {
 return;
 }
 
 
g_HasDrug[victim] += g_DrugTime;
 
 if (
g_Drug_Attack == 2) {
 
strip_user_weapons(victim);
 }
 
 if (!
task_exists(victim+TASK_DRUG)) {
 
set_task(0.7"Effect_Drug"victim+TASK_DRUG__"b");
 
 
// Fix Bug para no ocacionar cruces entre renderizados.
 
if (g_GlowColorId[victim][0] <= 0) {
 
get_rendering(victimg_FX_RenderId[victim], g_GlowColorId[victim][0], g_GlowColorId[victim][1], g_GlowColorId[victim][2], g_RenderModeId[victim], g_AmountId[victim]);
 }
 
 
set_rendering(victimkRenderFxGlowShellg_GlowColor[0], g_GlowColor[1], g_GlowColor[2], kRenderNormal25);
 }
}

public 
Effect_Drug(taskID)
{
 if (
g_EndRound || g_HasDrug[ID_DRUG] < || !is_user_alive(ID_DRUG) || !zp_get_user_zombie(ID_DRUG)
 || (
zp_get_user_last_zombie(ID_DRUG) && g_DrugLastZombie 1)
 || (
zp_get_user_nemesis(ID_DRUG) && g_DrugNemesis 1)) {
 
remove_task(taskID);
 
g_HasDrug[ID_DRUG] = 0;
 
set_rendering(ID_DRUGg_FX_RenderId[ID_DRUG], g_GlowColorId[ID_DRUG][0], g_GlowColorId[ID_DRUG][1], g_GlowColorId[ID_DRUG][2], g_RenderModeId[ID_DRUG], g_AmountId[ID_DRUG]);
 
g_GlowColorId[ID_DRUG][0] = 0;
 
 if (!
user_has_weapon(ID_DRUGCSW_KNIFE)) {
 
give_item(ID_DRUG"weapon_knife");
 }
 
 return;
 }
 
 if (
g_Print 0) { 
 
set_dhudmessage(random_num(50200), random_num(50200), random_num(50200), -1.00.4000.00.20.20.2);
 
show_dhudmessage(ID_DRUG"%s!"g_Message_Print);
 } else {
 
client_print(ID_DRUGprint_center"%s!"g_Message_Print);
 }
 
 if (
g_DrugDamage) {
 static 
healthdamage;
 
health get_user_health(ID_DRUG);
 
damage g_DrugDamage;
 
 if (
health && (health damage 100)) {
 
set_user_health(ID_DRUGhealth - (health damage 100));
 
emit_sound(ID_DRUGCHAN_WEAPONZombie_Pain[random_num(0charsmax(Zombie_Pain))], 1.0ATTN_NORM0PITCH_NORM);
 }
 }
 
 if (
g_ScreenFade 0) {
 
message_begin(MSG_ONE_UNRELIABLEg_msgScreenFade_ID_DRUG);
 
write_short(UNIT_SECOND);
 
write_short(0);
 
write_short(0x0000);
 
write_byte(random_num(50200));
 
write_byte(random_num(50200));
 
write_byte(random_num(50200));
 
write_byte(230);
 
message_end();
 }
 
 if (
g_ScreenShake 0) {
 
message_begin(MSG_ONE_UNRELIABLEg_msgScreenShake_ID_DRUG);
 
write_short(UNIT_SECOND random_num(36));
 
write_short(UNIT_SECOND random_num(25));
 
write_short(UNIT_SECOND random_num(1015));
 
message_end();
 }
 
 static 
Float:vecDrug[3]; 
 
vecDrug[0] = random_float(-10.0150.0);
 
vecDrug[1] = random_float(20.0200.0);
 
vecDrug[2] = random_float(30.0250.0);
 
 
entity_set_vector(ID_DRUGEV_VEC_punchanglevecDrug);
 
 
g_HasDrug[ID_DRUG]--;
}

create_blast(const Float:originF[3]) {
 
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0);
 
write_byte(TE_BEAMCYLINDER);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]+385.0);
 
write_short(g_exploSpr);
 
write_byte(0);
 
write_byte(0);
 
write_byte(4);
 
write_byte(60);
 
write_byte(0);
 
write_byte(g_GlowColor[0]);
 
write_byte(g_GlowColor[1]);
 
write_byte(g_GlowColor[2]);
 
write_byte(200);
 
write_byte(0);
 
message_end();
 
 
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0);
 
write_byte(TE_BEAMCYLINDER);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]+470.0);
 
write_short(g_exploSpr);
 
write_byte(0);
 
write_byte(0);
 
write_byte(4);
 
write_byte(60);
 
write_byte(0);
 
write_byte(g_GlowColor[0]);
 
write_byte(g_GlowColor[1]);
 
write_byte(g_GlowColor[2]);
 
write_byte(200);
 
write_byte(0);
 
message_end();
    
 engfunc
(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0);
 
write_byte(TE_BEAMCYLINDER);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]+555.0);
 
write_short(g_exploSpr);
 
write_byte(0);
 
write_byte(0);
 
write_byte(4);
 
write_byte(60);
 
write_byte(0);
 
write_byte(g_GlowColor[0]);
 
write_byte(g_GlowColor[1]);
 
write_byte(g_GlowColor[2]);
 
write_byte(200);
 
write_byte(0);
 
message_end();
 
 
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0);
 
write_byte(TE_SPRITETRAIL);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
write_short(g_exploSpr2);
 
write_byte(80);
 
write_byte(8);
 
write_byte(2);
 
write_byte(random_num(5090));
 
write_byte(random_num(60100));
 
message_end();
}

/*****************************************************/
/* STOCKS */
/*****************************************************/
stock fm_get_weapon_ent_owner(ent) {
 if (
pev_valid(ent) != OFFSET_PDATA) {
 return -
1;
 }
 
 return 
get_pdata_cbase(entOFFSET_WEAPON_OWNEROFFSET_LINUX_WEAPONS);
}
stock get_rendering(Index, &FX, &R, &G, &B, &Render, &Amount) {
 
FX entity_get_int(IndexEV_INT_renderfx);
 
 new 
Float:RenderColor[3];
 
entity_get_vector(IndexEV_VEC_rendercolorRenderColor); 
 
floatround(RenderColor[0]);
 
floatround(RenderColor[1]);
 
floatround(RenderColor[2]);
 
 
Render entity_get_int(IndexEV_INT_rendermode);
 
 
Amount floatround(entity_get_float(IndexEV_FL_renderamt));
 
 return 
1;


cambiar privado/px_zombie_escape.inc a zombieplague.inc

px_register_extra_item a zp_register_extra_item
Responder
#4
new const CREADOR[] = "BhK-";

ni tu te la crees
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#5
(12/06/2022, 03:00 PM)ksm200 escribió:
Código PHP:
#include <private/px_zombie_escape>

new const NOMBRE[] = "[PX] Extra: DRUG BOMB";
new const 
VERSION[] = "1.0";
new const 
CREADOR[] = "BhK-"

rathina é fhilo da p...
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Responder
#6
como harian para que al comprarse furia el efecto desaparezca? existe una native en el zp para determinar cuando existe la furia? es el nodamage?
Aporte(?
Discord: leo$#9073
Responder
#7
(12/06/2022, 03:00 PM)ksm200 escribió:
Código PHP:
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <private/px_zombie_escape>

new const NOMBRE[] = "[PX] Extra: DRUG BOMB";
new const 
VERSION[] = "1.0";
new const 
CREADOR[] = "BhK-";

new const 
Prefix[] = "^4[PX]";

new const 
Name_Item[] = "Bomba de Droga";

const 
PEV_NADE_TYPE pev_flTimeStepSound;
const 
NADE_TYPE_DRUG 5678;

const 
Float:NADE_EXPLOSION_RADIUS 240.0;

const 
UNIT_SECOND = (1<<12);

const 
OFFSET_PDATA 2;
const 
OFFSET_LINUX_WEAPONS 4;
const 
OFFSET_WEAPON_OWNER 41;

new 
g_TrailSprg_exploSprg_exploSpr2;
new 
g_ItemID;
new 
g_msgScreenFadeg_msgScreenShakeg_msgAmmoPickup;
new 
g_EndRound;

new 
g_IsAlive[33];
new 
g_DrugBomb[33];
new 
g_HasDrug[33];
new 
g_GlowColorId[33][3];
new 
g_FX_RenderId[33];
new 
g_RenderModeId[33];
new 
g_AmountId[33];

const 
MAX_TEXT 20;
new 
g_Message_Print[MAX_TEXT];
new 
g_GlowColor[3];

new 
g_pcvar_DrugLastZombie;
new 
g_pcvar_DrugNemesis;
new 
g_pcvar_DrugTime;
new 
g_pcvar_DrugDamage;
new 
g_pcvar_Drug_Attack;
new 
g_pcvar_DrugLimit;
new 
g_pcvar_Print;
new 
g_pcvar_Message;
new 
g_pcvar_GlowColor;
new 
g_pcvar_ScreenFade;
new 
g_pcvar_ScreenShake;

new 
g_DrugLastZombieg_DrugNemesisg_DrugTimeg_DrugDamageg_Drug_Attackg_DrugLimitg_Print,
g_ScreenFadeg_ScreenShake;

/*****************************************************/
/* CUSTOMIZATION */
/*****************************************************/

new const V_Model[] = "models/px_escape/weapons/v_drug_grenade.mdl";
new const 
P_Model[] = "models/px_escape/weapons/p_drug_grenade.mdl";
new const 
W_Model[] = "models/px_escape/weapons/w_drug_grenade.mdl";
new const 
Sprite_Grenade_Trail[] = "sprites/laserbeam.spr";
new const 
Sprite_Grenade_Explode[] = "sprites/shockwave.spr";
new const 
Sprite_Grenade_Particles[] = "sprites/tflare.spr";

new const 
Grenade_DrugBomb[][] = { "px_escape/grenade_infect.wav" };
new const 
Zombie_Pain[][] = { "px_escape/gameplay/zombi_hurt_01.wav""px_escape/gameplay/zombi_hurt_02.wav" };

new const 
Sound_Buyammo[] = "items/9mmclip1.wav";

const 
Item_Cost 30;

#define TASK_DRUG 789123
#define ID_DRUG (taskID - TASK_DRUG)

/*****************************************************/
/* END CUSTOMIZATION */
/*****************************************************/
public plugin_precache() {
 new 
i;
 
 
g_TrailSpr precache_model(Sprite_Grenade_Trail);
 
g_exploSpr precache_model(Sprite_Grenade_Explode);
 
g_exploSpr2 precache_model(Sprite_Grenade_Particles);
 
 
precache_model(V_Model);
 
precache_model(W_Model);
 
precache_model(P_Model);
 
 for (
0sizeof(Grenade_DrugBomb); ++i) {
 
precache_sound(Grenade_DrugBomb[i]);
 }
 
 for (
0sizeof(Zombie_Pain); ++i) {
 
precache_sound(Zombie_Pain[i]);
 }
 
 
precache_sound(Sound_Buyammo);
}

public 
plugin_init() {
 
register_plugin(NOMBREVERSIONCREADOR);
 
 
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1);
 
RegisterHam(Ham_Killed"player""fw_PlayerKilled");
 
RegisterHam(Ham_Think"grenade""fw_ThinkGrenade"); 
 
RegisterHam(Ham_Item_Deploy"weapon_hegrenade""fw_Item_Deploy_Post"1);
 
 
register_forward(FM_SetModel"fw_SetModel");
 
register_forward(FM_CmdStart"fw_CmdStart");
 
 
register_event("HLTV""event_round_start""a""1=0""2=0");
 
register_logevent("logevent_round_end"2"1=Round_End");
 
 
g_ItemID px_register_extra_item(Name_ItemItem_CostZP_TEAM_HUMAN);
 
 
g_pcvar_DrugLastZombie  register_cvar("zp_drug_lastzm""1");                // Activa/desactiva la posibilidad de drogar al ultimo zombie vivo [0 = No || 1 = Si][Defecto 0]
 
g_pcvar_DrugNemesis    register_cvar("zp_drug_nemesis""1");                // Activa/desactiva la posibilidad de drogar a los Nemesis [0 = No || 1 = Si][Defecto 0]
 
g_pcvar_DrugTime        register_cvar("zp_drug_time""8");                  // Cantidad de veces que drogara a la victima [Defecto 8]
 
g_pcvar_DrugDamage      register_cvar("zp_drug_damage""0");                // Define un porcentaje de danio que le sacara del total de vida que posea la victima [Defecto 7]
 
g_pcvar_Drug_Attack    register_cvar("zp_drug_attack""0");                // Define la posibilidad de atacar mientras estas drogado [0 = Sí || 1 = No ataca || 2 = Le saca el Knife][Defecto 2]
 
g_pcvar_DrugLimit      register_cvar("zp_drug_limit""1");                  // Define un limite de compra de bomba, hasta que se agoten [Defecto 3]
 
g_pcvar_Print          register_cvar("zp_print_dhud""1");                  // Elige el estilo del mensaje que aparecera en pantalla [0 = DHUD || 1 = Print Center][Defecto 1]
 
g_pcvar_Message        register_cvar("zp_message_print""Você está drogado")// Mensaje que aparecera en pantalla [Defecto "ESTAS DROGADO"]
 
g_pcvar_GlowColor      register_cvar("zp_glow_color""0 250 180");          // Elige el color del trail y glow de la bomba. Ejemplo amx_glow_color "255 255 255" (Color blanco)
 
g_pcvar_ScreenFade      register_cvar("zp_screenfade""1");                  // Activa/desactiva el efecto ScreenFade [0 = No || 1 = Si][Defecto 1]
 
g_pcvar_ScreenShake    register_cvar("zp_screenshake""1");                // Activa/desactiva el efecto ScreenShake [0 = No || 1 = Si][Defecto 1]
 
 
g_msgAmmoPickup get_user_msgid("AmmoPickup");
 
g_msgScreenFade get_user_msgid("ScreenFade");
 
g_msgScreenShake get_user_msgid("ScreenShake");
 
 
loadCVARs();
}

public 
event_round_start() {
 
g_EndRound false;
 
 
loadCVARs();
}
public 
logevent_round_end() {
 
g_EndRound true;
}

loadCVARs() {
 
// Color de trail y glow de la bomba (CVAR "amx_print_dhud")
 
new szColors[20];
 new 
szRed[4];
 new 
szGreen[4];
 new 
szBlue[4];
 
 
get_pcvar_string(g_pcvar_GlowColorszColorscharsmax(szColors));
 
 
parse(szColorsszRedcharsmax(szRed), szGreencharsmax(szGreen), szBluecharsmax(szBlue));
 
 
g_GlowColor[0] = clamp(str_to_num(szRed), 0255);
 
g_GlowColor[1] = clamp(str_to_num(szGreen), 0255);
 
g_GlowColor[2] = clamp(str_to_num(szBlue), 0255);
 
 
// Mensaje que aparecera en pantalla (CVAR "amx_message_print")
 
new szMessage[MAX_TEXT];
 
 
get_pcvar_string(g_pcvar_MessageszMessagecharsmax(szMessage));
 
 
g_Message_Print szMessage// Revisar MAX_TEXT
 
 // Guardo 9 CVARs
 
g_DrugLastZombie get_pcvar_num(g_pcvar_DrugLastZombie);
 
g_DrugNemesis    get_pcvar_num(g_pcvar_DrugNemesis);
 
g_DrugTime      get_pcvar_num(g_pcvar_DrugTime);
 
g_DrugDamage    get_pcvar_num(g_pcvar_DrugDamage);
 
g_Drug_Attack    get_pcvar_num(g_pcvar_Drug_Attack);
 
g_DrugLimit      get_pcvar_num(g_pcvar_DrugLimit);
 
g_Print          get_pcvar_num(g_pcvar_Print);
 
g_ScreenFade    get_pcvar_num(g_pcvar_ScreenFade);
 
g_ScreenShake    get_pcvar_num(g_pcvar_ScreenShake);
}

public 
client_disconnected(id) {
 
remove_task(id+TASK_DRUG);
}

public 
zp_extra_item_selected(PlayerItemID) {
 if (
ItemID == g_ItemID) {
 if (
g_DrugBomb[Player] >= g_DrugLimit) {
 
client_print_color(Playerprint_team_default"%s ^1Você só pode carregar %d ^4%s ^1equipada%s"Prefixg_DrugLimitName_Itemg_DrugLimit == "" "s");
 return 
ZP_PLUGIN_HANDLED;
 }
 
 new 
weaponbp;
 
weaponbp cs_get_user_bpammo(PlayerCSW_HEGRENADE);
 
 
g_DrugBomb[Player]++;
 
 if (!
user_has_weapon(PlayerCSW_HEGRENADE)) {
 
give_item(Player"weapon_hegrenade");
 } else {
 
cs_set_user_bpammo(PlayerCSW_HEGRENADEweaponbp 1);
 
 
message_begin(MSG_ONE_UNRELIABLEg_msgAmmoPickup_Player);
 
write_byte(1);
 
write_byte(1);
 
message_end();
 
 
emit_sound(PlayerCHAN_ITEMSound_Buyammo1.0ATTN_NORM0PITCH_NORM);
 }
 
 
//client_print_color(Player, print_team_default, "%s ^1Você comprou uma ^4%s", Prefix, Name_Item);
 
}
 
 return 
PLUGIN_HANDLED;
}

public 
fw_CmdStart(idhandle) {
 if (!
g_IsAlive[id]) {
 return;
 }
 
 static 
iButton;
 
iButton get_uc(handleUC_Buttons);
 
 if (
g_HasDrug[id] > && g_Drug_Attack == 1) {
 if (
iButton IN_ATTACK || iButton IN_ATTACK2) {
 
set_uc(handleUC_Buttons, (iButton & ~IN_ATTACK & ~IN_ATTACK2));
 }
 }
}

public 
fw_PlayerSpawn_Post(id) {
 if (!
is_user_alive(id)) {
 return;
 }
 
 
g_IsAlive[id] = true;
 
g_HasDrug[id] = 0;
 
g_GlowColorId[id][0] = 0;
 
remove_task(id+TASK_DRUG);
}

public 
fw_PlayerKilled(victimattackershouldgib) {
 
g_IsAlive[victim] = false;
 
g_DrugBomb[victim] = false;
 
g_HasDrug[victim] = 0;
 
g_GlowColorId[victim][0] = 0;
 
 if (
task_exists(victim+TASK_DRUG)) {
 
remove_task(victim+TASK_DRUG);
 
set_rendering(victim);
 }
}

public 
fw_ThinkGrenade(entity) {
 if (!
pev_valid(entity)) {
 return 
HAM_IGNORED;
 }
 
 static 
Float:dmgtimeFloat:current_time;
 
pev(entitypev_dmgtimedmgtime);
 
current_time get_gametime();
 
 if (
dmgtime current_time) {
 return 
HAM_IGNORED;
 }
 
 if (
pev(entityPEV_NADE_TYPE) == NADE_TYPE_DRUG) {
 
Drug_Explode(entity);
 return 
HAM_SUPERCEDE;
 }
 
 return 
HAM_IGNORED;
}

public 
fw_SetModel(entity, const model[]) {
 static 
Float:dmgtime;
 
pev(entitypev_dmgtimedmgtime);
 
 if (
dmgtime == 0.0) {
 return 
FMRES_IGNORED;
 }
 
 static 
owner;
 
owner pev(entitypev_owner);
 
 
//if (equal(model, "models/he_", 10))
 /*if (model[9] == 'h' && model[10] == 'e') 
 {
 if (g_DrugBomb[owner] > 0 && !zp_get_user_zombie(owner)) 
 {
 g_DrugBomb[owner]--;
 
 set_rendering(entity, kRenderFxGlowShell, g_GlowColor[0], g_GlowColor[1], g_GlowColor[2], kRenderNormal, 16);
 
 message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
 write_byte(TE_BEAMFOLLOW);
 write_short(entity);
 write_short(g_TrailSpr);
 write_byte(30);
 write_byte(10);
 write_byte(g_GlowColor[0]);
 write_byte(g_GlowColor[1]);
 write_byte(g_GlowColor[2]);
 write_byte(200);
 message_end();
 
 set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_DRUG);
 engfunc(EngFunc_SetModel, entity, W_Model);
 //entity_set_model(entity, W_Model);
 
 return FMRES_SUPERCEDE;
 }
 }*/

 
if (bbc_granadas[pev(entitypev_owner)][DROGA])
 {
    fm_set_rendering(entitykRenderFxGlowShell2500250kRenderNormal16);
    
    message_begin
(MSG_BROADCASTSVC_TEMPENTITY)
    write_byte(TE_BEAMFOLLOW
    write_short(entity)
  write_short(g_trail
    write_byte(10
    write_byte(10
    write_byte(250
    write_byte(0)  
    write_byte
(250
    write_byte(200
    message_end()
            
    set_pev
(entityPEV_NADE_TYPENADE_TYPE_DROGA)
    entity_set_model(entity"models/bb_chile/w_droga.mdl")
        return FMRES_SUPERCEDE;

 
 return 
FMRES_IGNORED;
}

public 
fw_Item_Deploy_Post(__weaponEnt) {
 if(!
pev_valid(__weaponEnt)) {
 return;
 }
 
 static 
id;
 
id fm_get_weapon_ent_owner(__weaponEnt);
 
 if(!
pev_valid(id) || g_DrugBomb[id] < || zp_get_user_zombie(id)) {
 return;
 }
 
 
entity_set_string(idEV_SZ_viewmodelV_Model);
 
entity_set_string(idEV_SZ_weaponmodelP_Model);
}

/*****************************************************/
/* OTRAS FUNCIONES */
/*****************************************************/
public Drug_Explode(entity) {
 static 
Float:originF[3];
 
pev(entitypev_originoriginF);

 
create_blast(originF);
 
 
emit_sound(entityCHAN_WEAPONGrenade_DrugBomb[random_num(0charsmax(Grenade_DrugBomb))], 1.0ATTN_NORM0PITCH_NORM);
 
 static 
victim;
 
victim = -1;
 
 while ((
victim find_ent_in_sphere(victimoriginFNADE_EXPLOSION_RADIUS)) != 0) {
 
Check_Victim(victim);
 }
 
 
remove_entity(entity);
}

public 
Check_Victim(victim) {
 if (!
is_user_alive(victim) || !zp_get_user_zombie(victim) || g_EndRound) {
 return;
 }
 
 if ((
zp_get_user_last_zombie(victim) && g_DrugLastZombie 1)
 || (
zp_get_user_nemesis(victim) && g_DrugNemesis 1)) {
 return;
 }
 
 
g_HasDrug[victim] += g_DrugTime;
 
 if (
g_Drug_Attack == 2) {
 
strip_user_weapons(victim);
 }
 
 if (!
task_exists(victim+TASK_DRUG)) {
 
set_task(0.7"Effect_Drug"victim+TASK_DRUG__"b");
 
 
// Fix Bug para no ocacionar cruces entre renderizados.
 
if (g_GlowColorId[victim][0] <= 0) {
 
get_rendering(victimg_FX_RenderId[victim], g_GlowColorId[victim][0], g_GlowColorId[victim][1], g_GlowColorId[victim][2], g_RenderModeId[victim], g_AmountId[victim]);
 }
 
 
set_rendering(victimkRenderFxGlowShellg_GlowColor[0], g_GlowColor[1], g_GlowColor[2], kRenderNormal25);
 }
}

public 
Effect_Drug(taskID)
{
 if (
g_EndRound || g_HasDrug[ID_DRUG] < || !is_user_alive(ID_DRUG) || !zp_get_user_zombie(ID_DRUG)
 || (
zp_get_user_last_zombie(ID_DRUG) && g_DrugLastZombie 1)
 || (
zp_get_user_nemesis(ID_DRUG) && g_DrugNemesis 1)) {
 
remove_task(taskID);
 
g_HasDrug[ID_DRUG] = 0;
 
set_rendering(ID_DRUGg_FX_RenderId[ID_DRUG], g_GlowColorId[ID_DRUG][0], g_GlowColorId[ID_DRUG][1], g_GlowColorId[ID_DRUG][2], g_RenderModeId[ID_DRUG], g_AmountId[ID_DRUG]);
 
g_GlowColorId[ID_DRUG][0] = 0;
 
 if (!
user_has_weapon(ID_DRUGCSW_KNIFE)) {
 
give_item(ID_DRUG"weapon_knife");
 }
 
 return;
 }
 
 if (
g_Print 0) { 
 
set_dhudmessage(random_num(50200), random_num(50200), random_num(50200), -1.00.4000.00.20.20.2);
 
show_dhudmessage(ID_DRUG"%s!"g_Message_Print);
 } else {
 
client_print(ID_DRUGprint_center"%s!"g_Message_Print);
 }
 
 if (
g_DrugDamage) {
 static 
healthdamage;
 
health get_user_health(ID_DRUG);
 
damage g_DrugDamage;
 
 if (
health && (health damage 100)) {
 
set_user_health(ID_DRUGhealth - (health damage 100));
 
emit_sound(ID_DRUGCHAN_WEAPONZombie_Pain[random_num(0charsmax(Zombie_Pain))], 1.0ATTN_NORM0PITCH_NORM);
 }
 }
 
 if (
g_ScreenFade 0) {
 
message_begin(MSG_ONE_UNRELIABLEg_msgScreenFade_ID_DRUG);
 
write_short(UNIT_SECOND);
 
write_short(0);
 
write_short(0x0000);
 
write_byte(random_num(50200));
 
write_byte(random_num(50200));
 
write_byte(random_num(50200));
 
write_byte(230);
 
message_end();
 }
 
 if (
g_ScreenShake 0) {
 
message_begin(MSG_ONE_UNRELIABLEg_msgScreenShake_ID_DRUG);
 
write_short(UNIT_SECOND random_num(36));
 
write_short(UNIT_SECOND random_num(25));
 
write_short(UNIT_SECOND random_num(1015));
 
message_end();
 }
 
 static 
Float:vecDrug[3]; 
 
vecDrug[0] = random_float(-10.0150.0);
 
vecDrug[1] = random_float(20.0200.0);
 
vecDrug[2] = random_float(30.0250.0);
 
 
entity_set_vector(ID_DRUGEV_VEC_punchanglevecDrug);
 
 
g_HasDrug[ID_DRUG]--;
}

create_blast(const Float:originF[3]) {
 
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0);
 
write_byte(TE_BEAMCYLINDER);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]+385.0);
 
write_short(g_exploSpr);
 
write_byte(0);
 
write_byte(0);
 
write_byte(4);
 
write_byte(60);
 
write_byte(0);
 
write_byte(g_GlowColor[0]);
 
write_byte(g_GlowColor[1]);
 
write_byte(g_GlowColor[2]);
 
write_byte(200);
 
write_byte(0);
 
message_end();
 
 
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0);
 
write_byte(TE_BEAMCYLINDER);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]+470.0);
 
write_short(g_exploSpr);
 
write_byte(0);
 
write_byte(0);
 
write_byte(4);
 
write_byte(60);
 
write_byte(0);
 
write_byte(g_GlowColor[0]);
 
write_byte(g_GlowColor[1]);
 
write_byte(g_GlowColor[2]);
 
write_byte(200);
 
write_byte(0);
 
message_end();
    
 engfunc
(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0);
 
write_byte(TE_BEAMCYLINDER);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]+555.0);
 
write_short(g_exploSpr);
 
write_byte(0);
 
write_byte(0);
 
write_byte(4);
 
write_byte(60);
 
write_byte(0);
 
write_byte(g_GlowColor[0]);
 
write_byte(g_GlowColor[1]);
 
write_byte(g_GlowColor[2]);
 
write_byte(200);
 
write_byte(0);
 
message_end();
 
 
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0);
 
write_byte(TE_SPRITETRAIL);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
engfunc(EngFunc_WriteCoordoriginF[0]);
 
engfunc(EngFunc_WriteCoordoriginF[1]);
 
engfunc(EngFunc_WriteCoordoriginF[2]);
 
write_short(g_exploSpr2);
 
write_byte(80);
 
write_byte(8);
 
write_byte(2);
 
write_byte(random_num(5090));
 
write_byte(random_num(60100));
 
message_end();
}

/*****************************************************/
/* STOCKS */
/*****************************************************/
stock fm_get_weapon_ent_owner(ent) {
 if (
pev_valid(ent) != OFFSET_PDATA) {
 return -
1;
 }
 
 return 
get_pdata_cbase(entOFFSET_WEAPON_OWNEROFFSET_LINUX_WEAPONS);
}
stock get_rendering(Index, &FX, &R, &G, &B, &Render, &Amount) {
 
FX entity_get_int(IndexEV_INT_renderfx);
 
 new 
Float:RenderColor[3];
 
entity_get_vector(IndexEV_VEC_rendercolorRenderColor); 
 
floatround(RenderColor[0]);
 
floatround(RenderColor[1]);
 
floatround(RenderColor[2]);
 
 
Render entity_get_int(IndexEV_INT_rendermode);
 
 
Amount floatround(entity_get_float(IndexEV_FL_renderamt));
 
 return 
1;


cambiar privado/px_zombie_escape.inc a zombieplague.inc

px_register_extra_item a zp_register_extra_item

te voy a decir 3 cosas en buena bro...

la primera: se nota que no tienes idea de lo que haces, solo te di un ejemplo, tu debes adaptar tal como te pase no sirve.
la segunda: empieza por cosas mas faciles como primero que nada conocer los conceptos basicos del pawn
y 3 era (dejando de lado lo del autor): me sangraron los ojos al ver ese plugin...

EDIT: para mas encima nisiquiera copiaste y pegaste bien ese codigo, te falta agregarle funciones, en fin un asco...

aqui esta el original de federicomb; (el que publicaste tu es una copia asquerosa)
https://amxmodx-es.com/Thread-Bomba-de-droga

compara el plugin de ese post con el "tuyo" y edita para que funcione mas no podemos hacer por ti.
Responder
#8
(12/06/2022, 06:36 PM)aramayo123 escribió: como harian para que al comprarse furia el efecto desaparezca? existe una native en el zp para determinar cuando existe la furia? es el nodamage?

Sí, pero la native no te va a servir de nada ahí.
Lo que necesitarías es una forward.

Tendrás que usar la forward que tiene de compra de items y chequear que el item sea la furia
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)