[ROZWIĄZANE] Nie dzialajaca kalsa premium
Djhehe
13.05.2012
Witam chcialem przerobic klase darmowa na premium Po moim przerobieniu klasa sie komplikuje ale kazy moze jej uzywac
oto SMA po przerobieniu moze mi ktos powiedziec co zle zrobilem
a tutaj orginalne sma klasy
proszę o pomoc za kazda pomoc daje +
oto SMA po przerobieniu moze mi ktos powiedziec co zle zrobilem
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#define TASK_TRANSFER 999
new const XM8_MODEL_V[] = "models/QTM_CodMod/v_xm8.mdl";
new const XM320_MODEL_V[] = "models/QTM_CodMod/v_xm8xm320.mdl";
new const XM8_MODEL_P[] = "models/QTM_CodMod/p_xm8.mdl";
new const XM320_MODEL_P[] = "models/QTM_CodMod/p_xm8xm320.mdl";
new const XM320_AMMO[] = "models/QTM_CodMod/s_grenade.mdl";
new const XM320_SHOOT2[] = "weapons/xm8xm320_shoot2.wav";
new const XM320_EXPLO[] = "weapons/xm8xm320_exp.wav";
new const XM8_FOLEY1[] = "weapons/xm8_foley1.wav";
new const XM8_FOLEY2[] = "weapons/xm8_foley2.wav";
new const XM8_FOLEY3[] = "weapons/xm8_foley3.wav";
new const XM8_FOLEY4[] = "weapons/xm8_foley4.wav";
new const XM8_FOLEY5[] = "weapons/xm8_foley5.wav";
new const XM8_FOLEY6[] = "weapons/xm8_foley6.wav";
new const XM8_DRAW[] = "weapons/xm8_draw.wav";
new const XM8_CLIPIN[] = "weapons/xm8_clipin.wav";
new const XM8_CLIPON[] = "weapons/xm8_clipon.wav";
new const XM8_CLIPOUT[] = "weapons/xm8_clipout.wav";
new const SPRITE_EXPLO[] = "sprites/xm8xm320_exp.spr";
new const SPRITE_SMOKE[] = "sprites/xm8xm320_smoke.spr";
new const SPRITE_BLAST[] = "sprites/xm8xm320_dexplo.spr";
new const SPRITE_TRAIL[] = "sprites/xm8xm320_trail.spr";
new const nazwa[] = "Profesjonalny Grenadier";
new const opis[] = "Posiada XM8 z granatnikiem XM320, klawiszem E przelacza miedzy granatnikiem a bronia";
new const bronie = 1<<CSW_SG552 | 1<<CSW_P228 | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_SMOKEGRENADE;
new const zdrowie = 25
new const kondycja = -15;
new const inteligencja = 0;
new const wytrzymalosc = 30;
new bool: ma_klase[33], bool: g_launcher[33], g_launcher_ammo[33], Float:weapon_idle[33], bool: zabity[33][33], magazynek[33], naboje[33], bool:weapon_reloading[33];
new explo, blast, trail, smoke;
new PCvarDamage, PCvarRadius, PCvarAmmo
public plugin_init()
{
register_plugin(nazwa, "1.0", "Hleb")
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Item_Deploy, "weapon_sg552", "WeaponDeploy", 1);
RegisterHam(Ham_Weapon_WeaponIdle, "weapon_sg552", "Weapon_Idle");
RegisterHam(Ham_Spawn, "player", "Client_Spawn", 1);
register_forward(FM_CmdStart, "CmdStart");
register_forward(FM_Touch, "Nade_Touch")
register_event("CurWeapon","CurWeapon","be", "1=1");
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
PCvarAmmo = register_cvar("cod_xm320_ammo", "10");
PCvarDamage = register_cvar("cod_xm320_damage", "250");
PCvarRadius = register_cvar("cod_xm320_radius", "300");
}
public cod_class_enabled(id)
{
ma_klase[id] = true;
g_launcher_ammo[id] = get_pcvar_num(PCvarAmmo);
g_launcher[id] = false;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
if(!(get_user_flags(id) & ADMIN_LEVEL_A))
{
client_print(id, print_chat, "[] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
return COD_CONTINUE;
}
public plugin_precache()
{
//dźwięki
engfunc(EngFunc_PrecacheSound, XM320_SHOOT2)
engfunc(EngFunc_PrecacheSound, XM320_EXPLO)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY1)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY2)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY3)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY4)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY5)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY6)
engfunc(EngFunc_PrecacheSound, XM8_DRAW)
engfunc(EngFunc_PrecacheSound, XM8_CLIPIN)
engfunc(EngFunc_PrecacheSound, XM8_CLIPON)
engfunc(EngFunc_PrecacheSound, XM8_CLIPOUT)
//sprites'y
explo = precache_model(SPRITE_EXPLO)
smoke = precache_model(SPRITE_SMOKE)
blast = precache_model(SPRITE_BLAST)
trail = precache_model(SPRITE_TRAIL)
//modele
engfunc(EngFunc_PrecacheModel, XM8_MODEL_V)
engfunc(EngFunc_PrecacheModel, XM320_MODEL_V)
engfunc(EngFunc_PrecacheModel, XM8_MODEL_P)
engfunc(EngFunc_PrecacheModel, XM320_MODEL_P)
engfunc(EngFunc_PrecacheModel, XM320_AMMO)
}
public WeaponDeploy(ent)
{
new id = get_pdata_cbase(ent, 41, 4)
if(!ma_klase[id])
return PLUGIN_CONTINUE
if(g_launcher[id])
{
set_pev(id, pev_viewmodel2, XM320_MODEL_V)
set_pev(id, pev_weaponmodel2, XM320_MODEL_P)
}
else
{
set_pev(id, pev_viewmodel2, XM8_MODEL_V)
set_pev(id, pev_weaponmodel2, XM8_MODEL_P)
}
set_pev(id, pev_weaponanim, 2);
return PLUGIN_CONTINUE;
}
public Weapon_Idle(ent)
{
new id = get_pdata_cbase(ent, 41, 4);
if(get_user_weapon(id) == 27 && ma_klase[id])
{
if(!weapon_idle[id])
weapon_idle[id] = get_gametime();
}
}
public cod_class_skill_used(id)
{
if(!ma_klase[id] && get_user_weapon(id) != CSW_SG552)
return PLUGIN_CONTINUE
set_pev(id, pev_weaponanim, 6)
set_task(2.0, "Transfer", id+TASK_TRANSFER);
return PLUGIN_CONTINUE;
}
public Transfer(id)
{
id-=TASK_TRANSFER;
new ent = fm_find_ent_by_owner(-1, "weapon_sg552", id)
if(!g_launcher[id])
{
magazynek[id] = cs_get_weapon_ammo(ent)
naboje[id] = cs_get_user_bpammo(id, CSW_SG552)
}
g_launcher[id] =(g_launcher[id])?false:true;
set_pev(id, pev_viewmodel2, (g_launcher[id])?XM320_MODEL_V:XM8_MODEL_V);
set_pev(id, pev_weaponanim, 0);
if(!g_launcher[id])
{
cs_set_weapon_ammo(ent, magazynek[id])
cs_set_user_bpammo(id, CSW_SG552, naboje[id])
}
}
public CurWeapon(id)
{
if(!ma_klase[id])
return PLUGIN_CONTINUE;
if(read_data(2) != CSW_SG552 && task_exists(id+TASK_TRANSFER))
remove_task(id+TASK_TRANSFER)
return PLUGIN_CONTINUE;
}
public Client_Spawn(id)
{
if(!ma_klase[id])
return PLUGIN_CONTINUE;
g_launcher_ammo[id] = get_pcvar_num(PCvarAmmo);
magazynek[id] = 30;
naboje[id] = 90;
return PLUGIN_CONTINUE;
}
public CmdStart(id, uc)
{
if(!is_user_alive(id))
return FMRES_IGNORED;
if(get_user_weapon(id) == CSW_SG552 && ma_klase[id])
{
new button = get_uc(uc, UC_Buttons);
new ent = fm_find_ent_by_owner(-1, "weapon_sg552", id);
if(!g_launcher[id])
return FMRES_IGNORED
if(button & IN_ATTACK)
{
button &= ~IN_ATTACK;
set_uc(uc, UC_Buttons, button);
if(!g_launcher_ammo[id] || weapon_reloading[id] || !weapon_idle[id])
return FMRES_IGNORED;
if(weapon_idle[id] && (get_gametime()-weapon_idle[id]<=1.1))
return FMRES_IGNORED;
new Float:Origin[3], Float:Angle[3], Float:Velocity[3];
pev(id, pev_origin, Origin);
pev(id, pev_v_angle, Angle);
velocity_by_aim(id, 2000, Velocity);
Angle[0] *= -1.0
new ent = fm_create_entity("info_target")
set_pev(ent, pev_classname, "mortar");
engfunc(EngFunc_SetModel, ent, XM320_AMMO);
set_pev(ent, pev_solid, SOLID_BBOX);
set_pev(ent, pev_movetype, MOVETYPE_TOSS);
set_pev(ent, pev_owner, id);
set_pev(ent, pev_mins, Float:{-1.0, -1.0, -1.0});
set_pev(ent, pev_maxs, Float:{1.0, 1.0, 1.0});
set_pev(ent, pev_gravity, 0.3);
set_pev(ent, pev_origin, Origin);
set_pev(ent, pev_velocity, Velocity);
set_pev(ent, pev_angles, Angle);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(ent)
write_short(trail)
write_byte(6)
write_byte(3)
write_byte(224)
write_byte(224)
write_byte(255)
write_byte(100)
message_end()
g_launcher_ammo[id]--;
set_pev(id, pev_weaponanim, (!g_launcher_ammo[id])?8:7)
new entwpn = fm_find_ent_by_owner(-1, "weapon_sg552", id)
if(entwpn)
set_pdata_float(entwpn, 48, 1.5+3.0, 4)
set_pdata_float(id, 83, 1.5, 4)
weapon_reloading[id] = true;
emit_sound(id, CHAN_WEAPON, XM320_SHOOT2, 1.0, ATTN_NORM, 0, PITCH_NORM)
if(task_exists(id+3000))
remove_task(id+3000)
set_task(3.4, "RELOADING", id+3000)
}
else if(button & IN_RELOAD)
{
button &= ~IN_RELOAD;
set_uc(uc, UC_Buttons, button);
set_pev(id, pev_weaponanim, 0);
set_pdata_float(id, 83, 0.5, 4);
if(ent)
set_pdata_float(ent, 48, 0.5+3.0, 4);
}
if(ent)
cs_set_weapon_ammo(ent, -1);
cs_set_user_bpammo(id, 27, g_launcher_ammo[id]);
}
else if(get_user_weapon(id) != CSW_SG552 && ma_klase[id])
weapon_idle[id] = 0.0;
return FMRES_IGNORED;
}
public RELOADING(id)
{
id -= 3000;
weapon_reloading[id] = false;
set_pev(id, pev_weaponanim, 0);
}
public Nade_Touch(ent, id)
{
if(!pev_valid(ent))
return FMRES_IGNORED
new class[32]
pev(ent, pev_classname, class, charsmax(class))
if(!equal(class, "mortar"))
return FMRES_IGNORED
new attacker = pev(ent, pev_owner);
new Float:entOrigin[3], Float:fDamage, Float:Origin[3];
pev(ent, pev_origin, entOrigin);
entOrigin[2] += 1.0;
new Float:xm320_damage = get_pcvar_float(PCvarDamage);
new Float:xm320_radius = get_pcvar_float(PCvarRadius);
new victim = -1
while((victim = engfunc(EngFunc_FindEntityInSphere, victim, entOrigin, xm320_radius)) != 0)
{
if(!is_user_alive(victim) || get_user_team(attacker) == get_user_team(victim))
continue;
pev(victim, pev_origin, Origin);
fDamage = xm320_damage - floatmul(xm320_damage, floatdiv(get_distance_f(Origin, entOrigin), xm320_radius));
fDamage *= estimate_take_hurt(entOrigin, victim);
if(fDamage>0.0)
UTIL_Kill(attacker, victim, fDamage, DMG_BULLET);
}
emit_sound(ent, CHAN_WEAPON, XM320_EXPLO, 1.0, ATTN_NORM, 0, PITCH_NORM)
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION);
write_coord(floatround(entOrigin[0]));
write_coord(floatround(entOrigin[1]));
write_coord(floatround(entOrigin[2]));
write_short(explo);
write_byte(40);
write_byte(30);
write_byte(14);
message_end();
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION);
write_coord(floatround(entOrigin[0]));
write_coord(floatround(entOrigin[1]));
write_coord(floatround(entOrigin[2]));
write_short(blast);
write_byte(40);
write_byte(30);
write_byte(TE_EXPLFLAG_NONE);
message_end();
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(5)
write_coord(floatround(entOrigin[0]));
write_coord(floatround(entOrigin[1]));
write_coord(floatround(entOrigin[2]));
write_short(smoke);
write_byte(35);
write_byte(5);
message_end();
fm_remove_entity(ent);
return FMRES_IGNORED
}
stock Float:estimate_take_hurt(Float:fPoint[3], ent)
{
new Float:fOrigin[3], tr, Float:fFraction;
pev(ent, pev_origin, fOrigin);
engfunc(EngFunc_TraceLine, fPoint, fOrigin, DONT_IGNORE_MONSTERS, 0, tr);
get_tr2(tr, TR_flFraction, fFraction);
if(fFraction == 1.0 || get_tr2(tr, TR_pHit) == ent)
return 1.0;
return 0.75;
}
stock UTIL_Kill(atakujacy, obrywajacy, Float:damage, damagebits)
{
if(get_user_health(obrywajacy) <= floatround(damage))
zabity[atakujacy][obrywajacy] = true;
cod_inflict_damage(atakujacy, obrywajacy, damage, 1.0, atakujacy, damagebits);
}
public message_DeathMsg()
{
static killer, victim;
killer = get_msg_arg_int(1);
victim = get_msg_arg_int(2);
if(zabity[killer][victim])
{
zabity[killer][victim] = false;
set_msg_arg_string(4, "grenade");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
a tutaj orginalne sma klasy
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#define TASK_TRANSFER 999
new const XM8_MODEL_V[] = "models/QTM_CodMod/v_xm8.mdl";
new const XM320_MODEL_V[] = "models/QTM_CodMod/v_xm8xm320.mdl";
new const XM8_MODEL_P[] = "models/QTM_CodMod/p_xm8.mdl";
new const XM320_MODEL_P[] = "models/QTM_CodMod/p_xm8xm320.mdl";
new const XM320_AMMO[] = "models/QTM_CodMod/s_grenade.mdl";
new const XM320_SHOOT2[] = "weapons/xm8xm320_shoot2.wav";
new const XM320_EXPLO[] = "weapons/xm8xm320_exp.wav";
new const XM8_FOLEY1[] = "weapons/xm8_foley1.wav";
new const XM8_FOLEY2[] = "weapons/xm8_foley2.wav";
new const XM8_FOLEY3[] = "weapons/xm8_foley3.wav";
new const XM8_FOLEY4[] = "weapons/xm8_foley4.wav";
new const XM8_FOLEY5[] = "weapons/xm8_foley5.wav";
new const XM8_FOLEY6[] = "weapons/xm8_foley6.wav";
new const XM8_DRAW[] = "weapons/xm8_draw.wav";
new const XM8_CLIPIN[] = "weapons/xm8_clipin.wav";
new const XM8_CLIPON[] = "weapons/xm8_clipon.wav";
new const XM8_CLIPOUT[] = "weapons/xm8_clipout.wav";
new const SPRITE_EXPLO[] = "sprites/xm8xm320_exp.spr";
new const SPRITE_SMOKE[] = "sprites/xm8xm320_smoke.spr";
new const SPRITE_BLAST[] = "sprites/xm8xm320_dexplo.spr";
new const SPRITE_TRAIL[] = "sprites/xm8xm320_trail.spr";
new const nazwa[] = "Profesjonalny Grenadier";
new const opis[] = "Posiada XM8 z granatnikiem XM320, klawiszem E przelacza miedzy granatnikiem a bronia";
new const bronie = 1<<CSW_SG552 | 1<<CSW_P228 | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_SMOKEGRENADE;
new const zdrowie = 25
new const kondycja = -15;
new const inteligencja = 0;
new const wytrzymalosc = 30;
new bool: ma_klase[33], bool: g_launcher[33], g_launcher_ammo[33], Float:weapon_idle[33], bool: zabity[33][33], magazynek[33], naboje[33], bool:weapon_reloading[33];
new explo, blast, trail, smoke;
new PCvarDamage, PCvarRadius, PCvarAmmo
public plugin_init()
{
register_plugin(nazwa, "1.0", "Hleb")
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Item_Deploy, "weapon_sg552", "WeaponDeploy", 1);
RegisterHam(Ham_Weapon_WeaponIdle, "weapon_sg552", "Weapon_Idle");
RegisterHam(Ham_Spawn, "player", "Client_Spawn", 1);
register_forward(FM_CmdStart, "CmdStart");
register_forward(FM_Touch, "Nade_Touch")
register_event("CurWeapon","CurWeapon","be", "1=1");
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
PCvarAmmo = register_cvar("cod_xm320_ammo", "10");
PCvarDamage = register_cvar("cod_xm320_damage", "250");
PCvarRadius = register_cvar("cod_xm320_radius", "300");
}
public cod_class_enabled(id)
{
ma_klase[id] = true;
g_launcher_ammo[id] = get_pcvar_num(PCvarAmmo);
g_launcher[id] = false;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public plugin_precache()
{
//dźwięki
engfunc(EngFunc_PrecacheSound, XM320_SHOOT2)
engfunc(EngFunc_PrecacheSound, XM320_EXPLO)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY1)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY2)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY3)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY4)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY5)
engfunc(EngFunc_PrecacheSound, XM8_FOLEY6)
engfunc(EngFunc_PrecacheSound, XM8_DRAW)
engfunc(EngFunc_PrecacheSound, XM8_CLIPIN)
engfunc(EngFunc_PrecacheSound, XM8_CLIPON)
engfunc(EngFunc_PrecacheSound, XM8_CLIPOUT)
//sprites'y
explo = precache_model(SPRITE_EXPLO)
smoke = precache_model(SPRITE_SMOKE)
blast = precache_model(SPRITE_BLAST)
trail = precache_model(SPRITE_TRAIL)
//modele
engfunc(EngFunc_PrecacheModel, XM8_MODEL_V)
engfunc(EngFunc_PrecacheModel, XM320_MODEL_V)
engfunc(EngFunc_PrecacheModel, XM8_MODEL_P)
engfunc(EngFunc_PrecacheModel, XM320_MODEL_P)
engfunc(EngFunc_PrecacheModel, XM320_AMMO)
}
public WeaponDeploy(ent)
{
new id = get_pdata_cbase(ent, 41, 4)
if(!ma_klase[id])
return PLUGIN_CONTINUE
if(g_launcher[id])
{
set_pev(id, pev_viewmodel2, XM320_MODEL_V)
set_pev(id, pev_weaponmodel2, XM320_MODEL_P)
}
else
{
set_pev(id, pev_viewmodel2, XM8_MODEL_V)
set_pev(id, pev_weaponmodel2, XM8_MODEL_P)
}
set_pev(id, pev_weaponanim, 2);
return PLUGIN_CONTINUE;
}
public Weapon_Idle(ent)
{
new id = get_pdata_cbase(ent, 41, 4);
if(get_user_weapon(id) == 27 && ma_klase[id])
{
if(!weapon_idle[id])
weapon_idle[id] = get_gametime();
}
}
public cod_class_skill_used(id)
{
if(!ma_klase[id] && get_user_weapon(id) != CSW_SG552)
return PLUGIN_CONTINUE
set_pev(id, pev_weaponanim, 6)
set_task(2.0, "Transfer", id+TASK_TRANSFER);
return PLUGIN_CONTINUE;
}
public Transfer(id)
{
id-=TASK_TRANSFER;
new ent = fm_find_ent_by_owner(-1, "weapon_sg552", id)
if(!g_launcher[id])
{
magazynek[id] = cs_get_weapon_ammo(ent)
naboje[id] = cs_get_user_bpammo(id, CSW_SG552)
}
g_launcher[id] =(g_launcher[id])?false:true;
set_pev(id, pev_viewmodel2, (g_launcher[id])?XM320_MODEL_V:XM8_MODEL_V);
set_pev(id, pev_weaponanim, 0);
if(!g_launcher[id])
{
cs_set_weapon_ammo(ent, magazynek[id])
cs_set_user_bpammo(id, CSW_SG552, naboje[id])
}
}
public CurWeapon(id)
{
if(!ma_klase[id])
return PLUGIN_CONTINUE;
if(read_data(2) != CSW_SG552 && task_exists(id+TASK_TRANSFER))
remove_task(id+TASK_TRANSFER)
return PLUGIN_CONTINUE;
}
public Client_Spawn(id)
{
if(!ma_klase[id])
return PLUGIN_CONTINUE;
g_launcher_ammo[id] = get_pcvar_num(PCvarAmmo);
magazynek[id] = 30;
naboje[id] = 90;
return PLUGIN_CONTINUE;
}
public CmdStart(id, uc)
{
if(!is_user_alive(id))
return FMRES_IGNORED;
if(get_user_weapon(id) == CSW_SG552 && ma_klase[id])
{
new button = get_uc(uc, UC_Buttons);
new ent = fm_find_ent_by_owner(-1, "weapon_sg552", id);
if(!g_launcher[id])
return FMRES_IGNORED
if(button & IN_ATTACK)
{
button &= ~IN_ATTACK;
set_uc(uc, UC_Buttons, button);
if(!g_launcher_ammo[id] || weapon_reloading[id] || !weapon_idle[id])
return FMRES_IGNORED;
if(weapon_idle[id] && (get_gametime()-weapon_idle[id]<=1.1))
return FMRES_IGNORED;
new Float:Origin[3], Float:Angle[3], Float:Velocity[3];
pev(id, pev_origin, Origin);
pev(id, pev_v_angle, Angle);
velocity_by_aim(id, 2000, Velocity);
Angle[0] *= -1.0
new ent = fm_create_entity("info_target")
set_pev(ent, pev_classname, "mortar");
engfunc(EngFunc_SetModel, ent, XM320_AMMO);
set_pev(ent, pev_solid, SOLID_BBOX);
set_pev(ent, pev_movetype, MOVETYPE_TOSS);
set_pev(ent, pev_owner, id);
set_pev(ent, pev_mins, Float:{-1.0, -1.0, -1.0});
set_pev(ent, pev_maxs, Float:{1.0, 1.0, 1.0});
set_pev(ent, pev_gravity, 0.3);
set_pev(ent, pev_origin, Origin);
set_pev(ent, pev_velocity, Velocity);
set_pev(ent, pev_angles, Angle);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(ent)
write_short(trail)
write_byte(6)
write_byte(3)
write_byte(224)
write_byte(224)
write_byte(255)
write_byte(100)
message_end()
g_launcher_ammo[id]--;
set_pev(id, pev_weaponanim, (!g_launcher_ammo[id])?8:7)
new entwpn = fm_find_ent_by_owner(-1, "weapon_sg552", id)
if(entwpn)
set_pdata_float(entwpn, 48, 1.5+3.0, 4)
set_pdata_float(id, 83, 1.5, 4)
weapon_reloading[id] = true;
emit_sound(id, CHAN_WEAPON, XM320_SHOOT2, 1.0, ATTN_NORM, 0, PITCH_NORM)
if(task_exists(id+3000))
remove_task(id+3000)
set_task(3.4, "RELOADING", id+3000)
}
else if(button & IN_RELOAD)
{
button &= ~IN_RELOAD;
set_uc(uc, UC_Buttons, button);
set_pev(id, pev_weaponanim, 0);
set_pdata_float(id, 83, 0.5, 4);
if(ent)
set_pdata_float(ent, 48, 0.5+3.0, 4);
}
if(ent)
cs_set_weapon_ammo(ent, -1);
cs_set_user_bpammo(id, 27, g_launcher_ammo[id]);
}
else if(get_user_weapon(id) != CSW_SG552 && ma_klase[id])
weapon_idle[id] = 0.0;
return FMRES_IGNORED;
}
public RELOADING(id)
{
id -= 3000;
weapon_reloading[id] = false;
set_pev(id, pev_weaponanim, 0);
}
public Nade_Touch(ent, id)
{
if(!pev_valid(ent))
return FMRES_IGNORED
new class[32]
pev(ent, pev_classname, class, charsmax(class))
if(!equal(class, "mortar"))
return FMRES_IGNORED
new attacker = pev(ent, pev_owner);
new Float:entOrigin[3], Float:fDamage, Float:Origin[3];
pev(ent, pev_origin, entOrigin);
entOrigin[2] += 1.0;
new Float:xm320_damage = get_pcvar_float(PCvarDamage);
new Float:xm320_radius = get_pcvar_float(PCvarRadius);
new victim = -1
while((victim = engfunc(EngFunc_FindEntityInSphere, victim, entOrigin, xm320_radius)) != 0)
{
if(!is_user_alive(victim) || get_user_team(attacker) == get_user_team(victim))
continue;
pev(victim, pev_origin, Origin);
fDamage = xm320_damage - floatmul(xm320_damage, floatdiv(get_distance_f(Origin, entOrigin), xm320_radius));
fDamage *= estimate_take_hurt(entOrigin, victim);
if(fDamage>0.0)
UTIL_Kill(attacker, victim, fDamage, DMG_BULLET);
}
emit_sound(ent, CHAN_WEAPON, XM320_EXPLO, 1.0, ATTN_NORM, 0, PITCH_NORM)
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION);
write_coord(floatround(entOrigin[0]));
write_coord(floatround(entOrigin[1]));
write_coord(floatround(entOrigin[2]));
write_short(explo);
write_byte(40);
write_byte(30);
write_byte(14);
message_end();
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION);
write_coord(floatround(entOrigin[0]));
write_coord(floatround(entOrigin[1]));
write_coord(floatround(entOrigin[2]));
write_short(blast);
write_byte(40);
write_byte(30);
write_byte(TE_EXPLFLAG_NONE);
message_end();
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(5)
write_coord(floatround(entOrigin[0]));
write_coord(floatround(entOrigin[1]));
write_coord(floatround(entOrigin[2]));
write_short(smoke);
write_byte(35);
write_byte(5);
message_end();
fm_remove_entity(ent);
return FMRES_IGNORED
}
stock Float:estimate_take_hurt(Float:fPoint[3], ent)
{
new Float:fOrigin[3], tr, Float:fFraction;
pev(ent, pev_origin, fOrigin);
engfunc(EngFunc_TraceLine, fPoint, fOrigin, DONT_IGNORE_MONSTERS, 0, tr);
get_tr2(tr, TR_flFraction, fFraction);
if(fFraction == 1.0 || get_tr2(tr, TR_pHit) == ent)
return 1.0;
return 0.75;
}
stock UTIL_Kill(atakujacy, obrywajacy, Float:damage, damagebits)
{
if(get_user_health(obrywajacy) <= floatround(damage))
zabity[atakujacy][obrywajacy] = true;
cod_inflict_damage(atakujacy, obrywajacy, damage, 1.0, atakujacy, damagebits);
}
public message_DeathMsg()
{
static killer, victim;
killer = get_msg_arg_int(1);
victim = get_msg_arg_int(2);
if(zabity[killer][victim])
{
zabity[killer][victim] = false;
set_msg_arg_string(4, "grenade");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
proszę o pomoc za kazda pomoc daje +
FORMOZA
13.05.2012
Ojciec Dyrektor
13.05.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ojciec Dyrektor
13.05.2012
Automatyczna wiadomość
Ten temat został przeniesiony z forum:
Mody → Call of Duty Mod → Pytania
do
Mody → Call of Duty Mod → Problemy