Nike_
Умник
Некоторые знают что на Samp-VL отправлять объявления можно только с конца!
Это сделали дабы избежать бага с подгр****ием имён!
Я ещё давно его обнаружил и исправил!
Но найдя время я сделал свою проверку объявлений и решил что эта мне не нужна!
Те кто уже сделали себе такую проверку вот по этому уроку Тыц
Просто в наши диалоги, там где мы отправляем/удаляем/отправляем администрации объявление
Добавим вот эту проверку!
Или сразу заменим D_NMENU+6
Это сделали дабы избежать бага с подгр****ием имён!
Я ещё давно его обнаружил и исправил!
Но найдя время я сделал свою проверку объявлений и решил что эта мне не нужна!
Те кто уже сделали себе такую проверку вот по этому уроку Тыц
Просто в наши диалоги, там где мы отправляем/удаляем/отправляем администрации объявление
Добавим вот эту проверку!
PHP:
if(GetPVarInt(playerid, "AdvertID") != TOTALADVERT[full])
{
ShowPlayerDialog(playerid, D_NMENU+6, 2, "Объявления", "Прочитать объявление\nРедактировать объявление\nУдалить объявление\nОтправить объявление\nОтправить администрации", "Принять", "Назад");
return SendClientMessage(playerid, COLOR_GREY, "Отправлять объявление можно только с конца!");//Nike_
}
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);
}
}
}
Последнее редактирование:
