Помогите добавить проверку на флаг

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
71
Реакции
30
Помог
6 раз(а)
Доброго времени суток !
Помогите добавить проверку по флагу (хочу ограничить спектры обычным игрокам)
#include <amxmodx>
#include <csdm>
#include <cstrike>
#include <colorchat>

#define MAX_PLAYERS 32

stock const FIRST_JOIN_MSG[] = "#Team_Select"
stock const FIRST_JOIN_MSG_SPEC[] = "#Team_Select_Spect"
stock const INGAME_JOIN_MSG[] = "#IG_Team_Select"
stock const INGAME_JOIN_MSG_SPEC[] = "#IG_Team_Select_Spect"
stock const VGUI_JOIN_TEAM_NUM = 2
const iMaxLen = sizeof(INGAME_JOIN_MSG_SPEC)
new gp_iTeam[MAX_PLAYERS + 1 char], gp_iMoney[MAX_PLAYERS + 1 char]
new bool:gp_noRespawn[MAX_PLAYERS + 1 char]
public plugin_init() {
register_plugin("[reCSDM] Switch Team", "1.0", "di.alyabev")
register_message(get_user_msgid("VGUIMenu"), "message_vguimenu")
register_message(get_user_msgid("ShowMenu"), "message_showmenu")
register_clcmd("say /spec", "ClCmd_SwitchTeam", 0)
register_clcmd("spec", "ClCmd_SwitchTeam", 0)
set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET)
}

public message_showmenu(iMsgid, iDest, pId) {
static sMenuCode[iMaxLen]; get_msg_arg_string(4, sMenuCode, sizeof(sMenuCode) - 1)
if(equal(sMenuCode, FIRST_JOIN_MSG) || equal(sMenuCode, FIRST_JOIN_MSG_SPEC)) {
if(gp_noRespawn[pId]) return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

public message_vguimenu(iMsgid, iDest, pId) {
if(get_msg_arg_int(1) != VGUI_JOIN_TEAM_NUM) return PLUGIN_CONTINUE
if(gp_noRespawn[pId]) return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}

public csdm_PostDeath(killer, victim, headshot, const weapon[]) return gp_noRespawn[victim] ? PLUGIN_HANDLED : PLUGIN_CONTINUE
public csdm_Init(const version[]) {
if(version[0] == 0) {
set_fail_state("CSDM failed to load.");
return;
}
}

public client_putinserver(pId) {
gp_iTeam[pId] = 0
gp_noRespawn[pId] = false
gp_iMoney[pId] = get_cvar_num("mp_startmoney");
}

public ClCmd_SwitchTeam(pId) {
new CsTeams:iTeam = cs_get_user_team(pId);
if(iTeam == CS_TEAM_UNASSIGNED) {
ColorChat(pId, GREY, "^3[CSDM] ^1Вы не можете перейти в ^4наблюдатели^1, выберите - ^3команду^1!");
return PLUGIN_HANDLED;
}
else if(iTeam == CS_TEAM_CT || iTeam == CS_TEAM_T) {
gp_noRespawn[pId] = true;
switch(iTeam) {
case CS_TEAM_T: gp_iTeam[pId] = 1
case CS_TEAM_CT: gp_iTeam[pId] = 2
}
gp_iMoney[pId] = cs_get_user_money(pId)
user_silentkill(pId);
engclient_cmd(pId, "jointeam", "6")
cs_set_user_team(pId, CS_TEAM_SPECTATOR)
ColorChat(pId, GREY, "^3[CSDM] ^1Вы перешли в ^4наблюдатели^1, вернуться обратно в игру - ^3/spec");
}
else if(iTeam == CS_TEAM_SPECTATOR) {
new iMsgBlock = get_msg_block(114)
set_msg_block(114, BLOCK_SET)
new MsgBlock = get_msg_block(96)
set_msg_block(96, BLOCK_SET)
switch(gp_iTeam[pId]) {
case 1: {
cs_set_user_team(pId, CS_TEAM_T, CS_CT_URBAN)
engclient_cmd(pId, "jointeam", "1")
engclient_cmd(pId, "joinclass", "1")
}
case 2: {
cs_set_user_team(pId, CS_TEAM_CT, CS_CT_SAS)
engclient_cmd(pId, "jointeam", "2")
engclient_cmd(pId, "joinclass", "2")
}
}
set_msg_block(114, iMsgBlock)
set_msg_block(96, MsgBlock)
cs_set_user_money(pId, gp_iMoney[pId])
gp_noRespawn[pId] = false
csdm_respawn(pId)
ColorChat(pId, DontChange, "^3[CSDM] ^1Вы вернулись в ^4игру^1, вернуться обратно в наблюдатели - ^3/spec");
}
return PLUGIN_CONTINUE
}
 

Вложения

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
344
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
В данном разделе размещаются темы, в которых требуется помощь с доработкой или объяснением материала.
В теме должны быть опубликованы попытки (diff кода и последовательность действий) самостоятельного поиска решения.
 
Сообщения
71
Реакции
30
Помог
6 раз(а)
melfyk, Буду смотреть подобные темы ! может и сам справлюсь
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Для помощи нужны Ваши попытки это реализовать. Раздел заказов по-соседству.
Topic closed.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу