Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Баг с чатом

Статус
В этой теме нельзя размещать новые ответы.

Ivan Wade

Начинающий
Пользователь
Регистрация
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;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу