PDA

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



kala4iks
28.02.2015, 22:08
Всем привет помогите еще пожалуйста сделать. в последний раз.
1. Как сделать чтоб если лидер выдал выше ранг игроку а у игрока был ниже ранг ранг то ему бы писало что ты был повышен а если допустим у игрока 5 ранг и лидер выдал ему 4 ему бы писало ты был понижен лидером Ник до 4 ранга.
2. Как сделать так что допустим лидер в 1 фракции мог повышать игроков до 10 рангов а в 2 до 6 ну а в 3 допустим до 8 или 9 рангов в общем помогите пожалуйста в долгу не останусь.


//==========================================================================
if(strcmp(cmd, "/giverank", true) == 0)
{
if(Player[playerid][pLeader] == 0 && Player[playerid][pZam] == 0) return send(playerid, 0xff0000ff,UnAdminMes);
if((Player[playerid][pZam] < 1 || FInfo[Player[playerid][pMember]][fGiverank] == false) && Player[playerid][pLeader] < 1) return send(playerid, 0xff0000ff, UnAdminMes);
if(sscanf(params, "dd", params[0], params[1])) return send(playerid, 0x33CCFFFF, "•{ffffff} /giverank [playerid] [ранг]");
if(params[1] > 6 || params[1] < 1) return send(playerid, 0xff0000ff,""vError"Используй значение от 1 до 6!");
if(!IsPlayerConnected(params[0])) return send(playerid, 0xff0000ff, NoConnectGivePlayer);
if(Player[playerid][pMember] != Player[params[0]][pMember])return send(playerid, 0xff0000ff, ""vError"Игрок не в вашей фракции!");
if(Player[params[0]][pLeader] > 0)return send(playerid, 0xff0000ff, ""vError"Данный игрок - лидер!");
if(Player[params[0]][pZam] > 0)return send(playerid, 0xff0000ff, ""vError"Данный игрок - заместитель!");
Player[params[0]][pRank] = params[1];
f(string, "[Фракция]:{FFFFFF}Вы повысили/понизили %s до %d ранга", sendername(params[0]),params[1]);
send(playerid, 0xE3AC1200, string);
f(string, "[Фракция]:{FFFFFF}Вы были повышены/понижены лидером %s до %d ранга", sendername(playerid),params[1]);
send(params[0], 0xE3AC1200, string);
SpawnPlayer(params[0]);
CheckPlayerSkin(params[0]);
SaveAccount(params[0]);
return 1;
}

И чтоб для каждого лидера смотря сколько у него во фракции рангов писало

если lspd то ему бы писало Используй значение от 1 до 10

а если грув стрит то Используй значение от 1 до 6

I'm Cobra
28.02.2015, 22:55
1.

if(Player[params[0]][pRank] < params[1])
{
// код
}
2.

if(Player[playerid][Leader] == 1) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-10]");

kala4iks
01.03.2015, 19:08
1.

if(Player[params[0]][pRank] < params[1])
{
// код
}
2.

if(Player[playerid][Leader] == 1) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-10]");

А будет писать ты был(а) повышен лидером до какого ранга?
И куда это встовлять?

if(Player[playerid][Leader] == 1) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-10]");

I'm Cobra
01.03.2015, 21:36
А будет писать ты был(а) повышен лидером до какого ранга?
И куда это встовлять?

if(Player[playerid][Leader] == 1) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-10]");


if(Player[params[0]][pRank] < params[1]) // если ранг был меньше
{
// код
}

kala4iks
03.03.2015, 12:10
Вообщем я сделал вот так вот только такая фигня когда я понижаю игрока пишет лидеру ты понизил игрока. а игроку ты был понижен.
А когда повышаю пишет тоже самое как и при понижении. в чем может быть проблема?


//==========================================================================
if(strcmp(cmd, "/giverank", true) == 0)
{
if(Player[playerid][pLeader] == 0 && Player[playerid][pZam] == 0) return send(playerid, 0xff0000ff,UnAdminMes);
if((Player[playerid][pZam] < 1 || FInfo[Player[playerid][pMember]][fGiverank] == false) && Player[playerid][pLeader] < 1) return send(playerid, 0xff0000ff, UnAdminMes);
if(sscanf(params,"dd",params[0],params[1])) return send(playerid, 0x33CCFFFF, "•{ffffff} /giverank [playerid] [ранг]");
if(params[1] > 11 || params[1] < 1) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-11]");
if(!IsPlayerConnected(params[0])) return send(playerid, 0xff0000ff, NoConnectGivePlayer);
if(Player[playerid][pMember] != Player[params[0]][pMember])return send(playerid, 0xff0000ff, ""vError"Игрок не в вашей фракции!");
if(Player[params[0]][pLeader] > 0)return send(playerid, 0xff0000ff, ""vError"Данный игрок - лидер!");
if(Player[params[0]][pZam] > 0)return send(playerid, 0xff0000ff, ""vError"Данный игрок - заместитель!");
Player[params[0]][pRank] = params[1];
if(params[1] > Player[params[0]][pRank])
{
f(string,"Ты был(а) повышен(а) до %d ранга лидером %s.",params[1],sendername(playerid));
send(params[0],COLOR_LIGHTBLUE,string);
f(string,"Ты повысил(а) игрока %s до %d ранга.",sendername(params[0]),params[1]);
send(playerid,COLOR_LIGHTBLUE,string);
}
else
{
f(string,"Ты был(а) понижен(а) до %d ранга лидером %s.",params[1],sendername(playerid));
send(params[0],COLOR_LIGHTBLUE,string);
f(string,"Ты понизил(а) игрока %s до %d ранга.",sendername(params[0]),params[1]);
send(playerid,COLOR_LIGHTBLUE,string);
}
SpawnPlayer(params[0]);
CheckPlayerSkin(params[0]);
SaveAccount(params[0]);
return 1;
}

kala4iks
03.03.2015, 18:08
поможите?

kala4iks
04.03.2015, 14:37
Что не кто не подскажет.?

Mazzilla
04.03.2015, 14:42
Player[params[0]][pRank] = params[1];
перед SpawnPlayer(params[0]); перенесите, то есть, сразу же после проверки.

kala4iks
05.03.2015, 15:04
А как все-таки сделать чтоб лидер lspd мог выдавать 11 рангов лидер 2 фракции мог выдовать допустим 7 рангои не больше лидер 3 фракции 6 рангов и не больше и чтоб если лидер пропишет больше ранг допустем ему можно только 11 рангов выдавать а он напишет /giverank ему напишет [ОШИБКА] Доступное значение от 1 до 11, а лидеру 2 фракции [ОШИБКА] Доступное значение от 1 до 7

- - - Добавлено - - -



Player[params[0]][pRank] = params[1];
перед SpawnPlayer(params[0]); перенесите, то есть, сразу же после проверки.

Спасибо за совет помогло.

Mazzilla
05.03.2015, 15:06
перед Player[params[0]][pRank] = params[1];

switch(Player[playerid][pMember])
{
case 1: if(params[1] <= 0 || params[1] > 11) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-11]");
case 2: if(params[1] <= 0 || params[1] > 7) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-7]");
case 3: if(params[1] <= 0 || params[1] > 6) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-6]");
}

kala4iks
05.03.2015, 15:29
перед Player[params[0]][pRank] = params[1];

switch(Player[playerid][pMember])
{
case 1: if(params[1] <= 0 || params[1] > 11) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-11]");
case 2: if(params[1] <= 0 || params[1] > 7) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-7]");
case 3: if(params[1] <= 0 || params[1] > 6) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-6]");
}


//==========================================================================
if(strcmp(cmd, "/giverank", true) == 0){
if(Player[playerid][pLeader] == 0 && Player[playerid][pZam] == 0) return send(playerid, 0xff0000ff,UnAdminMes);
if((Player[playerid][pZam] < 1 || FInfo[Player[playerid][pMember]][fGiverank] == false) && Player[playerid][pLeader] < 1) return send(playerid, 0xff0000ff, UnAdminMes);
if(sscanf(params,"dd",params[0],params[1])) return send(playerid, 0x33CCFFFF, "•{ffffff} /giverank [playerid] [ранг]");
if(params[1] > 11 || params[1] < 1) return SendClientMessage(playerid, COLOR_GREEN, "Используйте: {FFFFFF} /giverank [ID] [1-11]");
if(!IsPlayerConnected(params[0])) return send(playerid, 0xff0000ff, NoConnectGivePlayer);
if(Player[playerid][pMember] != Player[params[0]][pMember])return send(playerid, 0xff0000ff, ""vError"Игрок не в вашей фракции!");
if(Player[params[0]][pLeader] > 0)return send(playerid, 0xff0000ff, ""vError"Данный игрок - лидер!");
if(Player[params[0]][pZam] > 0)return send(playerid, 0xff0000ff, ""vError"Данный игрок - заместитель!");
if(params[1] > Player[params[0]][pRank]){
f(string,"Ты был(а) повышен(а) до %d ранга лидером %s.",params[1],sendername(playerid));
send(params[0],COLOR_LIGHTBLUE,string);
f(string,"Ты повысил(а) игрока %s до %d ранга.",sendername(params[0]),params[1]);
send(playerid,COLOR_LIGHTBLUE,string);}
else{
f(string,"Ты был(а) понижен(а) до %d ранга лидером %s.",params[1],sendername(playerid));
send(params[0],COLOR_LIGHTBLUE,string);
f(string,"Ты понизил(а) игрока %s до %d ранга.",sendername(params[0]),params[1]);
send(playerid,COLOR_LIGHTBLUE,string);}
Player[params[0]][pRank] = params[1];
SpawnPlayer(params[0]);
CheckPlayerSkin(params[0]);
SaveAccount(params[0]);
return 1;}

Все вроде разобрался.

kala4iks
05.03.2015, 16:21
Только теперь баг такой в некоторых фракциях допустим в 14 я пишу /giverank id которому я повышаю/или понижаю и ранг 7 а стоит чтоб выше 6 нельзя было и мне пишет ты понизил игрока а потом Ранг не может быть ниже 1 и выше 6


//==========================================================================
if(strcmp(cmd, "/giverank", true) == 0){
if(Player[playerid][pLeader] == 0 && Player[playerid][pZam] == 0) return send(playerid, 0xff0000ff,UnAdminMes);
if((Player[playerid][pZam] < 1 || FInfo[Player[playerid][pMember]][fGiverank] == false) && Player[playerid][pLeader] < 1) return send(playerid, 0xff0000ff, UnAdminMes);
if(sscanf(params,"dd",params[0],params[1])) return send(playerid,COLOR_COMAND, "•{ffffff} /giverank [playerid] [ранг]");
if(!IsPlayerConnected(params[0])) return send(playerid, 0xff0000ff, NoConnectGivePlayer);
if(Player[playerid][pMember] != Player[params[0]][pMember])return send(playerid, 0xff0000ff, ""vError"Игрок не в вашей фракции!");
if(Player[params[0]][pLeader] > 0)return send(playerid, 0xff0000ff, ""vError"Данный игрок - лидер!");
if(Player[params[0]][pZam] > 0)return send(playerid, 0xff0000ff, ""vError"Данный игрок - заместитель!");
if(params[1] > Player[params[0]][pRank]){
f(string,"Ты был(а) повышен(а) до %d ранга лидером %s.",params[1],sendername(playerid));
send(params[0],COLOR_LIGHTBLUE,string);
f(string,"Ты повысил(а) игрока %s до %d ранга.",sendername(params[0]),params[1]);
send(playerid,COLOR_LIGHTBLUE,string);}
else{
f(string,"Ты был(а) понижен(а) до %d ранга лидером %s.",params[1],sendername(playerid));
send(params[0],COLOR_LIGHTBLUE,string);
f(string,"Ты понизил(а) игрока %s до %d ранга.",sendername(params[0]),params[1]);
send(playerid,COLOR_LIGHTBLUE,string);}
switch(Player[playerid][pMember]){
case 1: if(params[1] <= 1 || params[1] > 11) return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 11.");
case 2: if(params[1] <= 1 || params[1] > 7) return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 3: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 4: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 5: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 6: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 7: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 8: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 9: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 10: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 11: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 12: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 13: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 14: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 15: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 16: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 17: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 18: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 19: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 20: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 21: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 22: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 23: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от 1 до 6.");
case 24: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 25: if(params[1] <= 1 || params[1] > 6) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 11.");
case 26: if(params[1] <= 1 || params[1] > 7) return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Ранг может быть от до 7.");}
Player[params[0]][pRank] = params[1];
SpawnPlayer(params[0]);
CheckPlayerSkin(params[0]);
SaveAccount(params[0]);
return 1;}