Вход

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



Alexander
10.08.2015, 06:21
Как на основе этого

if(!strcmp(cmd,"/makeadmin",true))
{
if(IsPlayerConnected(playerid))
{
new str[100];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))return SendClientMessage(playerid, COLOR_GRAD2, "{"#cYELLOW"}• [Подсказка]: {"#cWHITE"}/makeadmin [ID игрока] [LVL]");
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(pData[para1][pWarnc]) return SendClientMessage(playerid,CGRAY,"У игрока есть варн");
if(!strcmp(pData[playerid][pNickname], "Alexander_Alone", true) || !strcmp(pData[playerid][pNickname], "Dani_Stoun", true) || !strcmp(pData[playerid][pNickname], "Tom_Parket", true))
{
if(pData[playerid][pAdmin] >= 8)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if(level < 0 || level > 9) return SendClientMessage(playerid, COLOR_GREY, "Админка от 0 до 9");
pData[para1][pAdmin] = level;
if(level > 0)
{
format(str, sizeof(str), "%s назначил Вас администратором. Ваш пароль 1111", pData[playerid][pNickname]);
SendClientMessage(para1, COLOR_YELLOW, str);
format(str, sizeof(str), "Вы назначили %s администратором %i уровня.", pData[para1][pNickname], level);
SendClientMessage(playerid, COLOR_YELLOW, str);
}
else if(level == 0)
{
SendMes(playerid, COLOR_YELLOW, "Вы сняли %s с должности администратора.", pData[para1][pNickname]);
SendMes(para1, COLOR_YELLOW, "%s снял вас с должности администратора.", pData[playerid][pNickname]);
}
new query[150];
format(query,sizeof(query),"UPDATE `accounts` SET `admin` = '%d' WHERE id = '%d'",pData[para1][pAdmin],pData[para1][pMysqlID]);
sql_query(zConn, query, QUERY_THREADED);
}
}
}
}
}
}
сделать вот это

CMD:moderator(playerid, params[])
{
if(PlayerLogged[playerid] == 0) return 1;
if(PlayerInfo[playerid][pAdmin] < 8 || AdminLogged[playerid] == false) return 1;
new data[32], name[32];
if(sscanf(params, "s[32]i", name, params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /moderator [name] [lvl]");
if(params[1] < 0) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /moderator [name] [lvl]");
format(query, sizeof(query), "SELECT * FROM "TABLE_ADMIN" WHERE name = '%s'", name);
mysql_query(query);
mysql_store_result();
if(mysql_fetch_row_format(query))
{
if(params[1] == 0)
{
format(query, sizeof(query), "DELETE FROM "TABLE_ADMIN" WHERE `name`='%s'", name);
mysql_query(query);
mysql_free_result();
SendMes(playerid, COLOR_LIGHTRED, "%s успешно удален из списка модераторов", name);
}
else
{
format(query, sizeof(query), "UPDATE "TABLE_ADMIN" SET level = '%d' WHERE name = '%s' LIMIT 1", params[1],name);
mysql_query(query);
SendMes(playerid, COLOR_GREEN, "Уровень администрирования у %s изменен на %d", name, params[1]);
}
}
else
{
getdate(years, months, days);
format(data, 32, "%02d.%02d.%04d", days, months, years);
format(query, 512, "INSERT INTO "TABLE_ADMIN" (Name, level, LastCon) VALUES ('%s', %d, '%s')", name, params[1], data);
mysql_query(query);
SendMes(playerid, COLOR_GREEN, "%s успешно добавлен в список модераторов. Уровень полномочий %d", name, params[1]);
}
return true;
}

Sp1ke
10.08.2015, 09:46
Не очень понял, что вам надо, сформулируйте правильно.

Alexander
10.08.2015, 09:51
вот это

CMD:moderator(playerid, params[])
{
if(PlayerLogged[playerid] == 0) return 1;
if(PlayerInfo[playerid][pAdmin] < 8 || AdminLogged[playerid] == false) return 1;
new data[32], name[32];
if(sscanf(params, "s[32]i", name, params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /moderator [name] [lvl]");
if(params[1] < 0) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /moderator [name] [lvl]");
format(query, sizeof(query), "SELECT * FROM "TABLE_ADMIN" WHERE name = '%s'", name);
mysql_query(query);
mysql_store_result();
if(mysql_fetch_row_format(query))
{
if(params[1] == 0)
{
format(query, sizeof(query), "DELETE FROM "TABLE_ADMIN" WHERE `name`='%s'", name);
mysql_query(query);
mysql_free_result();
SendMes(playerid, COLOR_LIGHTRED, "%s успешно удален из списка модераторов", name);
}
else
{
format(query, sizeof(query), "UPDATE "TABLE_ADMIN" SET level = '%d' WHERE name = '%s' LIMIT 1", params[1],name);
mysql_query(query);
SendMes(playerid, COLOR_GREEN, "Уровень администрирования у %s изменен на %d", name, params[1]);
}
}
else
{
getdate(years, months, days);
format(data, 32, "%02d.%02d.%04d", days, months, years);
format(query, 512, "INSERT INTO "TABLE_ADMIN" (Name, level, LastCon) VALUES ('%s', %d, '%s')", name, params[1], data);
mysql_query(query);
SendMes(playerid, COLOR_GREEN, "%s успешно добавлен в список модераторов. Уровень полномочий %d", name, params[1]);
}
return true;
}
Надо подогнать под мой мод

а вот это команда из моего мода

if(!strcmp(cmd,"/makeadmin",true))
{
if(IsPlayerConnected(playerid))
{
new str[100];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))return SendClientMessage(playerid, COLOR_GRAD2, "{"#cYELLOW"}• [Подсказка]: {"#cWHITE"}/makeadmin [ID игрока] [LVL]");
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(pData[para1][pWarnc]) return SendClientMessage(playerid,CGRAY,"У игрока есть варн");
if(!strcmp(pData[playerid][pNickname], "Alexander_Alone", true) || !strcmp(pData[playerid][pNickname], "Dani_Stoun", true) || !strcmp(pData[playerid][pNickname], "Tom_Parket", true))
{
if(pData[playerid][pAdmin] >= 8)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if(level < 0 || level > 9) return SendClientMessage(playerid, COLOR_GREY, "Админка от 0 до 9");
pData[para1][pAdmin] = level;
if(level > 0)
{
format(str, sizeof(str), "%s назначил Вас администратором. Ваш пароль 1111", pData[playerid][pNickname]);
SendClientMessage(para1, COLOR_YELLOW, str);
format(str, sizeof(str), "Вы назначили %s администратором %i уровня.", pData[para1][pNickname], level);
SendClientMessage(playerid, COLOR_YELLOW, str);
}
else if(level == 0)
{
SendMes(playerid, COLOR_YELLOW, "Вы сняли %s с должности администратора.", pData[para1][pNickname]);
SendMes(para1, COLOR_YELLOW, "%s снял вас с должности администратора.", pData[playerid][pNickname]);
}
new query[150];
format(query,sizeof(query),"UPDATE `accounts` SET `admin` = '%d' WHERE id = '%d'",pData[para1][pAdmin],pData[para1][pMysqlID]);
sql_query(zConn, query, QUERY_THREADED);
}
}
}
}
}
}

Sp1ke
10.08.2015, 11:06
Ну если я правильно понял, то
CMD:moderator(playerid, params[])
{
new str[100];
if(!strcmp(pData[playerid][pNickname], "Alexander_Alone", true) || !strcmp(pData[playerid][pNickname], "Dani_Stoun", true) || !strcmp(pData[playerid][pNickname], "Tom_Parket", true))
{
if(sscanf(params, "ii", params[0], params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Ââåäèòå: /moderator [id] [level]");
if(pData[params[0]][pWarnc]) return SendClientMessage(playerid,CGRAY,"Ó èãðîêà âàðí");
if(pData[playerid][pAdmin] >= 8)
{
if(IsPlayerConnected(params[0]))
{
if(params[0] != INVALID_PLAYER_ID)
{
if(params[1] < 0 || params[1] > 9) return SendClientMessage(playerid, COLOR_GREY, "Àäìèíêà îò 0 äî 9");
pData[params[0]][pAdmin] = params[1];
if(params[1] > 0)
{
format(str, sizeof(str), "%s íàçíà÷èë Âàñ àäìèíèñòðàòîðîì. Âàø ïàðîëü 1111", pData[playerid][pNickname]);
SendClientMessage(params[0], COLOR_YELLOW, str);
format(str, sizeof(str), "Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì %i óðîâíÿ.", pData[params[0]][pNickname], params[1]);
SendClientMessage(playerid, COLOR_YELLOW, str);
}
else if(params[1] == 0)
{
SendMes(playerid, COLOR_YELLOW, "Âû ñíÿëè %s ñ äîëæíîñòè àäìèíèñòðàòîðà.", pData[params[0]][pNickname]);
SendMes(params[0], COLOR_YELLOW, "%s ñíÿë âàñ ñ äîëæíîñòè àäìèíèñòðàòîðà", pData[playerid][pNickname]);
}
new query[150];
format(query,sizeof(query),"UPDATE `accounts` SET `admin` = '%d' WHERE id = '%d'",pData[params[0]][pAdmin],pData[params[0]][pMysqlID]);
sql_query(zConn, query, QUERY_THREADED);
}
}
}
}
return true;
}

Роуди.
10.08.2015, 14:45
Ну если я правильно понял, то
CMD:moderator(playerid, params[])
{
new str[100];
if(!strcmp(pData[playerid][pNickname], "Alexander_Alone", true) || !strcmp(pData[playerid][pNickname], "Dani_Stoun", true) || !strcmp(pData[playerid][pNickname], "Tom_Parket", true))
{
if(sscanf(params, "ii", params[0], params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Ââåäèòå: /moderator [id] [level]");
if(pData[params[0]][pWarnc]) return SendClientMessage(playerid,CGRAY,"Ó èãðîêà âàðí");
if(pData[playerid][pAdmin] >= 8)
{
if(IsPlayerConnected(params[0]))
{
if(params[0] != INVALID_PLAYER_ID)
{
if(params[1] < 0 || params[1] > 9) return SendClientMessage(playerid, COLOR_GREY, "Àäìèíêà îò 0 äî 9");
pData[params[0]][pAdmin] = params[1];
if(params[1] > 0)
{
format(str, sizeof(str), "%s íàçíà÷èë Âàñ àäìèíèñòðàòîðîì. Âàø ïàðîëü 1111", pData[playerid][pNickname]);
SendClientMessage(params[0], COLOR_YELLOW, str);
format(str, sizeof(str), "Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì %i óðîâíÿ.", pData[params[0]][pNickname], params[1]);
SendClientMessage(playerid, COLOR_YELLOW, str);
}
else if(params[1] == 0)
{
SendMes(playerid, COLOR_YELLOW, "Âû ñíÿëè %s ñ äîëæíîñòè àäìèíèñòðàòîðà.", pData[params[0]][pNickname]);
SendMes(params[0], COLOR_YELLOW, "%s ñíÿë âàñ ñ äîëæíîñòè àäìèíèñòðàòîðà", pData[playerid][pNickname]);
}
new query[150];
format(query,sizeof(query),"UPDATE `accounts` SET `admin` = '%d' WHERE id = '%d'",pData[params[0]][pAdmin],pData[params[0]][pMysqlID]);
sql_query(zConn, query, QUERY_THREADED);
}
}
}
}
return true;
}

Он имел ввиду перевести на стандартный процессор эту команду

Wise
10.08.2015, 17:29
Если здесь нет никакой проблемы в плане кода, то Вам в стол заказов.
Могу посоветовать только почитать о ZCMD и про использование sscanf со стандартным командным процессором: кликабельно. (http://pro-pawn.ru/showthread.php?5560-sscanf-OnPlayerCommandText)