Klasa posiadająca Miny i Rakiety.
dasiek
07.04.2012
Klasa Posiada miny i rakiety. Zmienia się item klawiszem X(radio2) a korzysta z itemu klawiszem E (use)
Kod Klasy. Sma w Załączniku.
new const nazwa[] = "Saper z Bazookom"; new const opis[] = "Mp5Navy Ma Miny i rakiety"; new const bronie = 1<<CSW_MP5NAVY; new const zdrowie = 0; new const kondycja = 10; new const inteligencja = 0; new const wytrzymalosc = 5;
Kod Klasy. Sma w Załączniku.
Spoiler
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
register_clcmd("say /day","cod_class_enabled");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
precache_sound("weapons/rocketfire1.wav")
precache_sound("weapons/mine_charge.wav")
precache_sound("weapons/mine_deploy.wav");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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);
emit_sound(Ent, CHAN_WEAPON, "weapons/rocketfire1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
VelocityByAim(id, 1000 , Velocity);
entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
set_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
emit_sound( ent, CHAN_VOICE, "weapons/mine_deploy.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
emit_sound( ent, CHAN_BODY , "weapons/mine_charge.wav", 0.2, ATTN_NORM, 0, PITCH_NORM );
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
register_clcmd("say /day","cod_class_enabled");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
precache_sound("weapons/rocketfire1.wav")
precache_sound("weapons/mine_charge.wav")
precache_sound("weapons/mine_deploy.wav");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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);
emit_sound(Ent, CHAN_WEAPON, "weapons/rocketfire1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
VelocityByAim(id, 1000 , Velocity);
entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
set_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
emit_sound( ent, CHAN_VOICE, "weapons/mine_deploy.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
emit_sound( ent, CHAN_BODY , "weapons/mine_charge.wav", 0.2, ATTN_NORM, 0, PITCH_NORM );
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
Załączone pliki
-
klasa_saperzbazookom.sma 7,33 KB
151 Ilość pobrań
-
klasa_saperzbazookom.sma 7,33 KB
87 Ilość pobrań
Malinaaa.
09.04.2012
jak zmienic klawisz ustawiania co sie chce uzyc?
np z "X" na "T" czy cos innego
a tak poza tym to ciekawa klasa![:]](https://amxx.pl/public/style_emoticons/default/cwaniak.gif)
+ za starania i pomysl
np z "X" na "T" czy cos innego
a tak poza tym to ciekawa klasa
+ za starania i pomysl
dasiek
09.04.2012
@Malinaa - w sma klasy masz register_clcmd("radio 2","Zmiana") masz klawisz na zmiane. Radio 2 to domyślnie X więc to działa na tej zasadzie. jeśli dasz binda na klawisz t pod jakąś komendą zamiast radio 2 które będzie odsyłało do publica Zmiana - zmiana nastąpi
Jerem96
11.04.2012
Mógłby ktoś to zrobić jako poradnik?
Znaczy jak dodać do klasy na raz miny/rakiety/dynamity/apteczki.
Z góry byłbym wdzięczny:)
Znaczy jak dodać do klasy na raz miny/rakiety/dynamity/apteczki.
Z góry byłbym wdzięczny:)
Jerem96
29.04.2012
Jest 1 bug.
Po wykorzystaniu min i rakiet w następnej rundzie jeżeli przeżyjemy nie dostajemy znowu.
Tak samo po zabiciu.
Po wykorzystaniu min i rakiet w następnej rundzie jeżeli przeżyjemy nie dostajemy znowu.
Tak samo po zabiciu.
dasiek
29.04.2012
Spoiler
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
register_clcmd("say /day","cod_class_enabled");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
precache_sound("weapons/rocketfire1.wav")
precache_sound("weapons/mine_charge.wav")
precache_sound("weapons/mine_deploy.wav");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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);
emit_sound(Ent, CHAN_WEAPON, "weapons/rocketfire1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
VelocityByAim(id, 1000 , Velocity);
entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
set_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
emit_sound( ent, CHAN_VOICE, "weapons/mine_deploy.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
emit_sound( ent, CHAN_BODY , "weapons/mine_charge.wav", 0.2, ATTN_NORM, 0, PITCH_NORM );
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
register_clcmd("say /day","cod_class_enabled");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
precache_sound("weapons/rocketfire1.wav")
precache_sound("weapons/mine_charge.wav")
precache_sound("weapons/mine_deploy.wav");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 3;
ilosc_min_gracza[id] = 3;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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);
emit_sound(Ent, CHAN_WEAPON, "weapons/rocketfire1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
VelocityByAim(id, 1000 , Velocity);
entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
set_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
emit_sound( ent, CHAN_VOICE, "weapons/mine_deploy.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
emit_sound( ent, CHAN_BODY , "weapons/mine_charge.wav", 0.2, ATTN_NORM, 0, PITCH_NORM );
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
Poprawiona wersja w spilerze tu
cewix
17.07.2012
Witam ,ogólnie to sam nie potrafiłem zrobić klasy z 2 umkami ,to sobie przerobiłem tą ,na taką jaką ja chce ,tylko problem jest taki ,że ogolnie są dziwne ścieżki ,wymagane dziwne dźwięki ,no ale zainstalowałem je ,wszedłem normalnie na klase ,wszystko to co ja dorobiłem działało ,oczywiście zmiana umki działała ,rakieta działała, a kiedy użyłem miny to wywalało z serva i pisało "server shutting down".
Sprawdziłem ,też ,czy klasa działa normalnie ,bez żadnych przeróbek ,ale niestety też nie, i mam taką prośbe ,mógłbyś mi przerobić to co masz w taki sposób aby były 2 miny i 1 rakieta ,usunąc niepotrzebne dźwięki i sprawdzić ,czy klasa na pewno będzie sprawnie działać. Z góry dziękuję ,oraz plusik za fatyge (tak wiem ,że to mało ,no ale cóż..).
Sprawdziłem ,też ,czy klasa działa normalnie ,bez żadnych przeróbek ,ale niestety też nie, i mam taką prośbe ,mógłbyś mi przerobić to co masz w taki sposób aby były 2 miny i 1 rakieta ,usunąc niepotrzebne dźwięki i sprawdzić ,czy klasa na pewno będzie sprawnie działać. Z góry dziękuję ,oraz plusik za fatyge (tak wiem ,że to mało ,no ale cóż..).
dasiek
17.07.2012
Proszę. Jeśli nie będzie działać daj logi.
Spoiler
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
siem
30.05.2013
Zrobisz klase ktora ma 3apteczki (klawisz z) i 2 rakiety (klawisz e) i jest ma bullupa oraz jest od 300poziomu?
Zrobisz klase ktora ma 3apteczki (klawisz z) i 2 rakiety (klawisz e) i jest
ma bullupa oraz jest od 300poziomu?
Proszę. Jeśli nie będzie działać daj logi.
Spoiler#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
Proszę. Jeśli nie będzie działać daj logi.
Spoiler#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
Zrobisz klase ktora ma 3apteczki (klawisz z) i 2 rakiety (klawisz e) i jest
ma bullupa oraz jest od 300poziomu?
dasiek
30.05.2013
Zrobisz klase ktora ma 3apteczki (klawisz z) i 2 rakiety (klawisz e) i jest ma bullupa oraz jest od 300poziomu?
Proszę. Jeśli nie będzie działać daj logi.
Spoiler#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}Zrobisz klase ktora ma 3apteczki (klawisz z) i 2 rakiety (klawisz e) i jestProszę. Jeśli nie będzie działać daj logi.
Spoiler#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <colorchat>
#include <engine>
#include <fakemeta>
#define SMOKETRAIL_RATE 0.2
new bool:ma_klase[33];
new const nazwa[] = "Saper z Bazookom";
new const opis[] = "Mp5Navy Ma Miny i rakiety";
new const bronie = 1<<CSW_MP5NAVY;
new const zdrowie = 0;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 5;
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new bool:ma_rakiety[33];
new bool:ma_miny[33];
new sprite_blast;
new HUD;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
register_touch("Rocket", "*" , "DotykRakiety");
register_think("Rocket","rocketThink")
register_touch("Mine", "player", "DotykMiny");
register_forward(FM_EmitSound, "EmitSound");
register_clcmd("radio2", "Zmiana");
HUD = CreateHudSyncObj();
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl")
precache_model("models/mine.mdl");
}
public Odrodzenie(id)
{
if(ma_klase[id])
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
}
}
public cod_class_enabled(id)
{
ilosc_rakiet_gracza[id] = 1;
ilosc_min_gracza[id] = 2;
ma_miny[id] = true;
ma_rakiety[id] = false;
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ilosc_rakiet_gracza[id] = 0;
ilosc_min_gracza[id] = 0;
ma_miny[id] = false;
ma_rakiety[id] = false;
ma_klase[id] = false;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
if(ma_rakiety[id])
{
StworzRakiete(id)
return FMRES_IGNORED;
}
if(ma_miny[id])
{
PostawMine(id)
return FMRES_IGNORED;
}
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public StworzRakiete(id)
{
if(!ma_rakiety[id] || !ma_klase[id])
return PLUGIN_CONTINUE;
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[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/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_pev(Ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
}
return PLUGIN_CONTINUE;
}
public rocketThink(ent){
if(!pev_valid(ent)){
return PLUGIN_CONTINUE;
}
new Float:origin[3]
pev(ent, pev_origin, origin)
engfunc(EngFunc_PlaybackEvent, 0, ent, 26, 0.0, origin, Float:{0.0, 0.0, 0.0}, 5.0, 5.0, 0, 2, 0, 0);
set_pev(ent, pev_nextthink, get_gametime() + SMOKETRAIL_RATE)
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0 , 1);
}
remove_entity(ent);
}
public PostawMine(id)
{
if(!ma_klase[id] || !ma_miny[id])
return PLUGIN_CONTINUE;
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
ilosc_min_gracza[id]--;
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
drop_to_floor(ent);
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
return PLUGIN_CONTINUE;
}
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
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); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.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;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0 , 1);
}
remove_entity(ent);
}
}
public Zmiana(id)
{
if(!ma_klase[id])
return PLUGIN_HANDLED;
set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0);
if(ma_miny[id])
{
ma_miny[id] = false;
ma_rakiety[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Rakieta[%i]",ilosc_rakiet_gracza[id]);
return PLUGIN_HANDLED;
}
if(ma_rakiety[id])
{
ma_rakiety[id] = false;
ma_miny[id] = true;
ShowSyncHudMsg(id, HUD, "Item:Mina[%i]",ilosc_min_gracza[id]);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
ma bullupa oraz jest od 300poziomu?
nie ale jest odpowiedni działa na to.
SAL
30.05.2013
colorchat chyba jest w tym niepotrzebny
chyba ze niedostrzeglem jakiejs funkcji




