Mam pewien problem . Mianowicie z klasą, którą chciałem przerobić .. Niestety ciągle w tej klasie występuję błąd i ciągle ten sam..
Spoiler
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <codmod_frakcje>
#define PASEK 5178
#define PASEK_LAD 4321
new bool:jest_niewidzialny[32];
new przez[32];
new czas[32]
new HUD;
new bool:is_spy[32];
new const nazwa[] = "[Premium 23zl] Sprytek";
new const opis[] = "Jest szybki, ma duzo hp i moze byc przez 10s. niewidzialny.";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 200;
new const kondycja = 200;
new const inteligencja = 100;
new const wytrzymalosc = 50;
new const frakcja[] = "Cs-sfera.eu";
new ma_klase[33];
public plugin_init()
{
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, frakcja);
RegisterHam(Ham_Spawn,"player","Spawn",1);
RegisterHam(Ham_TakeDamage, "player", "TakeDmg");
register_forward(FM_PlayerPreThink, "PokazPasek");
RegisterHam(Ham_Spawn, "player", "fwSpawn_Grawitacja", 1);
HUD= CreateHudSyncObj()
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Premium] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
czas[id] = 10;
entity_set_float(id, EV_FL_gravity, 400.0/800.0);
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
is_spy[id] = false;
entity_set_float(id, EV_FL_gravity, 1.0);
ma_klase[id] = false;
public Spawn(id)
{
if(is_spy[id])
{
przez[id]=255
remove_task(id + 9823)
remove_task(id + PASEK)
jest_niewidzialny[id]=false;
czas[id] = 10;
}
}
public client_PreThink(id)
{
if(!is_user_alive(id) || !is_spy[id])
return PLUGIN_CONTINUE;
if((pev(id,pev_button) & IN_ATTACK2) && (pev(id,pev_oldbuttons) & IN_ATTACK2) && czas[id] && jest_niewidzialny[id])
{
remove_task(id + 9823)
remove_task(id+PASEK)
remove_task(id+PASEK_LAD)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
przez[id] = 255;
if(czas[id]<10)
set_task(2.0,"LadowaniePaska",id+PASEK_LAD)
}
if((pev(id,pev_button) & IN_ATTACK2) && (pev(id,pev_oldbuttons) & IN_ATTACK2) && czas[id] && !jest_niewidzialny[id])
{
remove_task(id+PASEK_LAD)
remove_task(id+PASEK)
remove_task(id + 9823)
set_task(0.1,"niewidzialny",id + 9823)
}
if((pev(id,pev_button) & IN_ATTACK) && (jest_niewidzialny[id]))
{
if(task_exists(id + 9823))
remove_task(id + 9823)
remove_task(id+PASEK)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
przez[id] = 255;
jest_niewidzialny[id]=false;
if(czas[id]<10)
set_task(1.0,"LadowaniePaska",id+PASEK_LAD)
}
return PLUGIN_CONTINUE;
}
public TakeDmg(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker))
return HAM_IGNORED;
if(!is_spy[idattacker])
return HAM_IGNORED;
new health = get_user_health(this);
new weapon = get_user_weapon(idattacker);
if(health < 2)
return HAM_IGNORED;
if(weapon == CSW_KNIFE && !UTIL_In_FOV(this, idattacker) && UTIL_In_FOV(idattacker, this))
damage=float(health);
SetHamParamFloat(4, damage);
return HAM_IGNORED;
}
public niewidzialny(id)
{
id-=9823;
if(przez[id]>0)
{
przez[id]-=15;
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, przez[id]);
set_task(0.1,"niewidzialny",id + 9823)
}
else
{
client_print(id,print_center,"Jestes niewidzialny")
remove_task(id + 9823)
jest_niewidzialny[id]=true;
set_task(1.0,"CzasFun",id+PASEK)
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public CzasFun(id)
{
id-=PASEK;
if(czas[id]!=0)
{
czas[id]-=1;
set_task(1.0,"CzasFun",id+PASEK)
}
else
{
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
przez[id] = 255;
jest_niewidzialny[id]=false;
remove_task(id+PASEK)
set_task(2.0,"LadowaniePaska",id+PASEK_LAD)
}
}
public LadowaniePaska(id)
{
id-=PASEK_LAD;
jest_niewidzialny[id]=false;
if(czas[id]<10)
{
czas[id]++
set_task(1.0,"LadowaniePaska",id+PASEK_LAD)
}
else
remove_task(id+PASEK_LAD)
}
public PokazPasek(id)
{
if(!is_user_alive(id) || !is_spy[id])
return PLUGIN_CONTINUE;
if(czas[id]<4)
set_hudmessage(255, 0, 0, 0.03, 0.6, 0, 0.0, 0.3, 0.0, 0.0);
else
set_hudmessage(0, 255, 0, 0.03, 0.6, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, HUD,"Spy^n[------%d-----]",czas[id])
return PLUGIN_CONTINUE;
}
//Kod wziety CodMod.
stock bool:UTIL_In_FOV(id,target)
{
if (Find_Angle(id,target,9999.9) > 0.0)
return true;
return false;
}
stock Float:Find_Angle(Core,Target,Float:dist)
{
new Float:vec2LOS[2];
new Float:flDot;
new Float:CoreOrigin[3];
new Float:TargetOrigin[3];
new Float:CoreAngles[3];
pev(Core,pev_origin,CoreOrigin);
pev(Target,pev_origin,TargetOrigin);
if (get_distance_f(CoreOrigin,TargetOrigin) > dist)
return 0.0;
pev(Core,pev_angles, CoreAngles);
for ( new i = 0; i < 2; i++ )
vec2LOS[i] = TargetOrigin[i] - CoreOrigin[i];
new Float:veclength = Vec2DLength(vec2LOS);
//Normalize V2LOS
if (veclength <= 0.0)
{
vec2LOS[0] = 0.0;
vec2LOS[1] = 0.0;
}
else
{
new Float:flLen = 1.0 / veclength;
vec2LOS[0] = vec2LOS[0]*flLen;
vec2LOS[1] = vec2LOS[1]*flLen;
}
//Do a makevector to make v_forward right
engfunc(EngFunc_MakeVectors,CoreAngles);
new Float:v_forward[3];
new Float:v_forward2D[2];
get_global_vector(GL_v_forward, v_forward);
v_forward2D[0] = v_forward[0];
v_forward2D[1] = v_forward[1];
flDot = vec2LOS[0]*v_forward2D[0]+vec2LOS[1]*v_forward2D[1];
if ( flDot > 0.5 )
{
return flDot;
}
return 0.0;
}
stock Float:Vec2DLength( Float:Vec[2] )
{
return floatsqroot(Vec[0]*Vec[0] + Vec[1]*Vec[1] );
}
public fwSpawn_Grawitacja(id)
{
if(ma_klase[id])
entity_set_float(id, EV_FL_gravity, 800.0/800.0);
}
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <codmod_frakcje>
#define PASEK 5178
#define PASEK_LAD 4321
new bool:jest_niewidzialny[32];
new przez[32];
new czas[32]
new HUD;
new bool:is_spy[32];
new const nazwa[] = "[Premium 23zl] Sprytek";
new const opis[] = "Jest szybki, ma duzo hp i moze byc przez 10s. niewidzialny.";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 200;
new const kondycja = 200;
new const inteligencja = 100;
new const wytrzymalosc = 50;
new const frakcja[] = "Cs-sfera.eu";
new ma_klase[33];
public plugin_init()
{
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, frakcja);
RegisterHam(Ham_Spawn,"player","Spawn",1);
RegisterHam(Ham_TakeDamage, "player", "TakeDmg");
register_forward(FM_PlayerPreThink, "PokazPasek");
RegisterHam(Ham_Spawn, "player", "fwSpawn_Grawitacja", 1);
HUD= CreateHudSyncObj()
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Premium] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
czas[id] = 10;
entity_set_float(id, EV_FL_gravity, 400.0/800.0);
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
is_spy[id] = false;
entity_set_float(id, EV_FL_gravity, 1.0);
ma_klase[id] = false;
public Spawn(id)
{
if(is_spy[id])
{
przez[id]=255
remove_task(id + 9823)
remove_task(id + PASEK)
jest_niewidzialny[id]=false;
czas[id] = 10;
}
}
public client_PreThink(id)
{
if(!is_user_alive(id) || !is_spy[id])
return PLUGIN_CONTINUE;
if((pev(id,pev_button) & IN_ATTACK2) && (pev(id,pev_oldbuttons) & IN_ATTACK2) && czas[id] && jest_niewidzialny[id])
{
remove_task(id + 9823)
remove_task(id+PASEK)
remove_task(id+PASEK_LAD)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
przez[id] = 255;
if(czas[id]<10)
set_task(2.0,"LadowaniePaska",id+PASEK_LAD)
}
if((pev(id,pev_button) & IN_ATTACK2) && (pev(id,pev_oldbuttons) & IN_ATTACK2) && czas[id] && !jest_niewidzialny[id])
{
remove_task(id+PASEK_LAD)
remove_task(id+PASEK)
remove_task(id + 9823)
set_task(0.1,"niewidzialny",id + 9823)
}
if((pev(id,pev_button) & IN_ATTACK) && (jest_niewidzialny[id]))
{
if(task_exists(id + 9823))
remove_task(id + 9823)
remove_task(id+PASEK)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
przez[id] = 255;
jest_niewidzialny[id]=false;
if(czas[id]<10)
set_task(1.0,"LadowaniePaska",id+PASEK_LAD)
}
return PLUGIN_CONTINUE;
}
public TakeDmg(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker))
return HAM_IGNORED;
if(!is_spy[idattacker])
return HAM_IGNORED;
new health = get_user_health(this);
new weapon = get_user_weapon(idattacker);
if(health < 2)
return HAM_IGNORED;
if(weapon == CSW_KNIFE && !UTIL_In_FOV(this, idattacker) && UTIL_In_FOV(idattacker, this))
damage=float(health);
SetHamParamFloat(4, damage);
return HAM_IGNORED;
}
public niewidzialny(id)
{
id-=9823;
if(przez[id]>0)
{
przez[id]-=15;
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, przez[id]);
set_task(0.1,"niewidzialny",id + 9823)
}
else
{
client_print(id,print_center,"Jestes niewidzialny")
remove_task(id + 9823)
jest_niewidzialny[id]=true;
set_task(1.0,"CzasFun",id+PASEK)
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public CzasFun(id)
{
id-=PASEK;
if(czas[id]!=0)
{
czas[id]-=1;
set_task(1.0,"CzasFun",id+PASEK)
}
else
{
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
przez[id] = 255;
jest_niewidzialny[id]=false;
remove_task(id+PASEK)
set_task(2.0,"LadowaniePaska",id+PASEK_LAD)
}
}
public LadowaniePaska(id)
{
id-=PASEK_LAD;
jest_niewidzialny[id]=false;
if(czas[id]<10)
{
czas[id]++
set_task(1.0,"LadowaniePaska",id+PASEK_LAD)
}
else
remove_task(id+PASEK_LAD)
}
public PokazPasek(id)
{
if(!is_user_alive(id) || !is_spy[id])
return PLUGIN_CONTINUE;
if(czas[id]<4)
set_hudmessage(255, 0, 0, 0.03, 0.6, 0, 0.0, 0.3, 0.0, 0.0);
else
set_hudmessage(0, 255, 0, 0.03, 0.6, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, HUD,"Spy^n[------%d-----]",czas[id])
return PLUGIN_CONTINUE;
}
//Kod wziety CodMod.
stock bool:UTIL_In_FOV(id,target)
{
if (Find_Angle(id,target,9999.9) > 0.0)
return true;
return false;
}
stock Float:Find_Angle(Core,Target,Float:dist)
{
new Float:vec2LOS[2];
new Float:flDot;
new Float:CoreOrigin[3];
new Float:TargetOrigin[3];
new Float:CoreAngles[3];
pev(Core,pev_origin,CoreOrigin);
pev(Target,pev_origin,TargetOrigin);
if (get_distance_f(CoreOrigin,TargetOrigin) > dist)
return 0.0;
pev(Core,pev_angles, CoreAngles);
for ( new i = 0; i < 2; i++ )
vec2LOS[i] = TargetOrigin[i] - CoreOrigin[i];
new Float:veclength = Vec2DLength(vec2LOS);
//Normalize V2LOS
if (veclength <= 0.0)
{
vec2LOS[0] = 0.0;
vec2LOS[1] = 0.0;
}
else
{
new Float:flLen = 1.0 / veclength;
vec2LOS[0] = vec2LOS[0]*flLen;
vec2LOS[1] = vec2LOS[1]*flLen;
}
//Do a makevector to make v_forward right
engfunc(EngFunc_MakeVectors,CoreAngles);
new Float:v_forward[3];
new Float:v_forward2D[2];
get_global_vector(GL_v_forward, v_forward);
v_forward2D[0] = v_forward[0];
v_forward2D[1] = v_forward[1];
flDot = vec2LOS[0]*v_forward2D[0]+vec2LOS[1]*v_forward2D[1];
if ( flDot > 0.5 )
{
return flDot;
}
return 0.0;
}
stock Float:Vec2DLength( Float:Vec[2] )
{
return floatsqroot(Vec[0]*Vec[0] + Vec[1]*Vec[1] );
}
public fwSpawn_Grawitacja(id)
{
if(ma_klase[id])
entity_set_float(id, EV_FL_gravity, 800.0/800.0);
}
Czy mógłby ktoś to naprawić ? Będę bardzo wdzięczny i oczywiście będą .
Użytkownik Proxma edytował ten post 10.01.2012 17:09