Witam
Perk moim zdaniem dziwnie działa, u siebie jako gracza steam działa w porządku.
Aktywuje się i nagle perka nie mam, nie niszczy się od razu a o go wyrzuca.
Natomiast gdy gracz NS go zdobędzie raz uruchomi i następnym razem również może, plugin u takiego po prostu nie traci na wytrzymałości oraz nie znika u gracza.
/wyrzuc drop nie reaguje.
o co może chodzić?
/* Klasa stworzona przy pomocy AMXX-Studio */
#include <amxmodx>
#include <codmod>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#define MAX 32
new const perk_name[] = "Atomowka";
new const perk_desc[] = "Po uzyciu zabija wszystkich na mapie i znika";
new ma_perk[33];
new bool:nuke_player[MAX+1];
new ZmienKilla[2];
public plugin_init(){
register_plugin(perk_name, "1.0", "Trikolos")
cod_register_perk(perk_name, perk_desc);
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
}
public plugin_precache(){
precache_sound("mw/nuke_friend.wav");
precache_sound("mw/nuke_enemy.wav");
}
public cod_perk_enabled(id)
ma_perk[id] = true;
public cod_perk_disabled(id)
ma_perk[id] = false;
public cod_perk_used(id){
if (is_user_alive(id))
{
UzyjChemi(id);
}
}
public UzyjChemi(id){
new num, players[32];
get_players(players, num, "gh");
for(new a = 0; a < num; a++)
{
new i = players[a];
if(is_user_alive(i))
Display_Fade(i,(10<<12),(10<<12),(1<<16),255, 42, 42,171);
if(get_user_team(id) != get_user_team(i))
client_cmd(i, "spk sound/mw/nuke_enemy.wav");
else
client_cmd(i, "spk sound/mw/nuke_friend.wav");
}
new nick[64];
get_user_name(id, nick, 63);
set_hudmessage(255, 0, 0, -1.0, 0.25, 0, 6.0, 7.0);
show_hudmessage(0, "Gracz %s uruchomil Bombe Atomowa!!!", nick);
set_task(10.0,"shakehud");
set_task(13.5,"del_nuke", id);
set_task(1.0, "wyrzuc", id)
}
public shakehud(){
new num, players[32];
get_players(players, num, "gh");
for(new a = 0; a < num; a++)
{
new i = players[a];
if(is_user_alive(i))
{
Display_Fade(i,(3<<12),(3<<12),(1<<16),255, 85, 42,215);
message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, i);
write_short(255<<12);
write_short(4<<12);
write_short(255<<12);
message_end();
}
}
}
public del_nuke(id){
new num, players[32];
get_players(players, num, "gh");
for(new a = 0; a < num; a++)
{
new i = players[a];
if(is_user_alive(i))
{
if(get_user_team(id) != get_user_team(i))
{
cs_set_user_armor(i, 0, CS_ARMOR_NONE);
UTIL_Kill(id, i, float(get_user_health(i)), DMG_BULLET)
}
else
user_silentkill(i);
}
}
nuke_player[id] = false;
}
stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha){
message_begin(MSG_ONE, get_user_msgid("ScreenFade"),{0,0,0},id);
write_short(duration);
write_short(holdtime);
write_short(fadetype);
write_byte(red);
write_byte(green);
write_byte(blue);
write_byte(alpha);
message_end();
}
stock UTIL_Kill(atakujacy, obrywajacy, Float:damage, damagebits, ile=0){
ZmienKilla[ile] |= (1<<atakujacy);
ExecuteHam(Ham_TakeDamage, obrywajacy, atakujacy, atakujacy, damage, damagebits);
ZmienKilla[ile] &= ~(1<<atakujacy);
}
public message_DeathMsg(){
new killer = get_msg_arg_int(1);
if(ZmienKilla[0] & (1<<killer))
{
set_msg_arg_string(4, "grenade");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public wyrzuc(id)
{
client_cmd(id, "say /drop")
}


Dodatki SourceMod












