Написах си този плъгин сам ама е доста бъгав.
Ако може разгледайте го и ми кажете какво не е наред и каква оптимизация му е нужна.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#define PLUGIN "My Bomb Rules"
#define VERSION "1.0"
#define AUTHOR "mount4"
#define SPEED 350.0
new Float:speed = 1000.0
#define Ham_Player_ResetMaxSpeed Ham_Item_PreFrame
new predatel_id
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "event_roundstart", "a", "1=0", "2=0") // round start event
register_logevent("makeThemNormals", 2, "1=Round_Start") // freeze end event
RegisterHam(Ham_Player_ResetMaxSpeed,"player","playerResetMaxSpeed",1)
register_event("TextMsg", "bomb_planted", "a", "2&%!MRAD_BOMBPL") // bomb planted event
register_logevent("makeThemGods", 2, "1=Round_End") // round end event
RegisterHam(Ham_Spawn, "player", "give_c4", 1) // give them bombs
register_event("BarTime", "event_startDefusion", "be", "1=5", "1=10")
register_clcmd("say /awp","give_awp")
ColorMessage(0, "^1[^4godmode^1] ^3~ ^4on")
}
/*public client_putinserver(id)
{
set_user_health(id, 125)
set_user_armor(id, 125)
}*/
public event_roundstart(id)
{
switch(cs_get_user_team(id))
{
case CS_TEAM_T: cs_set_user_team(id, CS_TEAM_CT)
case CS_TEAM_CT: cs_set_user_team(id, CS_TEAM_T)
}
makeThemGods(id)
}
public makeThemGods(id)
{
speed = 1000.0
set_pev(id, pev_maxspeed, speed)
ColorMessage(0, "^1[^4godmode^1] ^3~ ^4on")
give_c4(id)
set_pev(id,pev_health,999.0)
set_pev(id,pev_armorvalue,255.0)
}
public makeThemNormals(id)
{
speed = SPEED
set_pev(id, pev_maxspeed, speed)
ColorMessage(0, "^1[^4godmode^1] ^3~ ^4off")
set_pev(id,pev_health,125.0)
set_pev(id,pev_armorvalue,125.0)
}
public playerResetMaxSpeed(id)
{
if(is_user_alive(id))
{
set_pev(id, pev_maxspeed, speed)
}
}
public bomb_planted(id)
{
give_c4(id)
set_user_health(id, 250)
set_user_armor(id, 250)
if( cs_get_user_team(id) == CS_TEAM_CT )
{
new player_name[255];
get_user_name(id, player_name, 255);
speed = 54.6;
set_pev(id, pev_maxspeed, speed)
cs_set_user_money(id,0)
ColorMessage(0, "^1[^4c4^1] ^3~ ^4Igrach ^3%s ^4beshe zamrazen zashtoto e CT a zaloji bombata !", player_name);
predatel_id = id
} else
{
cs_set_user_money(id, cs_get_user_money(id) + 1000);
}
}
public event_startDefusion(id)
{
if(id == predatel_id)
{
new player_name[255];
get_user_name(id, player_name, 255);
user_kill(id)
ColorMessage(0, "^1[^4c4^1] ^3~ ^4Igrach ^3%s ^4beshe ubit zashtoto se opita da obezwredi bombata koqto zaloji.", player_name);
}
}
public give_c4(id)
{
if(user_has_weapon(id, CSW_C4))
return;
give_item(id, "weapon_c4");
cs_set_user_plant(id, 1);
set_pev(id, pev_body, 1)
}
public give_awp(id)
{
give_item(id,"weapon_awp")
give_item(id,"weapon_deagle")
cs_set_user_bpammo(id, CSW_AWP, 30)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
new player_name[255];
get_user_name(id, player_name, 255);
ColorMessage(0, "^1[^4awp^1] ^3~ ^4Igrach ^3%s ^4si kupi FREE AWP !", player_name);
}
/* START - ColorChat */
stock ColorMessage(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[ 191 ];
vformat(msg, 190, input, 3);
if (id) players[0] = id; else get_players(players , count , "ch");
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE , get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
/* END - ColorChat */
Код за потвърждение: Избери целия код
L 11/04/2016 - 23:43:49: [AMXX] Displaying debug trace (plugin "my_bomb_rules.amxx")
L 11/04/2016 - 23:43:49: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 11/04/2016 - 23:43:49: [AMXX] [0] 2en2cpo3.sma.p::event_roundstart (line 47)
L 11/04/2016 - 23:43:46: [AMXX] Displaying debug trace (plugin "my_bomb_rules.amxx")
L 11/04/2016 - 23:43:46: [AMXX] Run time error 10: native error (native "user_has_weapon")
L 11/04/2016 - 23:43:46: [AMXX] [0] 2en2cpo3.sma.p::give_c4 (line 123)
L 11/04/2016 - 23:43:46: [AMXX] [1] 2en2cpo3.sma.p::makeThemGods (line 60)
- Другия е че трябва да променя отборите с cs_set_user_team а това въобще нестава. (само когато го сложа в player spawn евент функцията и тогава прави всички играчи терористи.)
- Не сетва health & armor освен когато заложиш бомба.
- като сложа да ти дава спийд за няколко секунди в player spawn event func-та става така че както си играеш изведнъж ти дава спийд отнищото
- сигурно има още други bugs които непомня ...
Имам още 1 написан плъгин който работи перф но спами в конзолата грешки като този. Ще ви го дам и него да го погледнете, по-елементарен е (отваря motd при join в отбор).
И още 1 който намерих в интернет и редактирах. При него става същото работи перф но спами грешки.