Witam.
Próbuję zrobić aby na nożu ładował się pasek 'BarTime', po załadowaniu się paska zostaje wystrzelona rakieta.
Mój kod:
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#define TIME 5.0
#define UNIKAT 2013
new const nazwa[] = "Mag";
new const opis[] = "testr";
new const bronie = 1<<CSW_UMP45;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new ma_klase[33];
new sprite_blast;
new msgBarTime;
public plugin_init()
{
register_plugin(nazwa, "1.0", "PyRaa");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("CurWeapon", "knife", "be", "1=1");
register_touch("rocket", "*" , "DotykRakiety");
RegisterHam(Ham_Spawn, "player", "fwSpawn_Rakiety", 1);
msgBarTime = get_user_msgid("BarTime");
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/csas/cod/dexplo.spr");
precache_model("models/csas/cod/rpgrocket.mdl");
}
public cod_class_enabled(id)
{
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public client_disconnect(id)
{
new entRakiety = find_ent_by_class(0, "rocket");
while(entRakiety > 0)
{
if(entity_get_edict(entRakiety, EV_ENT_owner) == id)
remove_entity(entRakiety);
entRakiety = find_ent_by_class(entRakiety, "rocket");
}
}
public knife(id)
{
if(ma_klase[id])
{
if(read_data(2) == CSW_KNIFE)
{
if(!task_exists(id+UNIKAT))
{
new data[1];
data[0] = id;
bartime(id, floatround(TIME))
set_task(TIME, "cod_class_skill_used", id+UNIKAT, data, 1)
}
}
else
{
if(task_exists(id+UNIKAT))
{
remove_task(id+UNIKAT);
bartime(id, 0);
}
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}
}
}
public cod_class_skill_used(id)
{
if (is_user_alive(id))
{
new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
entity_get_vector(id, EV_VEC_v_angle, vAngle);
entity_get_vector(id, EV_VEC_origin , Origin);
new Ent = create_entity("info_target");
entity_set_string(Ent, EV_SZ_classname, "rocket");
entity_set_model(Ent, "models/csas/cod/rpgrocket.mdl");
vAngle[0] *= -1.0;
entity_set_origin(Ent, Origin);
entity_set_vector(Ent, EV_VEC_angles, vAngle);
entity_set_int(Ent, EV_INT_effects, 2);
entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
entity_set_edict(Ent, EV_ENT_owner, id);
VelocityByAim(id, 1000 , Velocity);
entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
set_hudmessage(255, 255, 0, -1.0, 0.2, 0, 6.0, 3.0)
show_hudmessage(id, "[Mag] Wyczarowales fireboll'a")
}
}
public DotykRakiety(ent)
{
if (!is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3];
entity_get_vector(ent, EV_VEC_origin, fOrigin);
new iOrigin[3];
for(new i=0;i<3;i++)
iOrigin[i] = floatround(fOrigin[i]);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32);
write_byte(20);
write_byte(0);
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 190.0, entlist, 32);
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
continue;
cod_inflict_damage(attacker, pid, 55.0, 0.9, ent, (1<<24));
}
remove_entity(ent);
}
stock bartime(id, czas)
{
message_begin(MSG_ONE_UNRELIABLE, msgBarTime, .player = id);
write_short(czas);
message_end();
}
Logi:
L 12/04/2016 - 11:50:13: Plugin called message_begin with an invalid message id (0). L 12/04/2016 - 11:50:13: [AMXX] Displaying debug trace (plugin "codclass_testmaga.amxx") L 12/04/2016 - 11:50:13: [AMXX] Run time error 10: native error (native "message_begin") L 12/04/2016 - 11:50:13: [AMXX] [0] codclass_testmaga.sma::bartime (line 165) L 12/04/2016 - 11:50:13: [AMXX] [1] codclass_testmaga.sma::knife (line 65)
Użytkownik 1stADXionC edytował ten post 04.12.2016 12:12


Dodatki SourceMod



Temat jest zamknięty









