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

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

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

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

Исправляем баг с проверкой объявлений в Engine RP, делаем как на Samp-VL

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

Nike_

Умник
Некоторые знают что на Samp-VL отправлять объявления можно только с конца!
Это сделали дабы избежать бага с подгр****ием имён!


Я ещё давно его обнаружил и исправил!

Но найдя время я сделал свою проверку объявлений и решил что эта мне не нужна!
Те кто уже сделали себе такую проверку вот по этому уроку
Тыц

Просто в наши диалоги, там где мы отправляем/удаляем/отправляем администрации объявление
Добавим вот эту проверку!

PHP:
if(GetPVarInt(playerid, "AdvertID") != TOTALADVERT[full])
{
  ShowPlayerDialog(playerid, D_NMENU+6, 2, "Объявления", "Прочитать объявление\nРедактировать объявление\nУдалить объявление\nОтправить объявление\nОтправить администрации", "Принять", "Назад");
  return SendClientMessage(playerid, COLOR_GREY, "Отправлять объявление можно только с конца!");//Nike_
}
Или сразу заменим D_NMENU+6
PHP:
case D_NMENU+6:
		{
			if(!response) { DeletePVar(playerid, "AdvertID"); return AdvertList(playerid); }
			new full = 0;
			switch(PlayerInfo[playerid][pMember])
			{
			case 16: full = 0;
			case 9: full = 1;
			case 20: full = 2;
			}
			switch(listitem)
			{
			case 0:
				{
					format(string, 128, "Текст: %s - Прислал: %s",AdvertInfo[GetPVarInt(playerid, "AdvertID")][full][adText],AdvertInfo[GetPVarInt(playerid, "AdvertID")][full][adName]);
					ShowPlayerDialog(playerid, D_NMENU+7, 0, "Объявления", string, "Назад", "");
				}
			case 1:
				{
					format(string, 128, "Текст: %s - Прислал: %s",AdvertInfo[GetPVarInt(playerid, "AdvertID")][full][adText],AdvertInfo[GetPVarInt(playerid, "AdvertID")][full][adName]);
					ShowPlayerDialog(playerid, D_NMENU+8, 1, "Объявления", string, "Принять", "Назад");
				}
			case 2:
				{
					if(GetPVarInt(playerid, "AdvertID") != TOTALADVERT[full])
					{
						DeletePVar(playerid, "AdvertID");
						SendClientMessage(playerid, COLOR_GREY, "Редактировать объявление можно только с конца!");//Nike_
						return AdvertList(playerid);
					}
					for(new i = GetPVarInt(playerid, "AdvertID"); i <= TOTALADVERT[full] - 1; i++) memcpy(AdvertInfo[i][full], AdvertInfo[i+1][full], 0, 512);
					TOTALADVERT[full]--;
					SendClientMessage(playerid, COLOR_LIGHTRED, "Объявление удалено");
					DeletePVar(playerid, "AdvertID");
					AdvertList(playerid);
				}
			case 3:
				{
					if(GetPVarInt(playerid, "AdvertID") != TOTALADVERT[full])
					{
						DeletePVar(playerid, "AdvertID");
						SendClientMessage(playerid, COLOR_GREY, "Отправлять объявление можно только с конца!");//Nike_
						return AdvertList(playerid);
					}
					if(AdvertTime > gettime())
					{
						DeletePVar(playerid, "AdvertID");
						SendClientMessage(playerid, COLOR_GREY, "Посылать объявление можно раз в 30 секунд!");//Nike_
						return AdvertList(playerid);
					}
					new nameee[MAX_PLAYER_NAME];
					GetPlayerName(playerid,nameee,sizeof(nameee));
					format(string, 128, "- Обьявление: %s. Прислал: %s. Телефон: %i",AdvertInfo[GetPVarInt(playerid, "AdvertID")][full][adText], AdvertInfo[GetPVarInt(playerid, "AdvertID")][full][adName],AdvertInfo[GetPVarInt(playerid, "AdvertID")][full][adPhone]);
					SendClientMessageToAll(TEAM_GROVE_COLOR, string);
					format(string, 128, "        Проверку произвёл сотрудник San News: %s", nameee);
					SendClientMessageToAll(TEAM_GROVE_COLOR, string);
					for(new i = GetPVarInt(playerid, "AdvertID"); i <= TOTALADVERT[full] - 1; i++) memcpy(AdvertInfo[i][full], AdvertInfo[i+1][full], 0, 512);
					TOTALADVERT[full]--;
					AdvertTime = gettime() + 30;
					DeletePVar(playerid, "AdvertID");
					AdvertList(playerid);
				}
			case 4:
				{
					if(GetPVarInt(playerid, "AdvertID") != TOTALADVERT[full])
					{
						DeletePVar(playerid, "AdvertID");
						SendClientMessage(playerid, COLOR_GREY, "Отправлять объявление можно только с конца!");//Nike_
						return AdvertList(playerid);
					}
					new nameee[MAX_PLAYER_NAME];
					GetPlayerName(playerid,nameee,sizeof(nameee));
					format(string, 128, "[A] [AD] Обьявление: %s. Прислал: %s (Отправил: %s)",AdvertInfo[GetPVarInt(playerid, "AdvertID")][full][adText], AdvertInfo[GetPVarInt(playerid, "AdvertID")][full][adName], nameee);
					SendAdminMessage(COLOR_LIGHTRED, string);
					for(new i = GetPVarInt(playerid, "AdvertID"); i <= TOTALADVERT[full] - 1; i++) memcpy(AdvertInfo[i][full], AdvertInfo[i+1][full], 0, 512);
					TOTALADVERT[full]--;
					SendClientMessage(playerid, COLOR_LIGHTRED, "Объявление отправлено администрации");
					DeletePVar(playerid, "AdvertID");
					AdvertList(playerid);
				}
			}
    }
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу