PDA

Просмотр полной версии : [Вопрос] Как найти дыру в команде.



Maksim97
10.06.2014, 20:22
Вообщем такая проблема в команде /call дыра , игрок звонит другому игроку и пока он не взял пишет в чат и другие игроки это всё видят, с помощью этого рекламят.

Код:

else if(strcmp(cmd, "/call", true) == 0)
{

if(PlayerInfo[playerid][pBank] <= 0)
{
format(stringer, sizeof(stringer), "[0] Ñóììà íà âàøåì ñ÷åòó íå äîñòàòî÷íà äëÿ ñîâåðøåíèÿ çâîíêà");
if(PlayerInfo[playerid][pPayDayHad] < 4) return SendClientMessage(playerid, COLOR_STANDART, "{BBBBBB}[Îøèáêà] ×òî-áû Ïîçâîíèòü âàì íóæíî îòûãðàòü 4 ÷àñîâ êàê ìèíèìóì!");
SendClientMessage(playerid, COLOR_GREY, stringer);
format(stringer, sizeof(stringer), "%s íàáèðàåò òåëåôîííûé íîìåð", PlayerInfo[playerid][pNames]);
ProxDetector(5.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return true;
}
if(gag[playerid] == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Ó Âàñ êëÿï, âû íå ìîæåòå ãîâîðèòü!");
if(takephone[playerid] == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Ó Âàñ íåò òåëåôîíà");
tmp = strcharsplit(cmdtext, idx);
if(PlayerInfo[playerid][pMuted] == 1) return SendClientMessage(playerid, 0xff6600AA, "Äîñòóï â ÷àò çàáëîêèðîâàí.");
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, " Ââåäèòå: /call [íîìåð]");
format(stringer, sizeof(stringer), "%s äîñòà¸ò òåëåôîí", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
new phonenumb = strval(tmp);
if(phonenumb == PlayerInfo[playerid][pPnumber])
{
SendClientMessage(playerid, COLOR_GRAD2, "Ëèíèÿ çàíÿòà");
SetPlayerSpecialAction(playerid,13);
return true;
}
foreach(Player,i)
{
if(phonenumb == 11888)
{
if(smsls == 0) return SendClientMessage(playerid, COLOR_GREY, "Ïðÿìîé ýôèð îòêëþ÷åí...");
format(stringer, sizeof(stringer), "[Çâîíîê] Â ñòóäèþ çâîíèò %s: Ââåäèòå /yes [%d], ÷òîáû îòâåòèòü",PlayerInfo[playerid][pNames], playerid);
SendFamilyMessage(16, COLOR_YELLOW2, stringer);
SendClientMessage(playerid, COLOR_WHITE, "×òîáû ïîâåñèòü òðóáêó ââåäèòå /h");
SetPlayerSpecialAction(playerid,11);
zvonok[playerid] = 1;
PlayerInfo[playerid][pBank] -= smspricels;
FracBank[0][fLsnews] += smspricels;
return true;
}
if(Mobile[playerid] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GRAD2, "Âû óæå ðàçãîâàðèâàåòå ïî òåëåôîíó ");
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pPnumber] == phonenumb && phonenumb != 0)
{
giveplayerid = i;
Mobile[playerid] = giveplayerid; //caller connecting
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PhoneOnline[giveplayerid] > 0) return SendClientMessage(playerid, COLOR_GREY, "Òåëåôîí àáîíåíòà âûêëþ÷åí...");
if (Mobile[giveplayerid] == INVALID_PLAYER_ID)
{
format(stringer, sizeof(stringer), "Âõîäÿùèé çâîíîê îò: %s", PlayerInfo[playerid][pNames]);
SendClientMessage(giveplayerid, COLOR_YELLOW2, stringer);
SendClientMessage(giveplayerid, COLOR_WHITE, " Ââåäèòå /p, ÷òîáû îòâåòèòü ");
format(stringer, sizeof(stringer), "Ó %s çâîíèò ìîáèëüíèê", PlayerInfo[giveplayerid][pNames]);
SendClientMessage(playerid, COLOR_WHITE, " ×òîáû çàâåðøèòü çâîíîê ââåäèòå /h ");
ProxDetector(30.0, i, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerSpecialAction(playerid,11);
CellTime[playerid] = 1;
return true;
}
}
}
}
}
}
SendClientMessage(playerid, COLOR_GRAD2, "Îøèáëèñü íîìåðîì");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
return true;
}

Osetin
10.06.2014, 20:24
Неужели так трудно сменить раскладку клавиатуры и скопировать код так?

DeimoS
10.06.2014, 20:30
OnPlayerText покажите и команду переведите (при копировании раскладку на русский переключите и потом копируйте. Проблем с текстом не будет)

Maksim97
10.06.2014, 20:38
else if(strcmp(cmd, "/call", true) == 0)
{

if(PlayerInfo[playerid][pBank] <= 0)
{
format(stringer, sizeof(stringer), "[0] Сумма на вашем счету не достаточна для совершения звонка");
if(PlayerInfo[playerid][pPayDayHad] < 4) return SendClientMessage(playerid, COLOR_STANDART, "{BBBBBB}[Ошибка] Что-бы Позвонить вам нужно отыграть 4 часов как минимум!");
SendClientMessage(playerid, COLOR_GREY, stringer);
format(stringer, sizeof(stringer), "%s набирает телефонный номер", PlayerInfo[playerid][pNames]);
ProxDetector(5.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return true;
}
if(gag[playerid] == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "У Вас кляп, вы не можете говорить!");
if(takephone[playerid] == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "У Вас нет телефона");
tmp = strcharsplit(cmdtext, idx);
if(PlayerInfo[playerid][pMuted] == 1) return SendClientMessage(playerid, 0xff6600AA, "Доступ в чат заблокирован.");
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, " Введите: /call [номер]");
format(stringer, sizeof(stringer), "%s достаёт телефон", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
new phonenumb = strval(tmp);
if(phonenumb == PlayerInfo[playerid][pPnumber])
{
SendClientMessage(playerid, COLOR_GRAD2, "Линия занята");
SetPlayerSpecialAction(playerid,13);
return true;
}
foreach(Player,i)
{
if(phonenumb == 11888)
{
if(smsls == 0) return SendClientMessage(playerid, COLOR_GREY, "Прямой эфир отключен...");
format(stringer, sizeof(stringer), "[Звонок] В студию звонит %s: Введите /yes [%d], чтобы ответить",PlayerInfo[playerid][pNames], playerid);
SendFamilyMessage(16, COLOR_YELLOW2, stringer);
SendClientMessage(playerid, COLOR_WHITE, "Чтобы повесить трубку введите /h");
SetPlayerSpecialAction(playerid,11);
zvonok[playerid] = 1;
PlayerInfo[playerid][pBank] -= smspricels;
FracBank[0][fLsnews] += smspricels;
return true;
}
if(Mobile[playerid] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GRAD2, "Вы уже разговариваете по телефону ");
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pPnumber] == phonenumb && phonenumb != 0)
{
giveplayerid = i;
Mobile[playerid] = giveplayerid; //caller connecting
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PhoneOnline[giveplayerid] > 0) return SendClientMessage(playerid, COLOR_GREY, "Телефон абонента выключен...");
if (Mobile[giveplayerid] == INVALID_PLAYER_ID)
{
format(stringer, sizeof(stringer), "Входящий звонок от: %s", PlayerInfo[playerid][pNames]);
SendClientMessage(giveplayerid, COLOR_YELLOW2, stringer);
SendClientMessage(giveplayerid, COLOR_WHITE, " Введите /p, чтобы ответить ");
format(stringer, sizeof(stringer), "У %s звонит мобильник", PlayerInfo[giveplayerid][pNames]);
SendClientMessage(playerid, COLOR_WHITE, " Чтобы завершить звонок введите /h ");
ProxDetector(30.0, i, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerSpecialAction(playerid,11);
CellTime[playerid] = 1;
return true;
}
}
}
}
}
}
SendClientMessage(playerid, COLOR_GRAD2, "Ошиблись номером");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
return true;
}

Весь OnPlayerText кидать?

DeimoS
10.06.2014, 20:51
else if(strcmp(cmd, "/call", true) == 0)
{

if(PlayerInfo[playerid][pBank] <= 0)
{
format(stringer, sizeof(stringer), "[0] Сумма на вашем счету не достаточна для совершения звонка");
if(PlayerInfo[playerid][pPayDayHad] < 4) return SendClientMessage(playerid, COLOR_STANDART, "{BBBBBB}[Ошибка] Что-бы Позвонить вам нужно отыграть 4 часов как минимум!");
SendClientMessage(playerid, COLOR_GREY, stringer);
format(stringer, sizeof(stringer), "%s набирает телефонный номер", PlayerInfo[playerid][pNames]);
ProxDetector(5.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return true;
}
if(gag[playerid] == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "У Вас кляп, вы не можете говорить!");
if(takephone[playerid] == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "У Вас нет телефона");
tmp = strcharsplit(cmdtext, idx);
if(PlayerInfo[playerid][pMuted] == 1) return SendClientMessage(playerid, 0xff6600AA, "Доступ в чат заблокирован.");
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, " Введите: /call [номер]");
format(stringer, sizeof(stringer), "%s достаёт телефон", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
new phonenumb = strval(tmp);
if(phonenumb == PlayerInfo[playerid][pPnumber])
{
SendClientMessage(playerid, COLOR_GRAD2, "Линия занята");
SetPlayerSpecialAction(playerid,13);
return true;
}
foreach(Player,i)
{
if(phonenumb == 11888)
{
if(smsls == 0) return SendClientMessage(playerid, COLOR_GREY, "Прямой эфир отключен...");
format(stringer, sizeof(stringer), "[Звонок] В студию звонит %s: Введите /yes [%d], чтобы ответить",PlayerInfo[playerid][pNames], playerid);
SendFamilyMessage(16, COLOR_YELLOW2, stringer);
SendClientMessage(playerid, COLOR_WHITE, "Чтобы повесить трубку введите /h");
SetPlayerSpecialAction(playerid,11);
zvonok[playerid] = 1;
PlayerInfo[playerid][pBank] -= smspricels;
FracBank[0][fLsnews] += smspricels;
return true;
}
if(Mobile[playerid] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GRAD2, "Вы уже разговариваете по телефону ");
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pPnumber] == phonenumb && phonenumb != 0)
{
giveplayerid = i;
Mobile[playerid] = giveplayerid; //caller connecting
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PhoneOnline[giveplayerid] > 0) return SendClientMessage(playerid, COLOR_GREY, "Телефон абонента выключен...");
if (Mobile[giveplayerid] == INVALID_PLAYER_ID)
{
format(stringer, sizeof(stringer), "Входящий звонок от: %s", PlayerInfo[playerid][pNames]);
SendClientMessage(giveplayerid, COLOR_YELLOW2, stringer);
SendClientMessage(giveplayerid, COLOR_WHITE, " Введите /p, чтобы ответить ");
format(stringer, sizeof(stringer), "У %s звонит мобильник", PlayerInfo[giveplayerid][pNames]);
SendClientMessage(playerid, COLOR_WHITE, " Чтобы завершить звонок введите /h ");
ProxDetector(30.0, i, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerSpecialAction(playerid,11);
CellTime[playerid] = 1;
return true;
}
}
}
}
}
}
SendClientMessage(playerid, COLOR_GRAD2, "Ошиблись номером");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
return true;
}

Весь OnPlayerText кидать?

Если сможете выдрать код телефоне среди всего - кидайте только код телефона. И конец колбэка скиньте (где return)

Maksim97
10.06.2014, 20:59
if(Tel[playerid] == 1)
{
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Òåëåôîí] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return false;
}
if(Mobile[playerid] != INVALID_PLAYER_ID)
{
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Òåëåôîí] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
if(IsPlayerConnected(Mobile[playerid]))
{
if(Mobile[Mobile[playerid]] == playerid)
{
SendClientMessage(Mobile[playerid], COLOR_YELLOW,stringer);
}
else { SendClientMessage(playerid, COLOR_GRAD1,"Íà âòîðîé ëèíèè íè êîãî íåò"); }
return false;
}
if(PEfir[playerid] != INVALID_PLAYER_ID)
{
if(PlayerInfo[playerid][pMemberop] == 16 || PlayerInfo[playerid][pLeaderop] == 16)
{
if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "Ó Âàñ áàí ÷àòà!"); return false; }
format(stringer, sizeof(stringer), "< LS News > %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
}
if(Pefir[playerid] == 2)
{
if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "Ó Âàñ áàí ÷àòà!"); return false; }
format(stringer, sizeof(stringer), "< LS News > %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
}
return false;
}

DeimoS
10.06.2014, 21:06
Всё же скиньте весь паблик с нормальным переводом. Если на форум не вместится, используйте сервис pastebin.com

Maksim97
10.06.2014, 21:13
public OnPlayerText(playerid, text[])
{
if(gPlayerLogged[playerid] == 0) return false;
if(strcmp(text, "PizDoS Bot 0.3x", true) == 0) { Ban(playerid); return false; }
new ip[15],stringer[144];
GetPlayerIp(playerid,ip,sizeof(ip));
if(IsIpFound(text))
{
PlayerInfo[playerid][pMuteTime] = 10800;
PlayerInfo[playerid][pMuted] = 1;
format(stringer, sizeof(stringer), "%s: %s",PlayerInfo[playerid][pNames],text);
ABroadCast(COLOR_LIGHTRED,stringer,1);
format(stringer, sizeof(stringer), "- ID: %d | IP: [%s]",playerid,ip);
ABroadCast(COLOR_LIGHTRED,stringer,1);
format(stringer,sizeof(stringer),"[Security] Вы получили бан чата на 3 часа /mm - репорт");
SendClientMessage(playerid, COLOR_LIGHTRED, stringer);
SetPlayerChatBubble(playerid,"заткнут(а)",COLOR_PURPLE,30.0,10000);
return false;
}
if(gPlayerLogged[playerid] == 1 || PlayerInfo[playerid][pAdminop] == 0)
{
SetPVarInt(playerid, "NoAB", 1);
if(GetPVarInt(playerid,"AntiFlood") > gettime()){ SendClientMessage(playerid, 0xFFD5BBAA, "Не флуди!"); return false; }
SetPVarInt(playerid,"AntiFlood",gettime() + ANTI_FLOODS);
}
if(TalkingLivels[playerid] == 1)
{
if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "У Вас бан чата!"); return false; }
format(stringer, sizeof(stringer), "< LS News > [Тел.] %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
}
if(TalkingLivels[playerid] == 2)
{

if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "У Вас бан чата!"); return false; }
if(PlayerInfo[playerid][pMemberop] == 16)
{
format(stringer, sizeof(stringer), "< LS News > Ведущий %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
return false;
}
else
{
format(stringer, sizeof(stringer), "< LS News > Гость %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
return false;
}
}
if(Tel[playerid] == 1)
{
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return false;
}
if(Mobile[playerid] != INVALID_PLAYER_ID)
{
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
if(IsPlayerConnected(Mobile[playerid]))
{
if(Mobile[Mobile[playerid]] == playerid)
{
SendClientMessage(Mobile[playerid], COLOR_YELLOW,stringer);
}
else { SendClientMessage(playerid, COLOR_GRAD1,"На второй линии ни кого нет"); }
return false;
}
if(PEfir[playerid] != INVALID_PLAYER_ID)
{
if(PlayerInfo[playerid][pMemberop] == 16 || PlayerInfo[playerid][pLeaderop] == 16)
{
if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "У Вас бан чата!"); return false; }
format(stringer, sizeof(stringer), "< LS News > %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
}
if(Pefir[playerid] == 2)
{
if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "У Вас бан чата!"); return false; }
format(stringer, sizeof(stringer), "< LS News > %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
}
return false;
}
if(strcmp(text, "q", true) == 0)
{
new suspect = GetClosestPlayer(playerid);
if(GetDistanceBetweenPlayers(playerid,suspect) < 2)
{
}
switch(PlayerInfo[playerid][pMemberop])
{
case 13:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку Los Santos Vagos Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку Los Santos Vagos Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1); }
return false;
}
case 15:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку Grove Street Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку Grove Street Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1); }
return false;
}
case 17:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку Varios Los Aztecas Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку Varios Los Aztecas Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1); }
return false;
}
case 12:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку The Ballas Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку The Ballas Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1);
return false;
}
case 18:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку The Rifa Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку The Rifa Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1); }
return false;
}
case 6:
{
format(stringer,sizeof(stringer), "показал(a) татуировку Yakuza's Family");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) татуировку Yakuza's Family", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GANGS","prtial_hndshk_01",4.0,0,0,0,0,0,1); }
return false;
}
case 5:
{
format(stringer,sizeof(stringer), "показал(a) татуировку La Cosa Nostra's Family");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) татуировку La Cosa Nostra's Family", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GANGS","prtial_hndshk_01",4.0,0,0,0,0,0,1); }
return false;
}
case 14:
{
format(stringer,sizeof(stringer), "показал(a) наколку 'Золотые купола'");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) наколку 'Золотые купола'", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GANGS","prtial_hndshk_01",4.0,0,0,0,0,0,1); }
return false;
}
}
if(PlayerInfo[playerid][pAdminop] >= 1 && PlayerInfo[playerid][pLevel] >= 35)
{
format(stringer,sizeof(stringer), "показал(a) распальцовку Admins Team");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку Admins Team", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1);
return false;
}
}
if(strcmp(text, "эй", true) == 0 || strcmp(text, "э", true) == 0 || strcmp(text, "эй бля", true) == 0|| strcmp(text, "блять", true) == 0 || strcmp(text, "Блядь", true) == 0 || strcmp(text, "мля", true) == 0)
{
SetPlayerChatBubble(playerid,"возмущается",COLOR_PURPLE,30.0,10000);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"PED","fucku",4.0,0,0,0,0,0,1); }
return false;
}
if(strcmp(text, "мда", true) == 0 || strcmp(text, "идиот", true) == 0 || strcmp(text, "сука", true) == 0 || strcmp(text, "пидр", true) == 0 )
{
SetPlayerChatBubble(playerid, "Facepalm", COLOR_PURPLE, 30.0, 10000);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"MISC","plyr_shkhead",4.0,0,0,0,0,0,1); }
return false;
}
else if(strcmp(text, "*102#", true) == 0)
{

SendClientMessage(playerid, COLOR_LIGHTGREEN, "==[ Мобильный баланс ] ==");
format(stringer, sizeof(stringer), "- Баланс %d вирт",PlayerInfo[playerid][pMobile]);
SendClientMessage(playerid, COLOR_WHITE, stringer);
SendClientMessage(playerid, COLOR_WHITE, "- Пополнить баланс можно в любом банкомате");
SendClientMessage(playerid, COLOR_LIGHTGREEN, "==[ Мобильный баланс ] ==");
format(stringer, sizeof(stringer), "%s достаёт мобильник", PlayerInfo[playerid][pNames]);
ProxDetector(5.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return false;
}
else if(strcmp(text, "xD", true) == 0 || strcmp(text, "xd", true) == 0 || strcmp(text, ":В", true) == 0 || strcmp(text, ":в", true) == 0 )
{
format(stringer, sizeof(stringer), "%s смеётся", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, "смеётся", COLOR_PURPLE, 30.0, 10000);
return false;
}
else if(strcmp(text, "здравия", true) == 0)
{
format(stringer, sizeof(stringer), "%s отдал честь", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"отдал честь",COLOR_PURPLE,30.0,10000);
return false;
}
else if(strcmp(text, "чВ", true) == 0 || strcmp(text, "хД", true) == 0 || strcmp(text, "хд", true) == 0 || strcmp(text, "xDD", true) == 0)
{
format(stringer, sizeof(stringer), "%s валяется от смеха", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"валяется от смеха",COLOR_PURPLE,30.0,10000);
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
// if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"FINALE","FIN_Land_Die",4.1,0,1,1,1,1,1); clearanim[playerid] = 4; }
}
return false;
}
else if(strcmp(text, ")", true) == 0 || strcmp(text, "))", true) == 0)
{
format(stringer, sizeof(stringer), "%s улыбается", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"улыбается",COLOR_PURPLE,30.0,10000);
return false;
}
else if(strcmp(text, ":D", true) == 0)
{
format(stringer, sizeof(stringer), "%s хохочет во весь голос", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"хохочет во весь голос",COLOR_PURPLE,30.0,10000);
return false;
}
else if(strcmp(text, "(", true) == 0 || strcmp(text, "((", true) == 0)
{
format(stringer, sizeof(stringer), "%s грустит", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"грустит",COLOR_PURPLE,30.0,10000);
return false;
}
if(realchat)
{
if(gPlayerLogged[playerid] == 0) { return false; }
if(PlayerInfo[playerid][pMuted] == 1)
{
format(stringer, sizeof(stringer), "У Вас бан чата! До снятия: %d секунд(ы)",PlayerInfo[playerid][pMuteTime]);
SendClientMessage(playerid, COLOR_LIGHTRED, stringer);
return false;
}
if(gag[playerid] == 1) { SendClientMessage(playerid, COLOR_LIGHTRED, "У Вас кляп, вы не можете говорить!"); return false; }
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && robbankstime[playerid] == 0 && PlayerTied[playerid] == 0 && PlayerCuffedTime[playerid] == 0)
{
ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,1,1,1);
clearanim[playerid] = 3;
}
format(stringer, sizeof(stringer), "- %s[%d]: %s", PlayerInfo[playerid][pNames],playerid, text);
SetPlayerChatBubble(playerid, text, 0x6ab1ffaa, 20.0, 10000);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return false;
}
return false;
}

DeimoS
10.06.2014, 21:51
Предлагаю вам такой код

if(Tel[playerid] == 1)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие");
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return false;
}
if(Mobile[playerid] != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало второе условие");
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
if(IsPlayerConnected(Mobile[playerid]))
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало третье условие");
if(Mobile[Mobile[playerid]] == playerid) SendClientMessage(Mobile[playerid], COLOR_YELLOW,stringer);
else SendClientMessage(playerid, COLOR_GRAD1,"На второй линии ни кого нет");
return false;
}
После того, как совершите звонок, напишите что-нибудь в чат (добейтесь вызова бага) и посмотрите что напишет в чат (какое из трёх условий сработает). О результатах сообщите сюда.
И покажите функцию ProxDetector

Maksim97
10.06.2014, 22:21
Попробую и чуть позже отпишусь.

- - - Добавлено - - -

Вот спрашивал у парня как это происходит он мне объяснил так


звонят, пока другой не взял - пишут: |||||||||||||||||||||||||||||||||| текст

DeimoS
11.06.2014, 07:37
Попробую и чуть позже отпишусь.

- - - Добавлено - - -

Вот спрашивал у парня как это происходит он мне объяснил так


звонят, пока другой не взял - пишут: |||||||||||||||||||||||||||||||||| текст

Пусть сделают скрин чата в момент, когда срабатывает баг. И покажите его нам потом

Maksim97
11.06.2014, 10:47
Вот держи http://forumimage.ru/uploads/20140609/140231293307376378.jpg

DeimoS
11.06.2014, 11:13
Ну попробуйте

if(Mobile[playerid] != INVALID_PLAYER_ID)
{
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return 0;
}
А вообще надо прологировать каждое условие и сразу станет ясно где проблема

Maksim97
11.06.2014, 14:43
Ну попробуйте

if(Mobile[playerid] != INVALID_PLAYER_ID)
{
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return 0;
}
А вообще надо прологировать каждое условие и сразу станет ясно где проблема

Буду проверять , позже отпишусь, за помощь спасибо .

Maksim97
12.06.2014, 02:21
Вообщем вот
http://i.imgur.com/qvdueIm.png

DeimoS
12.06.2014, 08:38
Покажите ка функции ProxDetector и strcharsplit.
И да, это вы пишете "|||||..." или вы только текст пишете?

OKStyle
12.06.2014, 09:44
Я бы размер stringer увеличил.

Maksim97
12.06.2014, 12:39
tmp = strcharsplit(cmdtext, idx);

ProxDetector(5.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);

Писал сам вот эти "||||"

DeimoS
12.06.2014, 12:41
tmp = strcharsplit(cmdtext, idx);

ProxDetector(5.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);

Писал сам вот эти "||||"

Так сами функции покажите, а не эти строки. Что-то типа
stock strcharsplit...

Maksim97
12.06.2014, 12:44
stock strcharsplit(const string[], &index, seperator=' ')
{
new result[20], i = 0;
if (index != 0 && string[index] != '\0') index++;
while (string[index] && string[index] != seperator && string[index] != '\r' && string[index] != '\n')
{
result[i++] = string[index++];
}
return result;
}


public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
//radi = 2.0; //Trigger Radius
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
if(!BigEar[i])
{
if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) SendClientMessage(i, col1, string);
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) SendClientMessage(i, col2, string);
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) SendClientMessage(i, col3, string);
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) SendClientMessage(i, col4, string);
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) SendClientMessage(i, col5, string);
}
}
else SendClientMessage(i, col1, string);
}
}
}//not connected
return true;
}

DeimoS
12.06.2014, 12:49
Через Crashdetect тестировали код?

Maksim97
12.06.2014, 14:26
Да не чего не показало !

georJik
12.06.2014, 14:47
if(Mobile[playerid] != INVALID_PLAYER_ID)
{
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return false;
}

И лучше замени стринг для чата новым. Не желательно чтобы стринг для чата использовался в других функциях.

DeimoS
12.06.2014, 14:48
Этот совет пробовали?


Я бы размер stringer увеличил.

Если да, то попробуйте следующий код

if(Tel[playerid] == 1)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (1)");
new idx,tmp[64];
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (2)");
tmp = strcharsplit(text, idx);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (3)");
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (4)");
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (5)");
return false;
}
Я думаю, что в tmp записывается строка длиннее 64 символов и из-за этого происходит ошибка. И этот код поможет роверить мои догадки

georJik
12.06.2014, 14:49
Этот совет пробовали?



Если да, то попробуйте следующий код

if(Tel[playerid] == 1)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (1)");
new idx,tmp[64];
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (2)");
tmp = strcharsplit(text, idx);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (3)");
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (4)");
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (5)");
return false;
}
Я думаю, что в tmp записывается строка длиннее 64 символов и из-за этого происходит ошибка. И этот код поможет роверить мои догадки
Это лишнее, посмотрел скрин - Заменяй стринг вместо stringer'a создай новый. Там где в чат зеленым писал - это ты не замкнул return false; сообщения выше

DeimoS
12.06.2014, 14:50
Не желательно чтобы стринг для чата использовался в других функциях.

Чушь. Массив, он и в Африке массив. И если данные, которые были записаны в него до следующей перезаписи, не нужны - ничего страшного в этой самой перезаписи не случится. Ну а если нужны... Это вредно не только для чата будет :)

georJik
12.06.2014, 14:51
Чушь. Массив, он и в Африке массив. И если данные, которые были записаны в него до следующей перезаписи, не нужны - ничего страшного в этой самой перезаписи не случится. Ну а если нужны... Это вредно не только для чата будет :)
Попробуй заменить в своем моде все стринги на один и посмотри что вышло

DeimoS
12.06.2014, 14:56
Это лишнее, посмотрел скрин - Заменяй стринг вместо stringer'a создай новый. Там где в чат зеленым писал - это ты не замкнул return false; сообщения выше

return false погоды не сделает. Код сработает и мод дальше начнёт проверять условия, пока не дойдёт до return false в самом конце колбэка. Тут дело в ошибке, которая вызвана переполнением памяти. Срабатывает ошибка и в колбэк возвращается значение, не равное 0 (скорее даже вообще ничего не возвращается). Потому и отправляется сообщение без ID и прочего

- - - Добавлено - - -


Попробуй заменить в своем моде все стринги на один и посмотри что вышло


new string[36];
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
format(string, sizeof(string), "Ваш ник - %s", string);
SendClientMessage(playerid, -1, string);
В этом случае ничего плохого не случится. Сначала в массив запишется ник игрока, потом данные из массива попадут в format и format перезапишет ник на строку. А вот в этом коде

new string[23+3+MAX_PLAYER_NAME];
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
format(string, sizeof(string), "Ваш ник - %s", string);
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "Ник игрока с ID %d - %s", playerid, string);
SendClientMessageToAll(-1, string);
Уже случится ошибка, ибо в массиве будет хранится строка "Ваш ник - *ник*", когда очередь дойдёт до второго format. И в случае, который показан у автора, погоды новый массив не сделает. Максимум, что будет - потеряются данные для какой-то другой функции. Но подобного бага с чатом вызвать один массив не мог

Maksim97
12.06.2014, 15:38
Ну так что мне именно сделать?

DeimoS
12.06.2014, 15:47
Вот

Этот совет пробовали?



Если да, то попробуйте следующий код

if(Tel[playerid] == 1)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (1)");
new idx,tmp[64];
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (2)");
tmp = strcharsplit(text, idx);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (3)");
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (4)");
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (5)");
return false;
}
Я думаю, что в tmp записывается строка длиннее 64 символов и из-за этого происходит ошибка. И этот код поможет роверить мои догадки

L0ndl3m
12.06.2014, 15:52
GetPlayerName(playerid, string, MAX_PLAYERS);

Почему здесь MAX_PLAYERS? :grin:

Maksim97
12.06.2014, 15:57
Заместо этого?


if(Mobile[playerid] != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие");
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return 0;
}
if(Mobile[playerid] != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало второе условие");
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
if(IsPlayerConnected(Mobile[playerid]))
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало третье условие");
if(Mobile[Mobile[playerid]] == playerid) SendClientMessage(Mobile[playerid], COLOR_YELLOW,stringer);
else SendClientMessage(playerid, COLOR_GRAD1,"На второй линии ни кого нет");
return false;
}

DeimoS
12.06.2014, 16:09
Почему здесь MAX_PLAYERS? :grin:


Набегу писал :) Надо было через 3 минуты выходить уже. Исправил


Заместо этого?


if(Mobile[playerid] != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие");
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return 0;
}
if(Mobile[playerid] != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало второе условие");
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
if(IsPlayerConnected(Mobile[playerid]))
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало третье условие");
if(Mobile[Mobile[playerid]] == playerid) SendClientMessage(Mobile[playerid], COLOR_YELLOW,stringer);
else SendClientMessage(playerid, COLOR_GRAD1,"На второй линии ни кого нет");
return false;
}

Только вместо первого условия. Сравните код без SendClientMessage и поймёте :)

Maksim97
12.06.2014, 19:39
http://i.imgur.com/L4UtFAO.png

Воть

DeimoS
12.06.2014, 19:44
Эмм, как вставили? Покажите получившийся код

Maksim97
12.06.2014, 19:46
if(Tel[playerid] == 1)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (1)");
new idx,tmp[64];
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (2)");
tmp = strcharsplit(text, idx);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (3)");
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (4)");
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
SendClientMessage(playerid, 0xFF0000FF, "Сработало первое условие (5)");
return false;
}
if(Mobile[playerid] != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало второе условие");
new idx,tmp[64];
tmp = strcharsplit(text, idx);
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
if(IsPlayerConnected(Mobile[playerid]))
{
SendClientMessage(playerid, 0xFF0000FF, "Сработало третье условие");
if(Mobile[Mobile[playerid]] == playerid) SendClientMessage(Mobile[playerid], COLOR_YELLOW,stringer);
else SendClientMessage(playerid, COLOR_GRAD1,"На второй линии ни кого нет");
return false;
}

DeimoS
12.06.2014, 19:55
Вы либо не скомпилировали мод, либо вставили куда-то не туда. Заметьте какие в моём коде сообщения в SendClientMessage и какие выдаёт на скрине.

И попробуйте ка этот вариант

public OnPlayerText(playerid, text[])
{
if(gPlayerLogged[playerid] == 0) return false;
if(strcmp(text, "PizDoS Bot 0.3x", true) == 0) { Ban(playerid); return false; }
new ip[15],stringer[144];
GetPlayerIp(playerid,ip,sizeof(ip));
if(IsIpFound(text))
{
PlayerInfo[playerid][pMuteTime] = 10800;
PlayerInfo[playerid][pMuted] = 1;
format(stringer, sizeof(stringer), "%s: %s",PlayerInfo[playerid][pNames],text);
ABroadCast(COLOR_LIGHTRED,stringer,1);
format(stringer, sizeof(stringer), "- ID: %d | IP: [%s]",playerid,ip);
ABroadCast(COLOR_LIGHTRED,stringer,1);
format(stringer,sizeof(stringer),"[Security] Вы получили бан чата на 3 часа /mm - репорт");
SendClientMessage(playerid, COLOR_LIGHTRED, stringer);
SetPlayerChatBubble(playerid,"заткнут(а)",COLOR_PURPLE,30.0,10000);
return false;
}
if(gPlayerLogged[playerid] == 1 || PlayerInfo[playerid][pAdminop] == 0)
{
SetPVarInt(playerid, "NoAB", 1);
if(GetPVarInt(playerid,"AntiFlood") > gettime()){ SendClientMessage(playerid, 0xFFD5BBAA, "Не флуди!"); return false; }
SetPVarInt(playerid,"AntiFlood",gettime() + ANTI_FLOODS);
}
if(TalkingLivels[playerid] == 1)
{
if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "У Вас бан чата!"); return false; }
format(stringer, sizeof(stringer), "< LS News > [Тел.] %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
}
if(TalkingLivels[playerid] == 2)
{

if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "У Вас бан чата!"); return false; }
if(PlayerInfo[playerid][pMemberop] == 16)
{
format(stringer, sizeof(stringer), "< LS News > Ведущий %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
return false;
}
else
{
format(stringer, sizeof(stringer), "< LS News > Гость %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
return false;
}
}
if(Tel[playerid] == 1)
{
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return false;
}
if(Mobile[playerid] != INVALID_PLAYER_ID)
{
format(stringer, sizeof(stringer), "[Телефон] %s: %s", PlayerInfo[playerid][pNames], text);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return false;
}
if(IsPlayerConnected(Mobile[playerid]))
{
if(Mobile[Mobile[playerid]] == playerid)
{
SendClientMessage(Mobile[playerid], COLOR_YELLOW,stringer);
}
else { SendClientMessage(playerid, COLOR_GRAD1,"На второй линии ни кого нет"); }
return false;
}
if(PEfir[playerid] != INVALID_PLAYER_ID)
{
if(PlayerInfo[playerid][pMemberop] == 16 || PlayerInfo[playerid][pLeaderop] == 16)
{
if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "У Вас бан чата!"); return false; }
format(stringer, sizeof(stringer), "< LS News > %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
}
if(Pefir[playerid] == 2)
{
if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "У Вас бан чата!"); return false; }
format(stringer, sizeof(stringer), "< LS News > %s: %s", PlayerInfo[playerid][pNames], text);
LSNews(0x0073b7AA, stringer);
}
return false;
}
if(strcmp(text, "q", true) == 0)
{
new suspect = GetClosestPlayer(playerid);
if(GetDistanceBetweenPlayers(playerid,suspect) < 2)
{
}
switch(PlayerInfo[playerid][pMemberop])
{
case 13:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку Los Santos Vagos Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку Los Santos Vagos Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1); }
return false;
}
case 15:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку Grove Street Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку Grove Street Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1); }
return false;
}
case 17:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку Varios Los Aztecas Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку Varios Los Aztecas Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1); }
return false;
}
case 12:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку The Ballas Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку The Ballas Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1);
return false;
}
case 18:
{
format(stringer,sizeof(stringer), "показал(a) распальцовку The Rifa Gang");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку The Rifa Gang", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1); }
return false;
}
case 6:
{
format(stringer,sizeof(stringer), "показал(a) татуировку Yakuza's Family");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) татуировку Yakuza's Family", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GANGS","prtial_hndshk_01",4.0,0,0,0,0,0,1); }
return false;
}
case 5:
{
format(stringer,sizeof(stringer), "показал(a) татуировку La Cosa Nostra's Family");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) татуировку La Cosa Nostra's Family", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GANGS","prtial_hndshk_01",4.0,0,0,0,0,0,1); }
return false;
}
case 14:
{
format(stringer,sizeof(stringer), "показал(a) наколку 'Золотые купола'");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) наколку 'Золотые купола'", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"GANGS","prtial_hndshk_01",4.0,0,0,0,0,0,1); }
return false;
}
}
if(PlayerInfo[playerid][pAdminop] >= 1 && PlayerInfo[playerid][pLevel] >= 35)
{
format(stringer,sizeof(stringer), "показал(a) распальцовку Admins Team");
SetPlayerChatBubble(playerid,stringer,COLOR_PURPLE,30.0,10000);
format(stringer, sizeof(stringer), "%s показал(a) распальцовку Admins Team", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
ApplyAnimation(playerid,"GHANDS","gsign1LH",4.0,0,0,0,0,0,1);
return false;
}
}
if(strcmp(text, "эй", true) == 0 || strcmp(text, "э", true) == 0 || strcmp(text, "эй бля", true) == 0|| strcmp(text, "блять", true) == 0 || strcmp(text, "Блядь", true) == 0 || strcmp(text, "мля", true) == 0)
{
SetPlayerChatBubble(playerid,"возмущается",COLOR_PURPLE,30.0,10000);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"PED","fucku",4.0,0,0,0,0,0,1); }
return false;
}
if(strcmp(text, "мда", true) == 0 || strcmp(text, "идиот", true) == 0 || strcmp(text, "сука", true) == 0 || strcmp(text, "пидр", true) == 0 )
{
SetPlayerChatBubble(playerid, "Facepalm", COLOR_PURPLE, 30.0, 10000);
if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"MISC","plyr_shkhead",4.0,0,0,0,0,0,1); }
return false;
}
else if(strcmp(text, "*102#", true) == 0)
{

SendClientMessage(playerid, COLOR_LIGHTGREEN, "==[ Мобильный баланс ] ==");
format(stringer, sizeof(stringer), "- Баланс %d вирт",PlayerInfo[playerid][pMobile]);
SendClientMessage(playerid, COLOR_WHITE, stringer);
SendClientMessage(playerid, COLOR_WHITE, "- Пополнить баланс можно в любом банкомате");
SendClientMessage(playerid, COLOR_LIGHTGREEN, "==[ Мобильный баланс ] ==");
format(stringer, sizeof(stringer), "%s достаёт мобильник", PlayerInfo[playerid][pNames]);
ProxDetector(5.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return false;
}
else if(strcmp(text, "xD", true) == 0 || strcmp(text, "xd", true) == 0 || strcmp(text, ":В", true) == 0 || strcmp(text, ":в", true) == 0 )
{
format(stringer, sizeof(stringer), "%s смеётся", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, "смеётся", COLOR_PURPLE, 30.0, 10000);
return false;
}
else if(strcmp(text, "здравия", true) == 0)
{
format(stringer, sizeof(stringer), "%s отдал честь", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"отдал честь",COLOR_PURPLE,30.0,10000);
return false;
}
else if(strcmp(text, "чВ", true) == 0 || strcmp(text, "хД", true) == 0 || strcmp(text, "хд", true) == 0 || strcmp(text, "xDD", true) == 0)
{
format(stringer, sizeof(stringer), "%s валяется от смеха", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"валяется от смеха",COLOR_PURPLE,30.0,10000);
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
// if(PlayerCuffed[playerid] == 0) { ApplyAnimation(playerid,"FINALE","FIN_Land_Die",4.1,0,1,1,1,1,1); clearanim[playerid] = 4; }
}
return false;
}
else if(strcmp(text, ")", true) == 0 || strcmp(text, "))", true) == 0)
{
format(stringer, sizeof(stringer), "%s улыбается", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"улыбается",COLOR_PURPLE,30.0,10000);
return false;
}
else if(strcmp(text, ":D", true) == 0)
{
format(stringer, sizeof(stringer), "%s хохочет во весь голос", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"хохочет во весь голос",COLOR_PURPLE,30.0,10000);
return false;
}
else if(strcmp(text, "(", true) == 0 || strcmp(text, "((", true) == 0)
{
format(stringer, sizeof(stringer), "%s грустит", PlayerInfo[playerid][pNames]);
ProxDetector(30.0, playerid, stringer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid,"грустит",COLOR_PURPLE,30.0,10000);
return false;
}
if(realchat)
{
if(gPlayerLogged[playerid] == 0) { return false; }
if(PlayerInfo[playerid][pMuted] == 1)
{
format(stringer, sizeof(stringer), "У Вас бан чата! До снятия: %d секунд(ы)",PlayerInfo[playerid][pMuteTime]);
SendClientMessage(playerid, COLOR_LIGHTRED, stringer);
return false;
}
if(gag[playerid] == 1) { SendClientMessage(playerid, COLOR_LIGHTRED, "У Вас кляп, вы не можете говорить!"); return false; }
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && robbankstime[playerid] == 0 && PlayerTied[playerid] == 0 && PlayerCuffedTime[playerid] == 0)
{
ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,1,1,1);
clearanim[playerid] = 3;
}
format(stringer, sizeof(stringer), "- %s[%d]: %s", PlayerInfo[playerid][pNames],playerid, text);
SetPlayerChatBubble(playerid, text, 0x6ab1ffaa, 20.0, 10000);
ProxDetector(20.0, playerid, stringer,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
return false;
}
return false;
}

Maksim97
13.06.2014, 02:36
Всё баг исправлен , спасибо всем тем кто помогал особое огромное спасибо "DeimoS"

DeimoS
13.06.2014, 10:07
Проблема была в

new idx,tmp[64];
tmp = strcharsplit(text, idx);
если кто не понял. Вообще непонятно для чего это было сделано, ибо далее код нигде не используется. Но только набиралось больше 64 символов и происходило переполнение ячеек в tmp => выполнение коллбэка прерывалось текст отправлялся в стандартный чат (как при return != 0)

OKStyle
13.06.2014, 14:47
Да, спасибо DeimoS, что OKStyle рассказал, как исправить баг :lol:

DeimoS
13.06.2014, 16:36
Да, спасибо DeimoS, что OKStyle рассказал, как исправить баг :lol:

Таки дело не в массиве stringer было :blum3:

OKStyle
14.06.2014, 13:42
Ну суть та же, весь код не смотрел))