- Регистрация
- 2 Янв 2019
- Сообщения
- 56
- Лучшие ответы
- 0
- Репутация
- 20
Здравствуйте! У меня есть такой баг, что в чате двоятся сообщения. Причем если после рестарта сервера зайти на него, то с чатом всё нормально, а при повторном заходе не перезапуская сервер, сообщения пишутся уже 2 раза, потом 3 и так далее. Также, такое происходит не только при сообщении в чат, а например при выдаче хп в радиусе, пишется что оно выдано 2 раза, в команде /admins тоже ник пишется несколько раз. Пожалуйста, помогите, этот баг реально мешает игре. Вот, если нужно, public OnPlayerText:
PHP:
public OnPlayerText(playerid, text[])
{
if(!PlayerInfo[playerid][pLogin]) return 0;
if(Empty_Message(text)) return 0;
if(!Reklama(playerid, text)) return 0;
if(GetPVarInt(playerid, #use_television)) return 0;
if(PlayerInfo[playerid][pMuteTime])
{
SetPlayerChatBubble(playerid,"Пытается что-то сказать...",0xDD90FFFF,30.0,10000);
SendClientMessage(playerid, 0xFF6500FF, "Доступ в чат заблокирован. Узнать время до окончания бана чата: {66cc33}/time");
return 0;
}
if(PlayerInfo[playerid][pLogin] || !PlayerInfo[playerid][bAdmin])
{
if(GetPVarInt(playerid,"AntiFlood") > gettime()) return SendClientMessage(playerid, -1, "Не флудите") & 0;
SetPVarInt(playerid,"AntiFlood",gettime() + 1);
}
if(GetPVarInt(playerid, "TalkingLivels") == 1)
{
if(PlayerInfo[playerid][pMuteTime]) return SendClientMessage(playerid, 0xFF6500FF, "Доступ в чат заблокирован. Узнать время до окончания бана чата: {66cc33}/time") & 0;
format(string,144,"[Радио] %s[%d]: %s", PlayerInfo[playerid][pNames],playerid, text);
LSNews(0x0073b7AA, string);
}
if(GetPVarInt(playerid, "TalkingLivels") == 2)
{
if(PlayerInfo[playerid][pMuteTime]) return SendClientMessage(playerid, 0xFF6500FF, "Доступ в чат заблокирован. Узнать время до окончания бана чата: {66cc33}/time") & 0;
if(PlayerInfo[playerid][pMember] == 16)
{
format(string,144, "[Радио] %s[%d]: %s", PlayerInfo[playerid][pNames],playerid, text);
LSNews(0x6B8E23FF, string);
return 0;
}
else
{
format(string,144, "[Радио] %s[%d] (тел.): %s", PlayerInfo[playerid][pNames],playerid, text);
LSNews(0x6B8E23FF, string);
return 0;
}
}
if(GetPVarInt(playerid,"Tel") == 1)
{
format(stringer, 128, "[Тел] %s: %s", PlayerInfo[playerid][pNames], text);
SendStreamMessage(20.0, playerid, stringer, COLOR_FADE1);
return 0;
}
if(GetPVarInt(playerid, "Mobile") != 999)
{
format(stringer, MAX_STR, "[Тел] %s: %s", PlayerInfo[playerid][pNames], text);
SendStreamMessage(20.0, playerid, stringer, COLOR_FADE1);
return 0;
}
if(IsPlayerConnected(GetPVarInt(playerid, "Mobile")))
{
if(GetPVarInt(GetPVarInt(playerid, "Mobile"), "Mobile") == playerid) SendClientMessage(GetPVarInt(playerid, "Mobile"), COLOR_YELLOW,stringer);
else return SendClientMessage(playerid, COLOR_GRAD1,"На второй линии никого нет"), 0;
}
if(GetPVarInt(playerid, "PEfir") != 999)
{
if(PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pLeader] == 16)
{
if(PlayerInfo[playerid][pMuteTime]) return SendClientMessage(playerid, 0xFF6500FF, "Доступ в чат заблокирован. Узнать время до окончания бана чата: {66cc33}/time") & 0;
string="";
format(string,MAX_STR, "[Mass Media] %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, string);
}
if(GetPVarInt(playerid, "Pefir") == 2)
{
if(PlayerInfo[playerid][pMuteTime]) return SendClientMessage(playerid, 0xFF6500FF, "Доступ в чат заблокирован. Узнать время до окончания бана чата: {66cc33}/time") & 0;
string="";
format(string,MAX_STR, "[Mass Media] %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, string);
}
return 0;
}
Speech(playerid,text);
return 0;
}
stock Speech(playerid, text[])
{
if(!PlayerInfo[playerid][pLogin]) return 0;
if(GetPVarInt(playerid, "ChekingAdvertis")) return SendClientMessage(playerid,0xFF6500FF,"Вы должны закончить проверку объявления");
if(PlayerInfo[playerid][pMuteTime]) return SendClientMessage(playerid,0xFF6500FF,"Доступ в чат заблокирован");
if(GetString(text,")")) return MeAction(playerid,"улыбается") & 0;
if(GetString(text,"))")) return MeAction(playerid,"смеётся") & 0;
if(GetString(text,"(")) return MeAction(playerid,"расстроился(ась)") & 0;
if(GetString(text,"((")) return MeAction(playerid, "сильно расстроился(ась)") & 0;
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && PlayerTied{playerid} == false && !GetPVarInt(playerid, "PlayerCuffedTime"))
{
ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,1,1,1);
SetTimerEx("AnimClear", 3000, 0, "d", playerid);
}
if(GetPVarInt(playerid, "gag")) return SendClientMessage(playerid, COLOR_PAZIK, "У Вас кляп, Вы не можете говорить") & 0;
new mes[128];
if(GetPVarInt(playerid, "MaskPlayer")) {
if(PlayerInfo[playerid][pSettings] & sPlayerIDChat) format(mes,sizeof(mes),"- %s {7a7667}(%s)",text,PlayerInfo[playerid][pNames]);
else format(mes,sizeof(mes),"- %s {7a7667}(%s)[%d]",text,PlayerInfo[playerid][pNames],playerid);
}
else {
if(PlayerInfo[playerid][pSettings] & sPlayerIDChat) format(mes,sizeof(mes),"- %s {%s}(%s)",text,GetFractionColor[PlayerInfo[playerid][pMember]],PlayerInfo[playerid][pNames]);
else format(mes,sizeof(mes),"- %s {%s}(%s)[%d]",text,GetFractionColor[PlayerInfo[playerid][pMember]],PlayerInfo[playerid][pNames],playerid);
}
GetPlayerPos(playerid,PlayerPos[playerid][0],PlayerPos[playerid][1],PlayerPos[playerid][2]);
if(PlayerPos[playerid][0] == 0.0 || PlayerPos[playerid][1] == 0.0 || PlayerPos[playerid][2] == 0.0) return 0;
tforeach(i)
{
if (GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(i) || GetPlayerInterior(playerid) != GetPlayerInterior(i)) continue;
if(!PlayerToPoint(14.0,i,PlayerPos[playerid][0],PlayerPos[playerid][1],PlayerPos[playerid][2])) continue;
new color = PlayerToPoint(4.0,i,PlayerPos[playerid][0],PlayerPos[playerid][1],PlayerPos[playerid][2]) ? (0xFFFFFFFF) : PlayerToPoint(8.0,i,PlayerPos[playerid][0],PlayerPos[playerid][1],PlayerPos[playerid][2]) ? (0xCCCCCCFF) : (0xAAAAAAFF);
if(IsPlayerInAnyVehicle(playerid) && (GetPVarInt(playerid, "VehicleEnters") == GetPVarInt(i, "tipster_vehicle") - 1) && GetPVarInt(i,"tipster_type") == 2)
{
new str[128];
format(str,128,"[TIPSTER] %s", mes);
SendClientMessage(i,color,str);
}
else SendClientMessage(i,color,mes);
}
SetPlayerChatBubble(playerid, text, COLOR_WHITE, 20.0, 10000);
return 1;
}
Последнее редактирование: