Проблем с Go Spec плъгин-а на OciXCrom
-
southdivision
Извън линия - Потребител
- Мнения: 279
- Регистриран на: 14 Окт 2016, 23:17
- Местоположение: София
- Се отблагодари: 8 пъти
- Получена благодарност: 5 пъти
- Обратна връзка:
Проблем с Go Spec плъгин-а на OciXCrom
Проблема,е че когато си влезна в сървъра и си избера да бъда Spectator и напиша /back ме възражда,нo не изписва долу в ляво нито кръвта нито колко броня имам (Празно е)
-
aLbaShaRe
Извън линия - Потребител
- Мнения: 58
- Регистриран на: 10 Окт 2016, 20:17
- Се отблагодари: 1 път
Re: Проблем с Go Spec плъгин-а на OciXCrom
Изпробвай този
Има префикси [DeaThmach] можеш да си ги редактираш. Преди да компилираш.
Код за потвърждение: Избери целия код
/* Script generated by Pawn Studio */
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "Spec Switch"
#define AUTHOR "many"
#define VERSION "0.2.2"
#define EXTRAOFFSET 5
#define OFFSET_TEAM 114
#define OFFSET_INTERALMODEL 126
#define OFFSET_BOMB_DEFUSE 193
#define HAS_DEFUSE_KIT (1<<16)
#define BAD_WEAPONS ( ( 1 << CSW_KNIFE ) | ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << 2 ) )
enum ColorChatType
{
NORMAL = 1, // clients con_color cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
};
new g_weaponconst[][] =
{
"", // NULL
"weapon_p228", "weapon_shield", "weapon_scout", "weapon_hegrenade",
"weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug",
"weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45",
"weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18",
"weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1",
"weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle",
"weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90"
};
new g_CvarSpecMode;
new Float:g_origin[33][3];
new CsTeams:g_team[33];
new g_health[33];
new bool:is_type_spec[33] = false;
new bool:is_type_verify[33] = false;
new spec_wpn[33][32];
new spec_num_wpn[33];
new g_wpn[33]
new g_ammo_amount[33][31]
new data[33][5]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
g_CvarSpecMode = register_cvar("dm_specmode", "2");
/*
1 - enable only for ADMINs
*/
register_clcmd("say /spec", "cmd_spec", ADMIN_ALL, "- go to spectator");
register_clcmd("say_team /spec", "cmd_spec", ADMIN_ALL, "- go to spectator");
register_clcmd("say /back", "cmd_back", ADMIN_ALL, "- go back to your team");
register_clcmd("say_team /back", "cmd_back", ADMIN_ALL, "- go back to your team");
register_clcmd("say", "hook_code")
set_msg_block(get_user_msgid( "ClCorpse" ), BLOCK_SET);
RegisterHam(Ham_Spawn, "player", "fwdPlayerSpawn", 1);
}
public client_connect(id)
{
is_type_spec[id] = false;
is_type_verify[id] = false;
}
public cmd_back(id)
{
if(get_pcvar_num(g_CvarSpecMode) == 1 && !(get_user_flags(id) & ADMIN_CHAT))
ColorChat(id, RED, "^x04[DeathMatch] ^x01Only^x03 Admins/VIP ^x01can use ^x04/spec, /back ^x01command.");
else if(is_type_spec[id] && fm_get_user_team(id) == CS_TEAM_SPECTATOR)
back(id);
return PLUGIN_HANDLED
}
public spec(id)
{
is_type_spec[id] = true;
is_type_verify[id] = false;
g_team[id] = fm_get_user_team(id);
g_wpn[id] = get_user_weapon(id);
pev(id, pev_health, g_health[id]);
pev(id, pev_origin, g_origin[id]);
spec_num_wpn[id] = 0;
arrayset(spec_wpn[id], 0, sizeof(spec_wpn[]));
get_user_weapons(id, spec_wpn[id], spec_num_wpn[id]);
for(new i=0; i<spec_num_wpn[id]; i++)
{
if(!((1<<spec_wpn[id][i]) & BAD_WEAPONS))
{
g_ammo_amount[id][spec_wpn[id][i]] = cs_get_user_bpammo(id, spec_wpn[id][i]);
}
}
fm_strip_user_weapons(id);
set_pev(id, pev_movetype, MOVETYPE_NOCLIP);
set_pev(id, pev_solid, SOLID_NOT);
set_pev(id, pev_effects, EF_NODRAW);
set_pev(id, pev_deadflag, DEAD_DEAD);
set_pev(id, pev_takedamage, DAMAGE_NO);
fm_set_user_team(id, CS_TEAM_SPECTATOR);
ColorChat(id, GREY, "^x04[DeathMatch] ^x01Type ^x04/back^x01 for return from^x03 Spectator^x01.");
}
public back(id)
{
ExecuteHam(Ham_CS_RoundRespawn,id);
}
public fwdPlayerSpawn(id)
{
if(is_type_spec[id])
{
fm_set_user_team(id, g_team[id]);
set_pev(id, pev_origin, g_origin[id]);
set_pev(id, pev_health, g_health[id]);
fm_strip_user_weapons(id);
for(new i=0; i<spec_num_wpn[id]; i++)
{
fm_give_item(id, g_weaponconst[spec_wpn[id][i]]);
if(!((1<<spec_wpn[id][i]) & BAD_WEAPONS))
{
cs_set_user_bpammo(id, spec_wpn[id][i], g_ammo_amount[id][spec_wpn[id][i]])
}
}
engclient_cmd(id, g_weaponconst[g_wpn[id]])
}
is_type_spec[id] = false;
}
public hook_code(id)
{
static text[192];
read_args(text, 191);
remove_quotes(text);
trim(text);
if(!equali(text, "/spec") && is_type_verify[id])
{
if(equal(text, data[id]))
spec(id);
else
ColorChat(id, RED, "^x04[DeathMatch] ^x01Please, try again.");
is_type_verify[id] = false;
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
/* Fakemeta stocks */
stock fm_set_user_team(client, {CsTeams,_}:team, {CsInternalModel,_}:model=CS_DONTCHANGE)
{
new CsTeams:oldteam = fm_get_user_team(client);
if( oldteam != team )
{
switch( oldteam )
{
case CS_TEAM_T:
{
if( is_user_alive(client) && (pev(client, pev_weapons) & (1<<CSW_C4)) )
{
engclient_cmd(client, "drop", "weapon_c4");
}
}
case CS_TEAM_CT:
{
fm_set_user_defuse(client, 0);
}
}
}
set_pdata_int(client, OFFSET_TEAM, _:team, EXTRAOFFSET);
if( model != CS_DONTCHANGE )
{
set_pdata_int(client, OFFSET_INTERALMODEL, _:model, EXTRAOFFSET);
}
dllfunc(DLLFunc_ClientUserInfoChanged, client, engfunc(EngFunc_GetInfoKeyBuffer, client));
static const team_names[CsTeams][] =
{
"UNASSIGNED",
"TERRORIST",
"CT",
"SPECTATOR"
};
static TeamInfo;
if( TeamInfo || (TeamInfo = get_user_msgid("TeamInfo")) )
{
emessage_begin(MSG_BROADCAST, TeamInfo);
ewrite_byte(client);
ewrite_string(team_names[team]);
emessage_end();
}
}
stock CsTeams:fm_get_user_team(client, &{CsInternalModel,_}:model=CS_DONTCHANGE)
{
model = CsInternalModel:get_pdata_int(client, OFFSET_INTERALMODEL, EXTRAOFFSET);
return CsTeams:get_pdata_int(client, OFFSET_TEAM, EXTRAOFFSET);
}
stock fm_set_user_defuse(client, defusekit=1, r=0, g=160, b=0, icon[]="defuser", flash=0)
{
static StatusIcon;
new kit = get_pdata_int(client, OFFSET_BOMB_DEFUSE, EXTRAOFFSET);
if( defusekit && !(kit & HAS_DEFUSE_KIT) )
{
set_pev(client, pev_body, 1);
set_pdata_int(client, OFFSET_BOMB_DEFUSE, (kit | HAS_DEFUSE_KIT), EXTRAOFFSET);
if( StatusIcon || (StatusIcon = get_user_msgid("StatusIcon")) )
{
emessage_begin(MSG_ONE_UNRELIABLE, StatusIcon, _, client);
ewrite_byte((flash == 1) ? 2 : 1);
ewrite_string(icon);
ewrite_byte(r);
ewrite_byte(g);
ewrite_byte(b);
emessage_end();
}
}
else if( !defusekit && (kit & HAS_DEFUSE_KIT) )
{
set_pev(client, pev_body, 0);
set_pdata_int(client, OFFSET_BOMB_DEFUSE, (kit & ~HAS_DEFUSE_KIT), EXTRAOFFSET);
if( StatusIcon || (StatusIcon = get_user_msgid("StatusIcon")) )
{
emessage_begin(MSG_ONE_UNRELIABLE, StatusIcon, _, client);
ewrite_byte(0);
ewrite_string("defuser");
emessage_end();
}
}
}
stock fm_strip_user_weapons(index) {
new ent = fm_create_entity("player_weaponstrip");
if (!pev_valid(ent))
return 0;
dllfunc(DLLFunc_Spawn, ent);
dllfunc(DLLFunc_Use, ent, index);
engfunc(EngFunc_RemoveEntity, ent);
return 1;
}
stock fm_give_item(index, const item[]) {
if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
return 0;
new ent = fm_create_entity(item);
if (!pev_valid(ent))
return 0;
new Float:origin[3];
pev(index, pev_origin, origin);
set_pev(ent, pev_origin, origin);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);
new save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, index);
if (pev(ent, pev_solid) != save)
return ent;
engfunc(EngFunc_RemoveEntity, ent);
return -1;
}
stock fm_create_entity(const classname[])
return engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, classname));
/* Colorchat include */
enum
{
proprint_console = 0,
proprint_center,
proprint_chat,
};
stock ProPrint(id, type, const msg[], {Float,Sql,Result,_}:...)
{
if( (id!=0 && !is_user_connected(id)) || (!get_playersnum() && !id) )
return 0;
new message[192];
vformat(message, 192, msg, 4);
if( id )
engfunc(EngFunc_ClientPrintf, id, clamp(type, 0, 2), message);
else
{
static maxclients;
if( !maxclients )
maxclients = get_maxplayers();
for( new i=1; i<=maxclients; i++ )
{
if( is_user_connected(i) )
engfunc(EngFunc_ClientPrintf, i, clamp(type, 0, 2), message);
}
}
return 1;
}
stock ColorChat(id, ColorChatType:type, const msg[], {Float,Sql,Result,_}:...)
{
if( (id!=0 && !is_user_connected(id)) || (!get_playersnum() && !id) )
return 0;
new message[192], TeamName[4][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
vformat(message[1], 191, msg, 4);
if( message[1]==0x01 || message[1]==0x03 || message[1]==0x04 )
vformat(message, 192, msg, 4);
else
{
switch( type )
{
case NORMAL: message[0] = 0x01; // clients con_color cvar color
case GREEN: message[0] = 0x04; // Green
default: message[0] = 0x03; // White, Red, Blue
}
}
//replace_all(message, 192, "%", "%%");
// Make sure message is not longer than 192 character. Will crash the server.
//message[192] = '^0'; // max len is 192 anyway
static get_user_msgid_saytext;
if( !get_user_msgid_saytext )
get_user_msgid_saytext = get_user_msgid("SayText");
if( id )
{
new ColorChange, team = get_user_team(id);
switch( type )
{
case RED: ColorChange = Team_Info(id, MSG_ONE_UNRELIABLE, TeamName[1]);
case BLUE: ColorChange = Team_Info(id, MSG_ONE_UNRELIABLE, TeamName[2]);
case GREY: ColorChange = Team_Info(id, MSG_ONE_UNRELIABLE, TeamName[0]);
//default: ColorChange = 0;
}
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid_saytext, _, id);
write_byte(id);
write_string(message);
message_end();
if( ColorChange )
Team_Info(id, MSG_ONE_UNRELIABLE, TeamName[team]);
return 1;
}
else
{
static maxclients;
if( !maxclients )
maxclients = get_maxplayers();
if( type!=GREY && type!=RED && type!=BLUE )
{
for( new i=1; i<=maxclients; i++ )
{
if( is_user_connected(i) )
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid_saytext, _, i);
write_byte(i);
write_string(message);
message_end();
}
}
return 1;
}
for( new i=1; i<=maxclients; i++ )
{
if( is_user_connected(i) )
{
new ColorChange, team = get_user_team(i);
switch( type )
{
case RED: ColorChange = Team_Info(i, MSG_ALL, TeamName[1]);
case BLUE: ColorChange = Team_Info(i, MSG_ALL, TeamName[2]);
case GREY: ColorChange = Team_Info(i, MSG_ALL, TeamName[0]);
//default: ColorChange = 0;
}
message_begin(MSG_ALL, get_user_msgid_saytext, _, i);
write_byte(i);
write_string(message);
message_end();
if( ColorChange )
Team_Info(i, MSG_ALL, TeamName[team]);
return 1;
}
}
}
return 0;
}
stock Team_Info(id, type, team[])
{
static get_user_msgid_teaminfo;
if( !get_user_msgid_teaminfo )
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();
return 1;
}
-
southdivision
Извън линия - Потребител
- Мнения: 279
- Регистриран на: 14 Окт 2016, 23:17
- Местоположение: София
- Се отблагодари: 8 пъти
- Получена благодарност: 5 пъти
- Обратна връзка:
Re: Проблем с Go Spec плъгин-а на OciXCrom
Сложих плъгина,но при влизане плъгина изхвърля всички играчи включително и мен от сървъра и изписва BAD .. и още много неща в конзолатаaLbaShaRe написа:Изпробвай тозиИма префикси [DeaThmach] можеш да си ги редактираш. Преди да компилираш.Код за потвърждение: Избери целия код
/* Script generated by Pawn Studio */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <hamsandwich> #define PLUGIN "Spec Switch" #define AUTHOR "many" #define VERSION "0.2.2" #define EXTRAOFFSET 5 #define OFFSET_TEAM 114 #define OFFSET_INTERALMODEL 126 #define OFFSET_BOMB_DEFUSE 193 #define HAS_DEFUSE_KIT (1<<16) #define BAD_WEAPONS ( ( 1 << CSW_KNIFE ) | ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << 2 ) ) enum ColorChatType { NORMAL = 1, // clients con_color cvar color GREEN, // Green Color TEAM_COLOR, // Red, grey, blue GREY, // grey RED, // Red BLUE, // Blue }; new g_weaponconst[][] = { "", // NULL "weapon_p228", "weapon_shield", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" }; new g_CvarSpecMode; new Float:g_origin[33][3]; new CsTeams:g_team[33]; new g_health[33]; new bool:is_type_spec[33] = false; new bool:is_type_verify[33] = false; new spec_wpn[33][32]; new spec_num_wpn[33]; new g_wpn[33] new g_ammo_amount[33][31] new data[33][5] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); g_CvarSpecMode = register_cvar("dm_specmode", "2"); /* 1 - enable only for ADMINs */ register_clcmd("say /spec", "cmd_spec", ADMIN_ALL, "- go to spectator"); register_clcmd("say_team /spec", "cmd_spec", ADMIN_ALL, "- go to spectator"); register_clcmd("say /back", "cmd_back", ADMIN_ALL, "- go back to your team"); register_clcmd("say_team /back", "cmd_back", ADMIN_ALL, "- go back to your team"); register_clcmd("say", "hook_code") set_msg_block(get_user_msgid( "ClCorpse" ), BLOCK_SET); RegisterHam(Ham_Spawn, "player", "fwdPlayerSpawn", 1); } public client_connect(id) { is_type_spec[id] = false; is_type_verify[id] = false; } public cmd_back(id) { if(get_pcvar_num(g_CvarSpecMode) == 1 && !(get_user_flags(id) & ADMIN_CHAT)) ColorChat(id, RED, "^x04[DeathMatch] ^x01Only^x03 Admins/VIP ^x01can use ^x04/spec, /back ^x01command."); else if(is_type_spec[id] && fm_get_user_team(id) == CS_TEAM_SPECTATOR) back(id); return PLUGIN_HANDLED } public spec(id) { is_type_spec[id] = true; is_type_verify[id] = false; g_team[id] = fm_get_user_team(id); g_wpn[id] = get_user_weapon(id); pev(id, pev_health, g_health[id]); pev(id, pev_origin, g_origin[id]); spec_num_wpn[id] = 0; arrayset(spec_wpn[id], 0, sizeof(spec_wpn[])); get_user_weapons(id, spec_wpn[id], spec_num_wpn[id]); for(new i=0; i<spec_num_wpn[id]; i++) { if(!((1<<spec_wpn[id][i]) & BAD_WEAPONS)) { g_ammo_amount[id][spec_wpn[id][i]] = cs_get_user_bpammo(id, spec_wpn[id][i]); } } fm_strip_user_weapons(id); set_pev(id, pev_movetype, MOVETYPE_NOCLIP); set_pev(id, pev_solid, SOLID_NOT); set_pev(id, pev_effects, EF_NODRAW); set_pev(id, pev_deadflag, DEAD_DEAD); set_pev(id, pev_takedamage, DAMAGE_NO); fm_set_user_team(id, CS_TEAM_SPECTATOR); ColorChat(id, GREY, "^x04[DeathMatch] ^x01Type ^x04/back^x01 for return from^x03 Spectator^x01."); } public back(id) { ExecuteHam(Ham_CS_RoundRespawn,id); } public fwdPlayerSpawn(id) { if(is_type_spec[id]) { fm_set_user_team(id, g_team[id]); set_pev(id, pev_origin, g_origin[id]); set_pev(id, pev_health, g_health[id]); fm_strip_user_weapons(id); for(new i=0; i<spec_num_wpn[id]; i++) { fm_give_item(id, g_weaponconst[spec_wpn[id][i]]); if(!((1<<spec_wpn[id][i]) & BAD_WEAPONS)) { cs_set_user_bpammo(id, spec_wpn[id][i], g_ammo_amount[id][spec_wpn[id][i]]) } } engclient_cmd(id, g_weaponconst[g_wpn[id]]) } is_type_spec[id] = false; } public hook_code(id) { static text[192]; read_args(text, 191); remove_quotes(text); trim(text); if(!equali(text, "/spec") && is_type_verify[id]) { if(equal(text, data[id])) spec(id); else ColorChat(id, RED, "^x04[DeathMatch] ^x01Please, try again."); is_type_verify[id] = false; return PLUGIN_HANDLED } return PLUGIN_CONTINUE } /* Fakemeta stocks */ stock fm_set_user_team(client, {CsTeams,_}:team, {CsInternalModel,_}:model=CS_DONTCHANGE) { new CsTeams:oldteam = fm_get_user_team(client); if( oldteam != team ) { switch( oldteam ) { case CS_TEAM_T: { if( is_user_alive(client) && (pev(client, pev_weapons) & (1<<CSW_C4)) ) { engclient_cmd(client, "drop", "weapon_c4"); } } case CS_TEAM_CT: { fm_set_user_defuse(client, 0); } } } set_pdata_int(client, OFFSET_TEAM, _:team, EXTRAOFFSET); if( model != CS_DONTCHANGE ) { set_pdata_int(client, OFFSET_INTERALMODEL, _:model, EXTRAOFFSET); } dllfunc(DLLFunc_ClientUserInfoChanged, client, engfunc(EngFunc_GetInfoKeyBuffer, client)); static const team_names[CsTeams][] = { "UNASSIGNED", "TERRORIST", "CT", "SPECTATOR" }; static TeamInfo; if( TeamInfo || (TeamInfo = get_user_msgid("TeamInfo")) ) { emessage_begin(MSG_BROADCAST, TeamInfo); ewrite_byte(client); ewrite_string(team_names[team]); emessage_end(); } } stock CsTeams:fm_get_user_team(client, &{CsInternalModel,_}:model=CS_DONTCHANGE) { model = CsInternalModel:get_pdata_int(client, OFFSET_INTERALMODEL, EXTRAOFFSET); return CsTeams:get_pdata_int(client, OFFSET_TEAM, EXTRAOFFSET); } stock fm_set_user_defuse(client, defusekit=1, r=0, g=160, b=0, icon[]="defuser", flash=0) { static StatusIcon; new kit = get_pdata_int(client, OFFSET_BOMB_DEFUSE, EXTRAOFFSET); if( defusekit && !(kit & HAS_DEFUSE_KIT) ) { set_pev(client, pev_body, 1); set_pdata_int(client, OFFSET_BOMB_DEFUSE, (kit | HAS_DEFUSE_KIT), EXTRAOFFSET); if( StatusIcon || (StatusIcon = get_user_msgid("StatusIcon")) ) { emessage_begin(MSG_ONE_UNRELIABLE, StatusIcon, _, client); ewrite_byte((flash == 1) ? 2 : 1); ewrite_string(icon); ewrite_byte(r); ewrite_byte(g); ewrite_byte(b); emessage_end(); } } else if( !defusekit && (kit & HAS_DEFUSE_KIT) ) { set_pev(client, pev_body, 0); set_pdata_int(client, OFFSET_BOMB_DEFUSE, (kit & ~HAS_DEFUSE_KIT), EXTRAOFFSET); if( StatusIcon || (StatusIcon = get_user_msgid("StatusIcon")) ) { emessage_begin(MSG_ONE_UNRELIABLE, StatusIcon, _, client); ewrite_byte(0); ewrite_string("defuser"); emessage_end(); } } } stock fm_strip_user_weapons(index) { new ent = fm_create_entity("player_weaponstrip"); if (!pev_valid(ent)) return 0; dllfunc(DLLFunc_Spawn, ent); dllfunc(DLLFunc_Use, ent, index); engfunc(EngFunc_RemoveEntity, ent); return 1; } stock fm_give_item(index, const item[]) { if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10)) return 0; new ent = fm_create_entity(item); if (!pev_valid(ent)) return 0; new Float:origin[3]; pev(index, pev_origin, origin); set_pev(ent, pev_origin, origin); set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN); dllfunc(DLLFunc_Spawn, ent); new save = pev(ent, pev_solid); dllfunc(DLLFunc_Touch, ent, index); if (pev(ent, pev_solid) != save) return ent; engfunc(EngFunc_RemoveEntity, ent); return -1; } stock fm_create_entity(const classname[]) return engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, classname)); /* Colorchat include */ enum { proprint_console = 0, proprint_center, proprint_chat, }; stock ProPrint(id, type, const msg[], {Float,Sql,Result,_}:...) { if( (id!=0 && !is_user_connected(id)) || (!get_playersnum() && !id) ) return 0; new message[192]; vformat(message, 192, msg, 4); if( id ) engfunc(EngFunc_ClientPrintf, id, clamp(type, 0, 2), message); else { static maxclients; if( !maxclients ) maxclients = get_maxplayers(); for( new i=1; i<=maxclients; i++ ) { if( is_user_connected(i) ) engfunc(EngFunc_ClientPrintf, i, clamp(type, 0, 2), message); } } return 1; } stock ColorChat(id, ColorChatType:type, const msg[], {Float,Sql,Result,_}:...) { if( (id!=0 && !is_user_connected(id)) || (!get_playersnum() && !id) ) return 0; new message[192], TeamName[4][] = { "", "TERRORIST", "CT", "SPECTATOR" } vformat(message[1], 191, msg, 4); if( message[1]==0x01 || message[1]==0x03 || message[1]==0x04 ) vformat(message, 192, msg, 4); else { switch( type ) { case NORMAL: message[0] = 0x01; // clients con_color cvar color case GREEN: message[0] = 0x04; // Green default: message[0] = 0x03; // White, Red, Blue } } //replace_all(message, 192, "%", "%%"); // Make sure message is not longer than 192 character. Will crash the server. //message[192] = '^0'; // max len is 192 anyway static get_user_msgid_saytext; if( !get_user_msgid_saytext ) get_user_msgid_saytext = get_user_msgid("SayText"); if( id ) { new ColorChange, team = get_user_team(id); switch( type ) { case RED: ColorChange = Team_Info(id, MSG_ONE_UNRELIABLE, TeamName[1]); case BLUE: ColorChange = Team_Info(id, MSG_ONE_UNRELIABLE, TeamName[2]); case GREY: ColorChange = Team_Info(id, MSG_ONE_UNRELIABLE, TeamName[0]); //default: ColorChange = 0; } message_begin(MSG_ONE_UNRELIABLE, get_user_msgid_saytext, _, id); write_byte(id); write_string(message); message_end(); if( ColorChange ) Team_Info(id, MSG_ONE_UNRELIABLE, TeamName[team]); return 1; } else { static maxclients; if( !maxclients ) maxclients = get_maxplayers(); if( type!=GREY && type!=RED && type!=BLUE ) { for( new i=1; i<=maxclients; i++ ) { if( is_user_connected(i) ) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid_saytext, _, i); write_byte(i); write_string(message); message_end(); } } return 1; } for( new i=1; i<=maxclients; i++ ) { if( is_user_connected(i) ) { new ColorChange, team = get_user_team(i); switch( type ) { case RED: ColorChange = Team_Info(i, MSG_ALL, TeamName[1]); case BLUE: ColorChange = Team_Info(i, MSG_ALL, TeamName[2]); case GREY: ColorChange = Team_Info(i, MSG_ALL, TeamName[0]); //default: ColorChange = 0; } message_begin(MSG_ALL, get_user_msgid_saytext, _, i); write_byte(i); write_string(message); message_end(); if( ColorChange ) Team_Info(i, MSG_ALL, TeamName[team]); return 1; } } } return 0; } stock Team_Info(id, type, team[]) { static get_user_msgid_teaminfo; if( !get_user_msgid_teaminfo ) get_user_msgid_teaminfo = get_user_msgid("TeamInfo"); message_begin(type, get_user_msgid_teaminfo, _, id); write_byte(id); write_string(team); message_end(); return 1; }
-
botlike
Извън линия - Потребител
- Мнения: 96
- Регистриран на: 11 Юни 2017, 23:37
- Местоположение: София
- Получена благодарност: 20 пъти
Re: Проблем с Go Spec плъгин-а на OciXCrom
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <colorchat>
#define PLUGIN "Spec / Back"
#define AUTHOR "kramesa"
#define VERSION "v1.0"
new bool:TerroristTeam[33];
new CountTime[33];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /spec", "Spec");
register_clcmd("say_team /spec", "Spec");
register_clcmd("say /afk", "Spec");
register_clcmd("say_team /afk", "Spec");
register_clcmd("say /back", "Back");
register_clcmd("say_team /back", "Back");
}
public Spec(id)
{
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
TerroristTeam[id] = true;
}
else
{
TerroristTeam[id] = false;
}
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
{
ColorChat(id, GREEN, "^4Prefix -^1 You already ^3Spectator^1.");
return PLUGIN_HANDLED;
}
else
{
cs_set_user_team(id, CS_TEAM_SPECTATOR);
user_kill(id, 1);
ColorChat(id, GREEN, "^4Prefix -^1 You are now in ^3Spectator^1.");
CountTime[id]++;
return PLUGIN_HANDLED;
}
}
return PLUGIN_HANDLED;
}
public Back(id)
{
{
if(cs_get_user_team(id) == CS_TEAM_CT && CS_TEAM_T)
{
ColorChat(id, GREEN, "^4Prefix -^1 You already ^3Non-Spectator^1.");
return PLUGIN_HANDLED;
}
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
{
if(TerroristTeam[id] == true)
{
cs_set_user_team(id, CS_TEAM_T);
ColorChat(id, GREEN, "^4Prefix -^1 You are now in ^3Terrorist team^1.");
ExecuteHam(Ham_CS_RoundRespawn, id);
return PLUGIN_HANDLED;
}
if(TerroristTeam[id] == false)
{
cs_set_user_team(id, CS_TEAM_CT);
ColorChat(id, GREEN, "^4Prefix -^1 You are now in ^3Counter-Terrorist team^1.");
ExecuteHam(Ham_CS_RoundRespawn, id);
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_HANDLED;
}
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 4 Отговори
- 1505 Преглеждания
-
Последно мнение от KARASKO
-
- 8 Отговори
- 2193 Преглеждания
-
Последно мнение от Siska
-
- 8 Отговори
- 1813 Преглеждания
-
Последно мнение от The Pain
-
- 2 Отговори
- 818 Преглеждания
-
Последно мнение от Stilex
-
- 2 Отговори
- 851 Преглеждания
-
Последно мнение от The Pain
-
- 1 Отговори
- 1526 Преглеждания
-
Последно мнение от iv69
-
- 4 Отговори
- 2019 Преглеждания
-
Последно мнение от M36
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 24 госта