#MBURNS
Дебютант
В новой версии мода появился баг. Когда пишешь что-либо в чат и отправляешь - сервер обрабатывает текст (это видно через консоль), но сами игроки отправленное не видят в чате. Подозреваю, что проблема с OnPlayerText, но в чем конкретно - непонятно.
C++:
public OnPlayerText(playerid, text[])
{
if(IS_A_GMX) return 0;
if(CountFloodForPlayer[playerid] > 2) return 0;
CountFloodForPlayer[playerid] = unix + 2;
//
if(strlen(text) > 128) return 0;
if(TranslateCommandText(playerid, text)) return 0;
if(IsPlayerAuthorized(playerid) == PLAYER_OFFLINE)
{
SendClientMessage(playerid, COLOR_GREY, "Вам нужно авторизироватся!");
return 0;
}
if(p_info[playerid][pMuteTime] > 0)
{
SetPlayerChatBubble(playerid, "Пытается что-то сказать", CRED, 30.0, 10000);
SendErr(playerid, "У вас бан чата");
return 0;
}
if(IsIpFound(text))
{
SendReklama(playerid,text);
return 0;
}
ReplaceSwears(text);
if(GetPVarInt(playerid,"talkcall"))
{
new callid =GetPVarInt(playerid,"called")-1;
if(IsPlayerConnected(callid))
{
if(GetPVarInt(callid,"talkcall"))
{
format(stringer, 144, "[Тел] %s: %s", NamePlayer[playerid],text);
SendClientMessage(callid,CYELLOW,stringer);
SendClientMessage(playerid,COLOR_GREY,stringer);
return 0;
}
}
}
if(GetPVarInt(playerid,"TalkingLive") == 1)
{
if(AntiReklama(text))
{
p_info[playerid][tLeader]=0;
p_info[playerid][tRank]=0;
UpdatePlayerData(playerid,"tLeader",0);
UpdatePlayerData(playerid,"tRank",0);
ChangePlayerFraction(playerid, 0);
format(stringer,250,"[Анти-слив в эфире]: %s[%d] попытался отправить текст: %s",NamePlayer[playerid],playerid,text);
AdmMes(CBADINFO,stringer,1);
return 0;
}
format(stringer, 128, "[Радио Лос Сантос] %s [%d] (тел.): %s", NamePlayer[playerid], playerid, text);
LSNews(0x6B8E23FF, stringer);
}
if(GetPVarInt(playerid,"TalkingLivels") == 2)
{
if(AntiReklama(text))
{
p_info[playerid][tLeader]=0;
p_info[playerid][tRank]=0;
UpdatePlayerData(playerid,"tLeader",0);
UpdatePlayerData(playerid,"tRank",0);
ChangePlayerFraction(playerid, 0);
format(stringer,250,"[Анти-слив эфире]: %s[%d] попытался отправить текст: %s",NamePlayer[playerid],playerid,text);
AdmMes(CBADINFO,stringer,1);
return 0;
}
if(p_info[playerid][tMember] == F_SANN)
{
format(stringer, 128, "[Радио Лос Сантос] %s [%d]: %s", NamePlayer[playerid], playerid, text);
LSNews(0x6B8E23FF, stringer);
return 0;
}
else
{
format(stringer, 128, "[Радио Лос Сантос] %s [%d] (тел.): %s", NamePlayer[playerid],playerid, text);
LSNews(0x6B8E23FF, stringer);
return 0;
}
}
if(GetPVarInt(playerid,"Tel") == 1)
{
new string23[260];
format(string23, 256, "[Телефон] %s: %s", NamePlayer[playerid], text);
SendStreamMessage(20.0, playerid, string23,CFADE1);
format(stringer, 128, "[Телефон] %s: %s", NamePlayer[playerid], text);
return 0;
}
if(PEfir[playerid] != INVALID_PLAYER_ID)
{
if(p_info[playerid][tMember] == F_SANN || p_info[playerid][tLeader] == F_SANN)
{
if(AntiReklama(text))
{
p_info[playerid][tLeader]=0;
p_info[playerid][tRank]=0;
UpdatePlayerData(playerid,"tLeader",0);
UpdatePlayerData(playerid,"tRank",0);
ChangePlayerFraction(playerid, 0);
format(stringer,250,"[Анти-слив в эфире]: %s[%d] попытался отправить текст: %s",NamePlayer[playerid],playerid,text);
AdmMes(CBADINFO,stringer,1);
return 0;
}
format(stringer, 128, "[Радио Лос Сантос] %s: %s", NamePlayer[playerid], text);
LSNews(0x6B8E23FF, stringer);
}
if(Pefir[playerid] == 2)
{
if(AntiReklama(text))
{
p_info[playerid][tLeader]=0;
p_info[playerid][tRank]=0;
UpdatePlayerData(playerid,"tLeader",0);
UpdatePlayerData(playerid,"tRank",0);
ChangePlayerFraction(playerid, 0);
format(stringer,250,"[Анти-слив в эфире]: %s[%d] попытался отправить текст: %s",NamePlayer[playerid],playerid,text);
AdmMes(CBADINFO,stringer,1);
return 0;
}
format(stringer, 128, "[Радио Лос Сантос] %s: %s", NamePlayer[playerid], text);
LSNews(0x6B8E23FF, stringer);
}
return 0;
}
else if(strcmp(text, "*102#", true) == 0)
{
SCM(playerid, CLIGHTGREEN, "==[ Мобильный баланс ] ==");
format(stringer, 128, "- Баланс %d $",p_info[playerid][pMobile]);
SCM(playerid, CWHITE, stringer);
SCM(playerid, CWHITE, "- Пополнить баланс можно в любом банкомате");
SCM(playerid, CLIGHTGREEN, "==[ Мобильный баланс ] ==");
MeAction(playerid,"достаёт мобильник", 5.0);
return 0;
}
if(!strcmp(text,")")) return MeAction(playerid, "улыбается"),0;
if(!strcmp(text,"))")) return MeAction(playerid, "смеётся"),0;
if(!strcmp(text,"("))
{
if(p_info[playerid][pSex] == 1) MeAction(playerid, "расстроился");
else MeAction(playerid, "расстроилась");
return 0;
}
if(!strcmp(text,"(("))
{
if(p_info[playerid][pSex] == 1) MeAction(playerid, "сильно расстроился");
else MeAction(playerid, "сильно расстроилась");
return 0;
}
if(GetPVarInt(playerid,"anti_sbiv_time") < unix && GetPVarInt(playerid,"MinerCount") == 0 && GetPVarInt(playerid,"anim_bolka") == 0 && GetPVarInt(playerid,"crack_tazer") == 0 && GetPVarInt(playerid,"Animation") == 0 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && !GetPVarInt(playerid,"robbankstime") && !GetPVarInt(playerid,"PlayerTied") && !GetPVarInt(playerid,"PlayerCuffedTime"))
{
if(p_info[playerid][pSetAnim] == 0)
{
ApplyAnimation(playerid,"PED",Talk[p_info[playerid][pSetAnim]],8.1,0,1,1,1,1);
SetTimerEx("ClearAnimText", 2000, 0, "i", playerid);
}
else if(p_info[playerid][pSetAnim] != 0)
{
ApplyAnimation(playerid,"GANGS",Talk[p_info[playerid][pSetAnim]],4.1,1,1,1,1,1,1);
SetTimerEx("ClearAnimText", 2000, 0, "i", playerid);
}
}
if(GetPVarInt(playerid,"gag"))
{
SCM(playerid, COLOR_LIGHTRED, "У Вас кляп, вы не можете говорить!");
return 0;
}
new mesid[8],str[2][144],meslen = strlen(text);
format(mesid,8,"(%d)", playerid);
strmid(str[0],text,0,80,100);
strmid(str[1],text,80,meslen,meslen);
GetPlayerPos(playerid, p_info[playerid][pX], p_info[playerid][pY], p_info[playerid][pZ]);
if(p_info[playerid][pX] == 0.0 || p_info[playerid][pY] == 0.0 || p_info[playerid][pZ] == 0.0) return 0;
new strin[144];
new steeer[150];
new colors = GetPlayerColor(playerid);
new reeede = (colors & 0xFF000000) >>> 24;
new greeene = (colors & 0x00FF0000) >>> 16;
new bluewe = (colors & 0x0000FF00) >>> 8;
format(steeer,120,"%x%x%x",min(reeede + 150, 255),min(greeene + 150, 255),min(bluewe + 150, 255));
new vw = GetPlayerVirtualWorld(playerid),
int = GetPlayerInterior(playerid);
foreach(i)
{
if (vw != GetPlayerVirtualWorld(i) || int != GetPlayerInterior(i)) continue;
if(!PlayerToPoint(14.0,i,p_info[playerid][pX],p_info[playerid][pY],p_info[playerid][pZ])) continue;
if(meslen>=80)
{
if(Settings[playerid] & setPlayerIDChat) format(strin, 144, "- {%06x}%s(%d)%s: {%s}%s ...",colors>>> 8,NamePlayer[playerid], playerid, (IsPlayerInAnyVehicle(playerid)) ? ( " (в машине)" ) : ( "" ) , steeer,str[0]);
else format(strin, 144, "- {%06x}%s%s: {%s}%s ...",colors>>> 8,NamePlayer[playerid], (IsPlayerInAnyVehicle(playerid)) ? ( " (в машине)" ) : ( "" ) , steeer,str[0]);
SendClientMessage(i,colors,strin);
format(strin,200,"... {%s}%s",steeer,str[1]);
SendClientMessage(i,colors,strin);
continue;
}
else
{
if(Settings[playerid] & setPlayerIDChat) format(strin, 144, "- {%06x}%s(%d)%s: {%s}%s",colors>>> 8,NamePlayer[playerid], playerid, (IsPlayerInAnyVehicle(playerid)) ? ( " (в машине)" ) : ( "" ) , steeer,text);
else format(strin, 144, "- {%06x}%s%s: {%s}%s",colors>>> 8,NamePlayer[playerid], (IsPlayerInAnyVehicle(playerid)) ? ( " (в машине)" ) : ( "" ) , steeer,text);
SendClientMessage(i,colors,strin);
}
}
SetPlayerChatBubble(playerid, text, colors, 20.0, 10000);
return 0;
}
