Вопросы

Не работает чат депортамента для новой фракции, вот сделал все правильно вроде бы правильно

if(IsACop(playerid) || PI[playerid][pMember] == TEAM_ARMIYA || TEAM_MCHS || IsAMedic(playerid) || IsAMayor(playerid) || PI[playerid][pMember] == TEAM_AUTOSCHOOL || IsANews(playerid))

 

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


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

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

  • 0

@archiboy6 Сообщения в департамент отправляются, просто МЧС не видят чат департамента. Свой stock SendDMes замените на этот: 
 

Спойлер

stock SendDMes(color, str[])
{
	foreach(new i: Player)
	{
		if(!PlayerLogged[i]) continue;
		if(PI[i][pSetting][0] == 1)
		{
			if(PI[i][pMember] == TEAM_ARMIYA || IsAMedic(i) || IsAMayor(i) || IsACop(i) || PI[i][pMember] == TEAM_AUTOSCHOOL || IsANews(i) || IsAMchs(i)) SCM(i, color, str);
		}
	}
	return 1;
}

 

 

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


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

@archiboy6 неправильно сделано. 

if(IsACop(playerid) || PI[playerid][pMember] == TEAM_ARMIYA || PI[playerid][pMember] == TEAM_MCHS || IsAMedic(playerid) || IsAMayor(playerid) || PI[playerid][pMember] == TEAM_AUTOSCHOOL || IsANews(playerid))

 

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


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

@stibs Почему же тогда в рации сделано так как скинул и работает?

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


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

@archiboy6 Значит, там не так сделано. Впрочем, если вы уверены, что ваш код работоспособный, вы можете оставить как есть. 

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


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

@stibs Не уверен, и ваш код тоже не работоспособен, проверил только что не работает

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


Ссылка на сообщение
  • 0
CMD:d(playerid, params[])
{
	if(IsACop(playerid) || PI[playerid][pMember] == TEAM_ARMIYA || PI[playerid][pMember] == TEAM_MCHS || IsAMedic(playerid) || IsAMayor(playerid) || PI[playerid][pMember] == TEAM_AUTOSCHOOL || IsANews(playerid))
	{
		if(PI[playerid][pMuted] > 0) return SCM(playerid, COLOR_GREY, PlayerHaveMuteTime);
		else if(PI[playerid][pSetting][0] == 0) return SCM(playerid, COLOR_GREY, "Ваш чат организации отключен!");
		else if(GetPVarInt(playerid,"dep") > gettime()) return SCM(playerid, 0xFF7979AA, "Следующее сообщение вы сможете отправить через 15 секунд!");
		else if(isnull(params)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /d [текст]");
		else if(TextReset[playerid] > gettime() && GetString(OldMessage[playerid], params[0])) return SCM(playerid,COLOR_GREY,"Не флуди");
		else if(IsIpFound(params[0]) || CheckString(params[0])) return PlayerGetsChatBan(playerid, params[0]);
		new string[128], mesid[128];
		format(string, sizeof(string), "[D] [%s] %s %s: %s", Fraction_Name[PI[playerid][pMember]], Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), params[0]);
		format(mesid, sizeof(mesid), "[D] [%s] %s %s[%d]: %s", Fraction_Name[PI[playerid][pMember]], Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), playerid, params[0]);
		if(PI[playerid][pSetting][3] == 0) SendDMes(0x007FFFFF, string);
		else SendDMes(0x007FFFFF, mesid);
		SetPlayerChatBubble(playerid,"сообщает в депортамент",COLOR_PURPLE,30.0,10000);
		SetPVarInt(playerid,"dep",gettime() + 15);
		#if DEBUG_STATUS == true
			printf("[D] [%s] %s %s: %s", Fraction_Name[PI[playerid][pMember]], Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), params[0]);
        #endif
	}
	else SCM(playerid, COLOR_GREY, YouCanNot);
	return 1;
}

 

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


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

Свою команду замените этой, после используйте ее в игре и скиньте логи: 
 


CMD:d(playerid, params[])
{
	printf("d(playerid=%d), member(playerid=%d) = %d", playerid, playerid, PI[playerid][pMember]);
	if(IsACop(playerid) || PI[playerid][pMember] == TEAM_ARMIYA || PI[playerid][pMember] == TEAM_MCHS || IsAMedic(playerid) || IsAMayor(playerid) || PI[playerid][pMember] == TEAM_AUTOSCHOOL || IsANews(playerid))
	{
		print("Проверка 1 пройдена");
		if(PI[playerid][pMuted] > 0) return SCM(playerid, COLOR_GREY, PlayerHaveMuteTime);
		else if(PI[playerid][pSetting][0] == 0) return SCM(playerid, COLOR_GREY, "Ваш чат организации отключен!");
		else if(GetPVarInt(playerid,"dep") > gettime()) return SCM(playerid, 0xFF7979AA, "Следующее сообщение вы сможете отправить через 15 секунд!");
		else if(isnull(params)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /d [текст]");
		else if(TextReset[playerid] > gettime() && GetString(OldMessage[playerid], params[0])) return SCM(playerid,COLOR_GREY,"Не флуди");
		else if(IsIpFound(params[0]) || CheckString(params[0])) return PlayerGetsChatBan(playerid, params[0]);
		new string[128], mesid[128];
		format(string, sizeof(string), "[D] [%s] %s %s: %s", Fraction_Name[PI[playerid][pMember]], Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), params[0]);
		format(mesid, sizeof(mesid), "[D] [%s] %s %s[%d]: %s", Fraction_Name[PI[playerid][pMember]], Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), playerid, params[0]);
		if(PI[playerid][pSetting][3] == 0) SendDMes(0x007FFFFF, string);
		else SendDMes(0x007FFFFF, mesid);
		SetPlayerChatBubble(playerid,"сообщает в депортамент",COLOR_PURPLE,30.0,10000);
		SetPVarInt(playerid,"dep",gettime() + 15);
		#if DEBUG_STATUS == true
			printf("[D] [%s] %s %s: %s", Fraction_Name[PI[playerid][pMember]], Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), params[0]);
        #endif
	}
	else SCM(playerid, COLOR_GREY, YouCanNot);
	return 1;
}

 

 

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


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

@stibs 

Спойлер


----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3e, (C)2005-2012 SA-MP Team

[11:33:22] filterscripts = ""  (string)
[11:33:22] 
[11:33:22] Server Plugins
[11:33:22] --------------
[11:33:22]  Loading plugin: crashdetect.so
[11:33:22]   CrashDetect v4.15.1 is OK.
[11:33:22]   Loaded.
[11:33:22]  Loading plugin: mysql_static.so
[11:33:22]  >> plugin.mysql: R39-5 successfully loaded.
[11:33:22]   Loaded.
[11:33:22]  Loading plugin: sscanf.so
[11:33:22] 

[11:33:22]  ===============================

[11:33:22]       sscanf plugin loaded.     

[11:33:22]          Version:  2.8.1        

[11:33:22]    (c) 2012 Alex "Y_Less" Cole  

[11:33:22]  ===============================

[11:33:22]   Loaded.
[11:33:22]  Loading plugin: streamer.so
[11:33:22] 

*** Streamer Plugin v2.8.2 by Incognito loaded ***

[11:33:22]   Loaded.
[11:33:22]  Loading plugin: dc_cmd.so
[11:33:22]   Daniel's CMD plugin v2.8
[11:33:22]     (c) 2014 Daniel_Cortez
[11:33:22] 	www.pro-pawn.ru
[11:33:22]   Loaded.
[11:33:22]  Loading plugin: nativechecker.so
[11:33:22]   Loaded.
[11:33:22]  Loading plugin: regex.so
[11:33:22] 


[11:33:22] ______________________________________


[11:33:22]  Regular Expression Plugin v0.2.1 loaded
[11:33:22] ______________________________________


[11:33:22]  By: Fro (c) Copyright <TBG> 2009-2011
[11:33:22] ______________________________________


[11:33:22]   Loaded.
[11:33:22]  Loading plugin: CRP.so
[11:33:22] 

[11:33:22] ______________________________________

[11:33:22]  Convert Rus To Pwn v0.1.1 loaded
[11:33:22] ______________________________________

[11:33:22]  By: Fro (c) Copyright <TBG> 2009-2011
[11:33:22] ______________________________________

[11:33:22]   Loaded.
[11:33:22]  Loaded 8 plugins.

[11:33:22] 
[11:33:22] Ban list
[11:33:22] --------
[11:33:22]  Loaded: samp.ban
[11:33:22] 
[11:33:22] 
[11:33:22] Filterscripts
[11:33:22] ---------------
[11:33:22]   Loaded 0 filterscripts.

[11:33:22]    Error: Function not registered: 'ConvertRusToPwn'
[11:33:22]    Error: Function not registered: 'regex_delete_all'
[11:33:22]    Error: Function not registered: 'regex_build'
[11:33:22]    Error: Function not registered: 'regex_search_exid'
[11:33:22]  
[11:33:22]  
[11:33:22]  
[11:33:22]  ======================================= 
[11:33:22]  |                                     | 
[11:33:22]  |        YSI version 3.09.0684        | 
[11:33:22]  |        By Alex "Y_Less" Cole        | 
[11:33:22]  |                                     | 
[11:33:22]  ======================================= 
[11:33:22]  
[11:33:22] [MySQL]: Подключение к базе данных прошло успешно
[11:33:22] Number of vehicle models: 7
[11:33:22] [Загружено орг/раб. автомобилей]: <135>. Потрачено: <4 ms>.
[11:33:22] [Загружено рангов для фракций]: <13>. Потрачено: <1 ms>.
[11:33:22] [Загружено бизнесов]: <4>. Потрачено: <0 ms>.
[11:33:22] [Загружено домов]: <2>. Потрачено: <0 ms>.
[11:33:22] [Загружены склады мафий]: Потрачено: <0 ms>.
[11:33:22] [Загружены склады ОПГ]: Потрачено: <0 ms>.
[11:33:22] [Загружено банкоматов]: <3>. Потрачено: <0 ms>.
[11:33:22] [Загружено остальное]: Потрачено: <0 ms>.
[11:33:22] [Загружено радаров]: <2>. Потрачено: <0 ms>.
[11:33:22] [System Hotels]: 50 hotels successfully loaded
[11:33:46] Incoming connection: 188.190.192.193:64901
[11:33:46] [join] Evgeniy_Samsonov has joined the server (0:188.190.192.193)
[11:33:57] [death] Evgeniy_Samsonov died 255
[11:34:18] [debug] Run time error 4: "Array index out of bounds"
[11:34:18] [debug]  Accessing element at index 13 past array upper bound 12
[11:34:18] [debug] AMX backtrace:
[11:34:18] [debug] #0 0028a000 in public OnDialogResponse (playerid=0, dialogid=7436, response=1, listitem=0, inputtext[]=@002a9f64 "") at D:\GHEKA\Моды\AVRP\gamemodes\stel.pwn:24343
[11:34:23] d(playerid=0), member(playerid=0) = 13
[11:34:23] Проверка 1 пройдена

 

 

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


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

@archiboy6 судя по логам первая проверка пройдена, значит не выполняются условия последующих проверок

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


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

@stibs И где искать последующие проверки?

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


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

@archiboy6 я думаю, что можно в середину команды добавить print("Середина команды");, затем вызвать на серваке ее и по логам глянуть, если в консоль написало, что "середина команды", значит до туда выполнение идет, а если нет, то проблема где-то раньше. 

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


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

@DEST Я уже на пути к решению проблемы,я создал Stock IsAMchs все работало теперь опять не работает

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

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


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

@DEST Не работает, поможешь?

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


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

@DEST @stibs Помогите решить проблему

Заметка от DEST , создано

3.6. Запрещено поднимать (апать) свою тему чаще, чем 1 раз в 24 часа.
Выдано предупреждение

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


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

@archiboy6 покажите как сделали со стоком? 

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


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

@DEST Да я там кое что обнаружил что в конце return; было а в других стоках еще 0 щас поставил проверю

@DEST Нет не работает, сейчас покажу 

@DEST Вот который я сделал

stock IsAMchs(playerid)
{
	switch(GetTeamID(playerid))
	{
		case TEAM_MCHS: return 1;
		default: return 0;
	}
	return 0;
}

А вот другой который был

stock IsACop(playerid)
{
	switch(GetTeamID(playerid))
	{
	    case TEAM_POLICIA,TEAM_DPS,TEAM_FBI: return 1;
	    default: return 0;
	}
	return 0;
}

 

@archiboy6 Дело в том что в рации так же само прописано, и там работает 

Спойлер

 

Вот рация 

CMD:r(playerid, params[])
{
    if(IsACop(playerid) || PI[playerid][pMember] == TEAM_ARMIYA || IsAMchs(playerid) || IsAMedic(playerid) || IsAMayor(playerid) || PI[playerid][pMember] == TEAM_AUTOSCHOOL || IsANews(playerid))
    {
        if(PI[playerid][pMuted] > 0) return SCM(playerid, COLOR_GREY, PlayerHaveMuteTime);
        else if(PI[playerid][pSetting][0] == 0) return SCM(playerid, COLOR_GREY, "Ваш чат организации отключен!");
        else if(isnull(params)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /r [текст]");
        else if(TextReset[playerid] > gettime() && GetString(OldMessage[playerid], params[0])) return SCM(playerid,COLOR_GREY,"Не флуди");
        else if(IsIpFound(params[0]) || CheckString(params[0])) return PlayerGetsChatBan(playerid, params[0]);
        new string[128], mesid[128];
        format(string, sizeof(string), "[R] %s %s: %s", Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), params[0]);
        format(mesid, sizeof(mesid), "[R] %s %s[%d]: %s", Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), playerid, params[0]);
        if(PI[playerid][pSetting][3] == 0) SendFMes(PI[playerid][pMember], 0x5da130FF, string);
        else SendFMes(PI[playerid][pMember], 0x5da130FF, mesid);
        SetPlayerChatBubble(playerid,"сообщает в рацию",COLOR_PURPLE,30.0,10000);
        SetString(OldMessage[playerid], params[0]);
        TextReset[playerid] = gettime()+3;
        #if DEBUG_STATUS == true
            printf("[R] [%s] %s %s: %s", Fraction_Name[PI[playerid][pMember]], Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), params[0]);
        #endif
    }
    else SCM(playerid, COLOR_GREY, YouCanNot);
    return 1;
}

CMD:rn(playerid, params[])
{
    if(IsACop(playerid) || PI[playerid][pMember] == TEAM_ARMIYA || IsAMchs(playerid) || IsAMedic(playerid) || IsAMayor(playerid) || PI[playerid][pMember] == TEAM_AUTOSCHOOL || IsANews(playerid))
    {
        if(PI[playerid][pMuted] > 0) return SCM(playerid, COLOR_GREY, PlayerHaveMuteTime);
        else if(PI[playerid][pSetting][0] == 0) return SCM(playerid, COLOR_GREY, "Ваш чат организации отключен!");
        else if(isnull(params)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /rn [текст]");
        else if(TextReset[playerid] > gettime() && GetString(OldMessage[playerid], params[0])) return SCM(playerid,COLOR_GREY,"Не флуди");
        else if(IsIpFound(params[0]) || CheckString(params[0])) return PlayerGetsChatBan(playerid, params[0]);
        new string[128], mesid[128];
        format(string, sizeof(string), "(( [R] %s %s: %s ))", Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), params[0]);
        format(mesid, sizeof(mesid), "(( [R] %s %s[%d]: %s ))", Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), playerid, params[0]);
        if(PI[playerid][pSetting][3] == 0) SendFMes(PI[playerid][pMember], 0x5da130FF, string);
        else SendFMes(PI[playerid][pMember], 0x5da130FF, mesid);
        SetPlayerChatBubble(playerid,"сообщает в рацию",COLOR_PURPLE,30.0,10000);
        SetString(OldMessage[playerid], params[0]);
        TextReset[playerid] = gettime()+3;
        #if DEBUG_STATUS == true
            printf("[R] [%s] %s %s: %s", Fraction_Name[PI[playerid][pMember]], Fraction_Rang(PI[playerid][pMember],PI[playerid][pRank]), GetName(playerid), params[0]);
        #endif
    }
    else SCM(playerid, COLOR_GREY, YouCanNot);
    return 1;
}

 

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


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

@archiboy6 Если я подключю TEAM_MCHS к Stock IsAMedic то все работает вот сток медиков

stock IsAMedic(playerid)
{
	switch(GetTeamID(playerid))
	{
	    case TEAM_BOLNICA,TEAM_MCHS: return 1;
	    default: return 0;
	}
	return 0;
}

 

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


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

@archiboy6 значит, у вас где-то неверное значение TEAM_MCHS выдается. 

Чему оно равно? 

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


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

@archiboy6 дефайн какое значение имеет? 

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


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

@archiboy6 

5 часов назад, DEST сказал:

TEAM_MCHS

 

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


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

Давайте мод дам вы посмотрите

 

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


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

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

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

    • Артём Профиков
      От Артём Профиков
      У меня есть система подсказок вот так она выглядет
      ShowNotification(playerid, тип, "текст", время, "команда через /", "текст кнопки");
      Только есть вопрос как сделать так чтоб она активировалась в определенном радиусе? Заранее спасибо