Вопросы

HAPKOMAH
User

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

Проверка:

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);

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

Отредактировано пользователем HAPKOMAH
Причина: Исправил опечатку

Поделиться сообщением


Ссылка на сообщение

14 ответов на этот вопрос

  • 0
Cawfee
Великий Гуру

@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);

 

Поделиться сообщением


Ссылка на сообщение
  • 0
SCRIPTMAN
Великий Гуру

Ты состоишь в фракции мэрия и твой ранг равен 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

Отредактировано пользователем SCRIPTMAN

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Игрок состоящей в "Мэрии 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"

Поделиться сообщением


Ссылка на сообщение
  • 0
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);

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

Поделиться сообщением


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру
  В 3/6/2019 в 18:44, 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);
	}
	
	// здесь код команды
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0

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

  В 3/6/2019 в 18:51, 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);

Вот так 

Читать далее...  

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@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);

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@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;
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
SCRIPTMAN
Великий Гуру

@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);

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

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • grizly57a
      От grizly57a
      вот логи 
       
       
      ---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [16:41:25] [16:41:25] Server Plugins [16:41:25] -------------- [16:41:25] Loading plugin: crashdetect.so [16:41:25] CrashDetect plugin 4.19.4 [16:41:25] Loaded. [16:41:25] Loading plugin: pawncmd.so [16:41:25] Pawn.CMD plugin v3.2.0 by urShadow has been loaded [16:41:25] Loaded. [16:41:25] Loading plugin: pawnraknet.so [16:41:25] [Pawn.RakNet] plugin v1.6.0 loading... [16:41:25] [Pawn.RakNet] | Pawn.RakNet 1.6.0 | 2016 - 2023 |-------------------------------- | Author and maintainer: katursis | Compiled: Feb 12 2023 at 19:35:06 |-------------------------------------------------------------- | Repository: https://github.com/katursis/Pawn.RakNet |-------------------------------------------------------------- | Wiki: https://github.com/katursis/Pawn.RakNet/wiki [16:41:25] Loaded. [16:41:25] Loading plugin: sscanf.so [16:41:25] [16:41:25] =============================== [16:41:25] sscanf plugin loaded. [16:41:25] Version: 2.8.3 [16:41:25] (c) 2018 Alex "Y_Less" Cole [16:41:25] =============================== [16:41:25] Loaded. [16:41:25] Loading plugin: streamer.so [16:41:25] *** Streamer Plugin v2.9.4 by Incognito loaded *** [16:41:25] Loaded. [16:41:25] Loading plugin: mysql_static.so [16:41:25] >> plugin.mysql: R39-6 successfully loaded. [16:41:25] Loaded. [16:41:25] Loading plugin: TOTP.so [16:41:25] TOTP plugin v1.0.1 by Games loaded. [16:41:25] Loaded. [16:41:25] Loading plugin: profiler.so [16:41:25] Profiler plugin 2.15.1 [16:41:25] Loaded. [16:41:25] Loading plugin: timerfix.so [16:41:25] >> TimerFix v1.5 successfully loaded. [16:41:25] Loaded. [16:41:25] Loading plugin: UTuning.so [16:41:25] Loaded. [16:41:25] Loading plugin: housecar.so [16:41:25] Loaded. [16:41:25] Loading plugin: TOTP.so [16:41:25] TOTP plugin v1.0.1 by Games loaded. [16:41:25] Loaded. [16:41:25] Loading plugin: FCNPC.so [16:41:25] [16:41:25] ------------------------------------------------- [16:41:25] FCNPC - Fully Controllable NPC v2.0.9 [16:41:25] GNU/Linux SA-MP 0.3.7 R2 [16:41:25] Apr 17 2024 at 09:11:36 [16:41:25] [16:41:25] Author: OrMisicL (2013 - 2015) [16:41:25] Continued by: ziggi (2016 - present) [16:41:25] [16:41:25] See full credits in the README.md file [16:41:25] ------------------------------------------------- [16:41:25] [16:41:25] Loading... [16:41:25] [16:41:25] ------------------------------------------------- [16:41:25] ColAndreasv1.4.0 [16:41:25] [16:41:25] Created By: [16:41:25] [uL]Chris42O [16:41:25] [uL]Slice [16:41:25] [uL]Pottus [16:41:25] ------------------------------------------------- [16:41:25] [16:41:25] Loading... [16:41:25] ColAndreas v1.4.0 Loaded. [16:41:25] Loaded. [16:41:25] Loaded 13 plugins. [16:41:25] [16:41:25] Filterscripts [16:41:25] --------------- [16:41:25] Loading filterscript 'voice.amx'... [16:41:25] No collision data found. [16:41:25] [FCNPC] Warning: Unable to create NPCs. The maxnpc limit in server.cfg is 0. [16:41:25] -------------------------------------- [16:41:25] VOICE COPY RADMIR BY ������ dev. [16:41:25] -------------------------------------- [16:41:25] Loaded 1 filterscripts. [16:41:25] *** Streamer Plugin: Include file version (0x295) does not match plugin version (0x294) (script might need to be recompiled with the correct include file). [16:41:25] ------------------------------------------ [16:41:25] SSSS [16:41:25] ------------------------------------------ [16:41:25] mapname = "San Andreas" (string) [16:41:25] [Vehicle]: ��� ������������ �������� ������� [16:41:25] [TP]: ��� �����/������ ������� [16:41:25] [ATM]: ��� ��������� ������� [16:41:25] ����������� � ���� ������ �� ������� [������� � ����� ������ ����������] [16:41:25] ----------------------------------------- [16:41:25] [16:41:25] [16:41:25] [16:41:25] ----------------------------------------- [16:41:25] Number of vehicle models: 55 [16:42:00] [connection] 93.159.241.195:2395 requests connection cookie. [16:42:01] [connection] incoming connection: 93.159.241.195:2395 id: 0 [16:42:02] [join] Dkak_wlaas has joined the server (0:93.159.241.195) [16:42:02] [part] Dkak_wlaas has left the server (0:2)