Chciałem połączyć oba mody w klasie CoD, niby wszystko gra, kompiluje się, klasa działa, ale nie do końca. Podczas działania "speciala" powinna wysyłać od wrogów okręgi a tego nie robi ;< Pomoże ktoś?
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <specialconst>
#include <colorchat>
new gSpriteWhite;
new gPcvarRadius = 600;
new gPcvarBright = 192;
new const nazwa[] = "Zawodowiec";
new const opis[] = "4int(+1% do szybkosci strzelania). Special: Widzi okregi wychodzace z przeciwnikow.";
new const bronie = (1<<CSW_M4A1);
new const zdrowie = 20;
new const kondycja = 5;
new const inteligencja = 0
new const wytrzymalosc = 0;
new cvar_ilosc_special;
new bool:ma_klase[33];
new ma_special[33];
new bool:special_uzyty[33];
new msg_bartime;
public plugin_init()
{
register_plugin(nazwa, "1.0", "Eustachy8");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("ResetHUD", "ResetHUD", "abe");
cvar_ilosc_special = register_cvar("special_ilosc", "2");
register_clcmd("special", "class_special_used");
msg_bartime = get_user_msgid("BarTime")
register_event("CurWeapon","eventCurWeapon", "b");
}
public plugin_precache()
{
precache_model("sprites/white.spr");
gSpriteWhite = precache_model("sprites/white.spr")
}
public cod_class_enabled(id)
{
new ilosc_special = get_pcvar_num(cvar_ilosc_special);
ma_klase[id] = true;
ma_special[id] = ilosc_special;
special_uzyty[id] = false;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
ma_special[id] = 0;
special_uzyty[id] = false;
}
public eventCurWeapon(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
new iWeapon = get_user_weapon(id);
new iEnt;
static Float:fSpeedMultiplier;
if (1.0-(cod_get_user_intelligence(id)/400.0) <= 0)
fSpeedMultiplier = 0.01
else
fSpeedMultiplier = 1.0-(cod_get_user_intelligence(id)/400.0);
if(iWeapon == CSW_M4A1)
{
iEnt = fm_find_ent_by_owner(-1, "weapon_m4a1", id)
set_pdata_float( iEnt, 46, ( get_pdata_float(iEnt, 46, 4) * fSpeedMultiplier), 4 );
set_pdata_float( iEnt, 47, ( get_pdata_float(iEnt, 47, 4) * fSpeedMultiplier), 4 );
}
return PLUGIN_HANDLED;
}
// SPECIAL
public class_special_used(id)
{
if(!is_user_connected(id))
return;
if(!ma_klase[id])
return;
if(!ma_special[id])
{
ColorChat(id, GREEN, "Wykorzystales juz speciale.");
return;
}
if(special_uzyty[id])
{
ColorChat(id, GREEN, "Special jest juz wlaczony.");
return;
}
ma_special[id] -= 1;
special_uzyty[id] = true;
ColorChat(id, GREEN, "Special on.");
set_bartime(id, 10);
set_task(2.0, "daredevil_esploop", id, _, _, "b")
set_task(10.0, "WylaczSpecial", id);
ShowAmmo(id);
}
public daredevil_esploop(id)
{
if (!special_uzyty[id])
{
return;
}
static players[33], playerCount, player
static idRing, ringOrigin[3], i, j
static radius, brightness
radius = gPcvarRadius
brightness =gPcvarBright
for ( j = 0; j < playerCount; j++ )
{
idRing = players[j]
if ( !idRing == id )
{
return;
}
if ( get_user_origin(idRing, ringOrigin) )
{
return;
}
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, ringOrigin, id)
write_byte(TE_BEAMCYLINDER) // 21
write_coord(ringOrigin[0])
write_coord(ringOrigin[1])
write_coord(ringOrigin[2] + 16)
write_coord(ringOrigin[0])
write_coord(ringOrigin[1])
write_coord(ringOrigin[2] + radius)
write_short(gSpriteWhite)
write_byte(0) // startframe
write_byte(1) // framerate
write_byte(6) // life
write_byte(8) // width
write_byte(1) // noise
write_byte(100) // r
write_byte(100) // g
write_byte(255) // b
write_byte(brightness) // brightness
write_byte(0) // speed
message_end()
}
}
// SPECIAL
public WylaczSpecial(id)
{
special_uzyty[id] = false;
ColorChat(id, GREEN, "Special off");
}
public set_bartime(id, czas)
{
message_begin(MSG_ONE, msg_bartime, _, id);
write_short(czas);
message_end();
}
public ResetHUD(id)
{
new ilosc_special = get_pcvar_num(cvar_ilosc_special);
ma_special[id] = ilosc_special;
special_uzyty[id] = false;
ShowAmmo(id);
}
ShowAmmo(id)
{
new ilosc_special = get_pcvar_num(cvar_ilosc_special);
new ammo[51]
formatex(ammo, 50, "Liczba speciali: %i/%i",ma_special[id], ilosc_special)
message_begin(MSG_ONE, get_user_msgid("StatusText"), {0,0,0}, id)
write_byte(0)
write_string(ammo)
message_end()
}
// +special by Eustachy8
Załączone pliki
Użytkownik Eustachy8 edytował ten post 01.04.2012 10:40


Dodatki SourceMod




codclass_zawodowiec_s.amxx









