Рекомендованные сообщения



15 posts in this topic

Всем привет, суть проблемы такая. При вводе команды - пишет "Вам недоступна данная команда".

Проверка:

CMD:guninvite(playerid, params[])
{
	if(PI[playerid][pMember] != TEAM_MERIA || PI[playerid][pRank] < 7) return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);
    if(PI[playerid][pMember] != TEAM_SFMAYOR || PI[playerid][pMember] != TEAM_SFMAYOR || PI[playerid][pRank] < 9) return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);

П.с. с проверкой косяк, но никак не могу сообразить, как исправить.

Edited by HAPKOMAH
Причина: Исправил опечатку

Share this post


Link to post
Share on other sites

Ты состоишь в фракции мэрия и твой ранг равен 7 или больше?

Ты состоишь в фракции TEAM_SFMAYOR(не понял, что это, ищи в моде) и твой ранг равен 9 или больше?

У тебя кстати повторяется проверка.

CMD:guninvite(playerid, params[])
{
	if(PI[playerid][pMember] != TEAM_MERIA && PI[playerid][pRank] < 7 || PI[playerid][pMember] != TEAM_SFMAYOR && PI[playerid][pRank] < 9) 
      	return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);

Попробуй так, возможно выдаст ошибку при компиляции, у тебя проверка идёт так: если одно условие выполняется, то второе не будет точно, попробуй так. Я только заменил, теперь будет так:

Если(игрок не состоит в мэрии и его ранг меньше 7 или если игрок не состоит в фракции sfmayor и его ранг меньше 9) выводит сообщение.

 

UPD: протести, потому что я запутался:(:D

Edited by SCRIPTMAN

Share this post


Link to post
Share on other sites

Кхм, смысл такой:

Игрок состоящей в "Мэрии 1" если имеет свыше 7 ранга - может использовать команда.

Если игрок состоит в "Мэрии 2" или "Мэрии 3", то использовать команду он может только с 9 ранга. Надеюсь понятно объяснил.

 

Протестил, все работает, за что Вам огромное спасибо, но есть еще вопросик:

Почему в проверки нет TEAM_LVMAOYR, но для нее команда так-же работает? :/

 

Примечание: Кстати, в своей теме опять нашел ошибку, код который я дал немного неверный, вот исправленная строчка ( Красным я пометил исправление ):

    if(PI[playerid][pMember] != TEAM_SFMAYOR || PI[playerid][pMember] != TEAM_LVMAOYR|| PI[playerid][pRank] < 9) return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);

То есть у меня два раза было "TEAM_SFMAOYR", а должно быть "TEAM_SFMAYOR" и "TEAM_LVMAOYR"

Share this post


Link to post
Share on other sites

@HAPKOMAH 

	if(PI[playerid][pMember] != TEAM_MERIA && PI[playerid][pRank] < 7 || PI[playerid][pMember] != TEAM_SFMAYOR && PI[playerid][pRank] < 9 || PI[playerid][pMember] != TEAM_LVMAYOR && PI[playerid][pRank] < 9) 
      	return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);

Вот так попробуй

Share this post


Link to post
Share on other sites
2 минуты назад, HAPKOMAH сказал:

Почему в проверки нет TEAM_LVMAOYR, но для нее команда так-же работает? :/

 

Скорее всего, вы как лидер фракции TEAM_LVMAOYR пытаетесь использовать эту команду. А в проверке дважды проверяется на члена фракции (не лидера) - опечатка, стало быть.


Да и гораздо удобнее будет с использованием соответствующих функций (причем не только для данной команды):

stock bool:IsPlayerInTeam(playerid, team, minrank = 0) // ID игрока, ID фракции, минимальный ранг (необязательно)
{
	// если игрок не лидер и не подчиненный, выходим из функции
	if(gPlayer[playerid][pLeader] != team && gPlayer[playerid][pMember] != team) {
		return false;
	}
	
	// если игрок подчиненный и его ранг ниже необходимого, выходим
	if(gPlayer[playerid][pRank] < minrank && gPlayer[playerid][pLeader] == 0) { 
		return false;
	}
	
	return true; // в остальных случаях возвращаем успех
}

CMD:guninvite(playerid, params[])
{
	if(!IsPlayerInTeam(playerid, TEAM_MERIA, 7) && !IsPlayerInTeam(playerid, TEAM_SFMAYOR, 9)) {
		return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);
	}
	
	// здесь код команды
}

 

Share this post


Link to post
Share on other sites

@SCRIPTMAN  Пока писал уже сам допер, все работает, спасибо) 

1 час назад, SCRIPTMAN сказал:

@HAPKOMAH 


	if(PI[playerid][pMember] != TEAM_MERIA && PI[playerid][pRank] < 7 || PI[playerid][pMember] != TEAM_SFMAYOR && PI[playerid][pRank] < 9 || PI[playerid][pMember] != TEAM_LVMAYOR && PI[playerid][pRank] < 9) 
      	return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);

Вот так 

 

Share this post


Link to post
Share on other sites

@SCRIPTMAN

Тэк-с, поторопился я. Тут еще одна команда есть, проверку в ней сделал по твоему принципу, но при ее вводе пишет "Вам недоступная данная команда"

CMD:tazer(playerid, params[])
{
    if(!IsACop(playerid) || PI[playerid][pMember] != TEAM_MERIA || PI[playerid][pMember] != TEAM_SFMAYOR || PI[playerid][pMember] != TEAM_LVMAYOR) return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);

 

Share this post


Link to post
Share on other sites

@HAPKOMAH а ты в какой сейчас фракции состоишь?

Share this post


Link to post
Share on other sites

@SCRIPTMAN Пробовал состоять в Полиции, и в Мэрии

Share this post


Link to post
Share on other sites

Скинь команду

Share this post


Link to post
Share on other sites

@SCRIPTMAN 

CMD:tazer(playerid, params[])
{
    if(!IsACop(playerid) || PI[playerid][pMember] != TEAM_MERIA || PI[playerid][pMember] != TEAM_SFMAYOR || PI[playerid][pMember] != TEAM_LVMAYOR) return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);
	else if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_LIME, "Информация: {ffffff}/tazer [id игрока]");
 	else if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_DARKORANGE, PlayerIsNotOnline);
	else if(PlayerLogged[params[0]] == false) return SendClientMessage(playerid, COLOR_DARKORANGE, PlayerIsNotAuthorized);
	else if(playerid == params[0]) return SendClientMessage(playerid, COLOR_DARKORANGE, "Нельзя себя ударить электрошокером");
	else if(!ProxDetectorS(8.0, playerid, params[0])) return SendClientMessage(playerid, COLOR_DARKORANGE, "Вы далеко друг от друга");
	new string[128];
	if(PI[playerid][pSex] == 1) format(string, sizeof(string), "ударил электрошоком %s'a", GetName(params[0]));
	else format(string, sizeof(string), "ударила электрошоком %s'a", GetName(params[0]));
	MeAction(playerid, string);
	ClearAnimations(params[0], 1);
	ApplyAnimation(params[0], "CRACK", "crckdeth2", 4.0, 0, 1, 1, 1, 0, 1);
	SetTimerEx("TazerOff", 15000, 0, "i", params[0]);
	SetPVarInt(params[0], "Tazer", 1);
	TogglePlayerControllable(params[0], 0);
	return 1;
}

 

Share this post


Link to post
Share on other sites

@HAPKOMAH а если так, я просто не помню уже этот сток:

 if(IsACop(playerid) || PI[playerid][pMember] != TEAM_MERIA || PI[playerid][pMember] != TEAM_SFMAYOR || PI[playerid][pMember] != TEAM_LVMAYOR) return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);

Хотя не должно работать

Share this post


Link to post
Share on other sites

@HAPKOMAH

if(!IsACop(playerid) && PI[playerid][pMember] != TEAM_MERIA && PI[playerid][pMember] != TEAM_SFMAYOR && PI[playerid][pMember] != TEAM_LVMAYOR) return SendClientMessage(playerid, COLOR_DARKORANGE, YouCanNot);

 

Share this post


Link to post
Share on other sites

@odosenok Хм, работает, благодарю :)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Nate_Weny
      By Nate_Weny
      Компиляция: 
      C:\Users\Àäìèí\Desktop\enerhy\gamemodes\evolution.pwn(57653) : error 021: symbol already defined: "pc_cmd_goadminka"
      C:\Users\Àäìèí\Desktop\enerhy\gamemodes\evolution.pwn(57654) : warning 211: possibly unintended assignment
      C:\Users\Àäìèí\Desktop\enerhy\gamemodes\evolution.pwn(57665) : loose indentation
      C:\Users\Àäìèí\Desktop\enerhy\gamemodes\evolution.pwn(57669) : loose indentation
      Нашел команду сделал в мод, поменял пару параметров. Вылазит эта ошибка.
      Код:
      new adminkaon[MAX_PLAYERS]; new adminka; cmd:adminkaon(playerid, params[]) {         new adminaa[64];         if(PlayerInfo[playerid][pAlcoInvenxua] <= 12) return SendClientMessage(playerid, 0xBFC0C2FF, "Òû íå ìîæåøü èñïîëüçîâàòü ýòó êîìàíäó!");         if(sscanf(params,"i",params[0])) return SendClientMessage(playerid, -1, "Ââåäèòå /adminkaon [óðîâåíü]");         SetTimer("adminkaoon", 3000, 0);         adminka = params[0];         SendClientMessage(playerid, 0xFF0000, "Âû óñïåøíî çàïóñòèëè ðàçäà÷ó àäìèíêè");         format(adminaa,sizeof(adminaa),"Âíèìàíèå! Ðàçäà÷à àäìèíêè %s óðîâíÿ íà÷àëàñü!",params[0]);         SendClientMessageToAll(0xFFAAAA,adminaa);         return 1; } cmd:goadminka(playerid, params[]) {         if(adminkaon[playerid] = 0) return 1;         PlayerInfo[playerid][pAlcoInvenxua] = adminka;         SendClientMessage(playerid, 0xFF0000, "Ïîçäðàâëÿåì! Âû ïîëó÷èëè àäìèíêó. Ââåäèòå /alogin!");         return 1; } forward adminkaoon(playerid); public adminkaoon(playerid) {         for(new p; p < GetMaxPlayers(); p++)         {                 if(!IsPlayerConnected(p))continue;         {                         adminkaon[playerid] = 1;                 }         }     return 1; }  
    • Антон Нолмадов
      By Антон Нолмадов


      Просмотр файла ATOM ROLEPLAY | 0.3.7 ОРИГИНАЛ ОТ ВЛАДЕЛЬЦА
      И снова всем здраствуйте, сегодня в продажу входит игровой мод моего бывшего сервера Atom RolePlay 0.3.7 
      Что входит в продажу:
       
      Мод -
      Сборка сервера с худом -
      Сайт -
      Форум -
      Оформление вк
       
      Вкратце про функционал мода: 
      Система домов. 
      Система бизнеса. 
      Система атм. 
      Система радаров. 
      Система транспорта. 
      Система квестов. 
      Есть водный салон где каждый игрок сможет себе покупать лодку и яхту. 
      Есть воздушный транспорт. 
      Мод сделан под бонусник (точнее переделан), многие товары (яхты, автомобили, самолеты, скины) за донат.
       
      ВНИМАТЕЛЬНО!!!!!!!      ПОСЛЕ ПОКУПКИ ИГРОВОГО МОДА ОТПИШИТЕ МНЕ В ВК vk.com/jakenolman (НЕ РЕКЛАМА)
      Добавил Антон Нолмадов Добавлено 23.06.2021 Категория Моды Автор Anton Nolmadov  
    • Антон Нолмадов
      By Антон Нолмадов


      Просмотр файла SUPREME ROLEPLAY | CRMP 0.3.e
      И снова всем здраствуйте, сегодня в продажу входит игровой мод сервера Supreme RolePlay 0.3.e
      Что входит в продажу:
       
      Мод -
      Мод-пак
      Оформление вк
       
      Вкратце про функционал мода: 
      Система домов. 
      Система бизнеса. 
      Система атм. 
      Система радаров. 
      Система транспорта. 
      Система квестов. 
      Есть водный салон где каждый игрок сможет себе покупать лодку и яхту.
      Покупка вертолёта
      Личный мапинг
      Красивая карта 
      Много систем в фракциях
      Система тюнинга
      Есть воздушный транспорт. 
      Мод сделан под бонусник, многие товары (яхты, автомобили, самолеты, скины) за донат.
      Данный мод продавался примерной ценой 1000+
       
      ВНИМАТЕЛЬНО!!!!!!!      ПОСЛЕ ПОКУПКИ ИГРОВОГО МОДА ОТПИШИТЕ МНЕ В ВК vk.com/jakenolman (НЕ РЕКЛАМА)
      Добавил Антон Нолмадов Добавлено 23.06.2021 Категория Моды Автор Anton Nolmadov  
    • Антон Нолмадов
      By Антон Нолмадов
      И снова всем здраствуйте, сегодня в продажу входит игровой мод сервера Supreme RolePlay 0.3.e
      Что входит в продажу:
       
      Мод -
      Мод-пак
      Оформление вк
       
      Вкратце про функционал мода: 
      Система домов. 
      Система бизнеса. 
      Система атм. 
      Система радаров. 
      Система транспорта. 
      Система квестов. 
      Есть водный салон где каждый игрок сможет себе покупать лодку и яхту.
      Покупка вертолёта
      Личный мапинг
      Красивая карта 
      Много систем в фракциях
      Система тюнинга
      Есть воздушный транспорт. 
      Мод сделан под бонусник, многие товары (яхты, автомобили, самолеты, скины) за донат.
      Данный мод продавался примерной ценой 1000+
       
      ВНИМАТЕЛЬНО!!!!!!!      ПОСЛЕ ПОКУПКИ ИГРОВОГО МОДА ОТПИШИТЕ МНЕ В ВК vk.com/jakenolman (НЕ РЕКЛАМА)
    • Антон Нолмадов
      By Антон Нолмадов
      И снова всем здраствуйте, сегодня в продажу входит игровой мод моего бывшего сервера Atom RolePlay 0.3.7 
      Что входит в продажу:
       
      Мод -
      Сборка сервера с худом -
      Сайт -
      Форум -
      Оформление вк
       
      Вкратце про функционал мода: 
      Система домов. 
      Система бизнеса. 
      Система атм. 
      Система радаров. 
      Система транспорта. 
      Система квестов. 
      Есть водный салон где каждый игрок сможет себе покупать лодку и яхту. 
      Есть воздушный транспорт. 
      Мод сделан под бонусник (точнее переделан), многие товары (яхты, автомобили, самолеты, скины) за донат.
       
      ВНИМАТЕЛЬНО!!!!!!!      ПОСЛЕ ПОКУПКИ ИГРОВОГО МОДА ОТПИШИТЕ МНЕ В ВК vk.com/jakenolman (НЕ РЕКЛАМА)