←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
[ROZWIĄZANE] Nie dzialajaca kalsa premium

Zablokowany

  • +
  • -
Djhehe - zdjęcie 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

/* 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 +
Odpowiedz

  • +
  • -
FORMOZA - zdjęcie FORMOZA 13.05.2012

Trzymajjj ;)

Załączony plik  codclass_professional_greenadier.sma   11,03 KB   33 Ilość pobrań
Odpowiedz

  • +
  • -
Djhehe - zdjęcie Djhehe 13.05.2012

Thx dziala
Odpowiedz

  • +
  • -
Ojciec Dyrektor - zdjęcie 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, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz

  • +
  • -
Ojciec Dyrektor - zdjęcie Ojciec Dyrektor 13.05.2012

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
ModyCall of Duty ModPytania
do
ModyCall of Duty ModProblemy

Odpowiedz
Zablokowany