PDA

Просмотр полной версии : [Вопрос] cmd



Den_Gurino
13.04.2019, 15:54
Здравствуй легендарный портал pro-pawn и его жители!
Пожалуйста, помогите мне перевести вот эти 2-е команды на cmd:
За вашу помощь, с меня как полагается!


//================================|/lwarn|==================================
else if(strcmp(cmd, "/lwarn", true) == 0)
{
if(FD1 || FD2 || FD3)//Проверка на Уровень Админки
{
tmp = strcharsplit(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /lwarn [id] [Причина]");
giveplayerid = ReturnUser(tmp);
new ftext[25];
switch(PlayerInfo[giveplayerid][pMRInections])//Проверка на лидерство у игрока
{
case 1: { ftext = "LSPD"; }
case 2: { ftext = "FBI"; }
case 3: { ftext = "Army SF"; }
case 4: { ftext = "Мин.Здрава"; }
case 5: { ftext = "La Cosa Nostra"; }
case 6: { ftext = "Yakuza"; }
case 7: { ftext = "Мэрии"; }
case 10: { ftext = "SFPD"; }
case 11: { ftext = "Инструкторов"; }
case 12: { ftext = "Ballas Gang"; }
case 13: { ftext = "Vagos Gang"; }
case 14: { ftext = "Russian Mafia"; }
case 15: { ftext = "Grove Street Gang"; }
case 16: { ftext = "San News"; }
case 17: { ftext = "Aztecas Gang"; }
case 18: { ftext = "Rifa Gang"; }
case 19: { ftext = "Army LV"; }
case 21: { ftext = "LVPD"; }
case 23: { ftext = "Hitmans"; }
case 24: { ftext = "Street Racers"; }
case 25: { ftext = "S.W.A.T"; }
case 26: { ftext = "Правительства"; }
default: { ftext = "Ошибка"; }
}
if(PlayerInfo[giveplayerid][pLRInections] == 0) return SendClientMessage(playerid, COLOR_GRAD2, "Он не лидер!");
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /lwarn [id] [Причина]");
PlayerInfo[giveplayerid][pLWarns] += 1;//Выдает +1 выговор
if(PlayerInfo[giveplayerid][pLWarns] >= 4) return SendClientMessage(playerid, COLOR_GREY, "У него 3/3 Выговоров");
if(PlayerInfo[giveplayerid][pLWarns] >= 3)//Если выговор 3, то
{
format(stringer, sizeof(stringer), "[WARNING!]:{00ff00}%s {ffffff}был снят Администратором {00FF00}%s {ff0000}[Выговор: /3]. {ffffff}Причина: %s ", PlayerInfo[giveplayerid][pNames],PlayerInfo[playerid][pNames], (result));
SendAdminMessage(COLOR_REDD, stringer);//Сообщение Для Администрации
format(stringer, sizeof(stringer), "<< %s[%d]: Лидер %s %s Снят! [Выговор: 3/3]. Причина: %s>>", PlayerInfo[playerid][pNames], playerid, ftext, PlayerInfo[giveplayerid][pNames], (result));
OOCOff(COLOR_OOC,stringer);//Сообщение в Глобал Чат(Типо /o)
SendClientMessage(giveplayerid, COLOR_WHITE, "Теперь вы снова гражданский...");
SetPlayerArmourAC(giveplayerid,0);//Обнуляем броню
Delgun(giveplayerid);//Обнуляем оружие
ResetPlayerWeapons(giveplayerid);//Забираем все оружие
PlayerInfo[giveplayerid][pMRInections] = 0;//Обнуление фракции
PlayerInfo[giveplayerid][pLRInections] = 0;//Обнуление лидерства
PlayerInfo[giveplayerid][pRKInections] = 0;//Обнуление ранка
PlayerInfo[giveplayerid][pLWarns] = 0;//Обнуление Выговор
SetPlayerInterior(giveplayerid, 0);//Перемещаем в интерьер 0
PlayerInfo[giveplayerid][pInt] = 0;//Сохраняем интерьер 0
SpawnPlayer(giveplayerid);//Спавним игрока
return 1;
}
format(stringer, sizeof(stringer), "[WARNING!]:{00ff00}%s {ffffff}получил Выговор от {00FF00}%s {ff0000}[Выговор: %d/3]. {ffffff}Причина: %s ", PlayerInfo[giveplayerid][pNames],PlayerInfo[playerid][pNames],PlayerInfo[giveplayerid][pLWarns], (result));
SendAdminMessage(COLOR_REDD, stringer);//Сообщение в Админ чат
format(stringer, sizeof(stringer), "<< %s[%d]: Лидер %s %s получил выговор [%d/3]. Причина: %s>>", PlayerInfo[playerid][pNames], playerid, ftext, PlayerInfo[giveplayerid][pNames], PlayerInfo[giveplayerid][pLWarns], (result));
OOCOff(COLOR_OOC,stringer);//Сообщение в глобал
OnPlayerUpdateRL(giveplayerid);//Обновление игрока
return 1;
}//not connected
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");
}
}
return true;
}
//===============================|/lunwarn|=================================
if(strcmp(cmd, "/lunwarn", true) == 0)
{
if(FD1 || FD2 || FD3 || PlayerInfo[playerid][pAdmLed] == 3)//Проверка на Админ Уровень
{
tmp = strcharsplit(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, " Введите: /lunwarn [id]");
giveplayerid = ReturnUser(tmp);
if(PlayerInfo[giveplayerid][pLWarns] <= 0) {SendClientMessage(playerid, COLOR_RED, "Выговоров нет"); return true;}
if(IsPlayerConnected(giveplayerid))
{
PlayerInfo[giveplayerid][pLWarns] -= 1;//Убираем 1 выговор
format(stringer, sizeof(stringer), "Выговор с %s снят", PlayerInfo[giveplayerid][pNames]);
SendClientMessage(playerid, COLOR_RED, stringer);
format(stringer, sizeof(stringer), "[LUNWARN] {FFFFFF}Администратор {FF6347}%s {FFFFFF}снял Выговор с {FF6347}%s [Выговоры: %d/3]",PlayerInfo[playerid][pNames],PlayerInfo[giveplayerid][pNames],PlayerInfo[giveplayerid][pLWarns]);
ABroadCast(COLOR_LIGHTRED,stringer,1);
format(stringer, sizeof(stringer), "С вас снят один Выговор Лидера");
SendClientMessage(giveplayerid, COLOR_GREEN, stringer);
}
else SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Игрок не найден!");
}
return true;
}

DeimoS
13.04.2019, 18:24
Ну пиши уж сразу не "помогите мне перевести", а "переведите за меня".

//================================|/lwarn|==================================
CMD:lwarn(playerid, params[])
{
if(FD1 || FD2 || FD3)//Проверка на Уровень Админки
{
new giveplayerid;
if(!sscanf(params, "us[128]", giveplayerid, params))
return SendClientMessage(playerid, COLOR_WHITE, "Введите: /lwarn [id] [Причина]");

if(giveplayerid == INVALID_PLAYER_ID)
return SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");

new ftext[25];
switch(PlayerInfo[giveplayerid][pMRInections])//Проверка на лидерство у игрока
{
case 1: { ftext = "LSPD"; }
case 2: { ftext = "FBI"; }
case 3: { ftext = "Army SF"; }
case 4: { ftext = "Мин.Здрава"; }
case 5: { ftext = "La Cosa Nostra"; }
case 6: { ftext = "Yakuza"; }
case 7: { ftext = "Мэрии"; }
case 10: { ftext = "SFPD"; }
case 11: { ftext = "Инструкторов"; }
case 12: { ftext = "Ballas Gang"; }
case 13: { ftext = "Vagos Gang"; }
case 14: { ftext = "Russian Mafia"; }
case 15: { ftext = "Grove Street Gang"; }
case 16: { ftext = "San News"; }
case 17: { ftext = "Aztecas Gang"; }
case 18: { ftext = "Rifa Gang"; }
case 19: { ftext = "Army LV"; }
case 21: { ftext = "LVPD"; }
case 23: { ftext = "Hitmans"; }
case 24: { ftext = "Street Racers"; }
case 25: { ftext = "S.W.A.T"; }
case 26: { ftext = "Правительства"; }
default: { ftext = "Ошибка"; }
}
if(PlayerInfo[giveplayerid][pLRInections] == 0) return SendClientMessage(playerid, COLOR_GRAD2, "Он не лидер!");
PlayerInfo[giveplayerid][pLWarns] += 1;//Выдает +1 выговор
if(PlayerInfo[giveplayerid][pLWarns] >= 4) return SendClientMessage(playerid, COLOR_GREY, "У него 3/3 Выговоров");
if(PlayerInfo[giveplayerid][pLWarns] >= 3)//Если выговор 3, то
{
format(stringer, sizeof(stringer), "[WARNING!]:{00ff00}%s {ffffff}был снят Администратором {00FF00}%s {ff0000}[Выговор: /3]. {ffffff}Причина: %s ", PlayerInfo[giveplayerid][pNames],PlayerInfo[playerid][pNames], (params));
SendAdminMessage(COLOR_REDD, stringer);//Сообщение Для Администрации
format(stringer, sizeof(stringer), "<< %s[%d]: Лидер %s %s Снят! [Выговор: 3/3]. Причина: %s>>", PlayerInfo[playerid][pNames], playerid, ftext, PlayerInfo[giveplayerid][pNames], (params));
OOCOff(COLOR_OOC,stringer);//Сообщение в Глобал Чат(Типо /o)
SendClientMessage(giveplayerid, COLOR_WHITE, "Теперь вы снова гражданский...");
SetPlayerArmourAC(giveplayerid,0);//Обнуляем броню
Delgun(giveplayerid);//Обнуляем оружие
ResetPlayerWeapons(giveplayerid);//Забираем все оружие
PlayerInfo[giveplayerid][pMRInections] = 0;//Обнуление фракции
PlayerInfo[giveplayerid][pLRInections] = 0;//Обнуление лидерства
PlayerInfo[giveplayerid][pRKInections] = 0;//Обнуление ранка
PlayerInfo[giveplayerid][pLWarns] = 0;//Обнуление Выговор
SetPlayerInterior(giveplayerid, 0);//Перемещаем в интерьер 0
PlayerInfo[giveplayerid][pInt] = 0;//Сохраняем интерьер 0
SpawnPlayer(giveplayerid);//Спавним игрока
return 1;
}
format(stringer, sizeof(stringer), "[WARNING!]:{00ff00}%s {ffffff}получил Выговор от {00FF00}%s {ff0000}[Выговор: %d/3]. {ffffff}Причина: %s ", PlayerInfo[giveplayerid][pNames],PlayerInfo[playerid][pNames],PlayerInfo[giveplayerid][pLWarns], (params));
SendAdminMessage(COLOR_REDD, stringer);//Сообщение в Админ чат
format(stringer, sizeof(stringer), "<< %s[%d]: Лидер %s %s получил выговор [%d/3]. Причина: %s>>", PlayerInfo[playerid][pNames], playerid, ftext, PlayerInfo[giveplayerid][pNames], PlayerInfo[giveplayerid][pLWarns], (params));
OOCOff(COLOR_OOC,stringer);//Сообщение в глобал
OnPlayerUpdateRL(giveplayerid);//Обновление игрока
return 1;
}
return true;
}
//===============================|/lunwarn|=================================
CMD:lunwarn(playerid, params[])
{
if(FD1 || FD2 || FD3 || PlayerInfo[playerid][pAdmLed] == 3)//Проверка на Админ Уровень
{
new giveplayerid;
if(!sscanf(params, "u", giveplayerid))
return SendClientMessage(playerid, COLOR_WHITE, " Введите: /lunwarn [id]");

if(giveplayerid == INVALID_PLAYER_ID)
return SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");

if(PlayerInfo[giveplayerid][pLWarns] <= 0) {SendClientMessage(playerid, COLOR_RED, "Выговоров нет"); return true;}
PlayerInfo[giveplayerid][pLWarns] -= 1;//Убираем 1 выговор
format(stringer, sizeof(stringer), "Выговор с %s снят", PlayerInfo[giveplayerid][pNames]);
SendClientMessage(playerid, COLOR_RED, stringer);
format(stringer, sizeof(stringer), "[LUNWARN] {FFFFFF}Администратор {FF6347}%s {FFFFFF}снял Выговор с {FF6347}%s [Выговоры: %d/3]",PlayerInfo[playerid][pNames],PlayerInfo[giveplayerid][pNames],PlayerInfo[giveplayerid][pLWarns]);
ABroadCast(COLOR_LIGHTRED,stringer,1);
format(stringer, sizeof(stringer), "С вас снят один Выговор Лидера");
SendClientMessage(giveplayerid, COLOR_GREEN, stringer);
}
return true;
}

Den_Gurino
13.04.2019, 22:31
В связи с этой темой, я думаю рас мод на mysql, значит нужно сделать запрос в бд для проверки на plwarn
Правильно ли я делаю, если да, потом куда мне это запихать?

mysql_format(connects, string, MAX_STR, "UPDATE `accounts` SET `pLWarns` = '0' WHERE `Name` = '%s'", tmp);

DeimoS
13.04.2019, 23:26
Эмм, этот запрос обнулит значение столбца pLWarns у указанного игрока, а у тебя в коде отнимается единица от общего числа предупреждений. И да, тут только формирование запроса. Отправки запроса тут нет.
Вставлять нужно в конец второй команды, после
format(stringer, sizeof(stringer), "С вас снят один Выговор Лидера");
SendClientMessage(giveplayerid, COLOR_GREEN, stringer);

Сам запрос будет выглядеть как-то так:
format(string, sizeof(string), "UPDATE accounts SET pLWarns=%d WHERE Name='%s' LIMIT 1", PlayerInfo[giveplayerid][pLWarns], PlayerInfo[giveplayerid][pNames]);
//Тут функция отправки запроса
Только размер string подсчитай правильно для этого запроса.

Den_Gurino
14.04.2019, 10:16
Сделал вот так

mysql_format(connects, string, sizeof(string), "UPDATE accounts SET pLWarns=%d WHERE Name='%s' LIMIT 1", PlayerInfo[giveplayerid][pLWarns], PlayerInfo[giveplayerid][pNames]);
mysql_empty(connects, string);
Будет работать ли, не знаю, проверить вечером только смогу!

DeimoS
14.04.2019, 11:17
mysql_format там не нужен. Я же не просто так переделал на обычный format. Хотя бы изучи предназначение mysql_format, а не просто пихай как попало :)