Вопросы

Всем привет! Помогите исправить ошибки , пожалуйста :) 

У меня в моде есть такая команда:

  Команда z (открыть спойлер)

Мне надо заменить ее вот на эту:

  Команда ans (открыть спойлер)

При компиляции ошибки: 

(47382) : error 017: undefined symbol "PI"
(47382) : warning 215: expression has no effect
(47382) : error 001: expected token: ";", but found "]"
(47382) : error 029: invalid expression, assumed zero
(47382) : fatal error 107: too many error messages on one line

 

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

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


Ссылка на сообщение
Поделиться на другие сайты

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

  • 0

Если ты решил вырезать только команду, то система работать не будет. Нужно вырезать всю систему репортов. У тебя ошибка идёт на PI - неизвестный символ, обычно это массив с данными игрока, у тебя он возможно называется "Player" или "pInfo", "PlayerInfo", посмотри в моде. Я заменил проверку на админку в новой команде на твою(взял из старой команды), тебе остаётся заменить строку "PI[playerid][pRepStatus] = i;" - создай pRepStatus, посмотри в моде, из которого вырезаешь, за что она отвечает и сделай точно так же. Не забудь про массив "RepInfo"

  Код (открыть спойлер)

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@SCRIPTMAN Привет. Я вырезаю всю систему, но проблемы возникли с "PI". Раньше я встречал ошибки, но там вместо "PI", допустим, "p_info" и тд. Но тут ничего похожего нету.

 

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

Заключил ваш код под спойлер в заголовке темы. Пожалуйста, обратите внимание на то, как это выглядит теперь, и, пожалуйста, впредь делайте по аналогии. Как пользоваться тегом спойлер?.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@saasha, покажите какую-нибудь команды, связанные с фракцией (например, отправку сообщения в рацию), либо же что-нибудь связанное с покупками в 24/7, если таковое имеется...

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@Jawn 

CMD:r(playerid, params[])
{
	if(!(GetPlayerTeamEx(playerid) || GetPlayerJob(playerid))) return SendClientMessage(playerid, 0xCECECEFF, "* Вы нигде не работаете/не состоите в организациях");
	else if(TEAM_OPG_CENTRALNAYA <= GetPlayerTeamEx(playerid) <= TEAM_OPG_NORTHNAYA) return SendClientMessage(playerid, 0xCECECEFF, "* Функция доступна для сотрудников гос. организаций");
	else if(IsPlayerMuted(playerid) > 0) return SendClientMessage(playerid, 0xFF6600FF, "Доступ в чат заблокирован. Время до разблокировки: {66CC33}/time");
	else if(!strlen(params)) return SendClientMessage(playerid, 0xCECECEFF, "Используйте: /r [текст]");

	new fmt_msg[144];

	format(fmt_msg, sizeof fmt_msg, "[R] %s %s[%d]: %s", GetPlayerJobAndRankName(playerid), GetPlayerNameEx(playerid), playerid, params);

	if(1 <= GetPlayerTeamEx(playerid) <= 10)
		SendMessageToTeam(GetPlayerTeamEx(playerid), fmt_msg, 0x33CC66FF);
	else
		SendMessageToJob(GetPlayerJob(playerid), fmt_msg, 0x33CC66FF, _, true);

	SetPlayerChatBubble(playerid, "сказал(а) что-то в рацию", 0xDD99FFAA, 10.0, 4000);
	return 1;
}

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@saasha, отлично, а теперь найдите определение для GetPlayerTeamEx. Скорее всего будет иметь следующий вид:

#define GetPlayerTeamEx(%0) ...

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@Jawn 

#define GetPlayerTeamEx(%0)		GetPlayerData(%0, P_TEAM)			// организация в которой состоит игрок

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@saasha, по аналогии найдите определение для GetPlayerData.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@Jawn 

#define GetPlayerData(%0,%1) 	g_player[%0][%1]

 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@saasha, вот и ответ на ваш вопрос: g_player - название массива игрока. Ну, и пример использования:

g_player[playerid][P_TEAM]

где P_TEAM - переменная, хранящая идентификатор фракции, к которой принадлежит игрок.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@Jawn Спасибо большое :)

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


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

  • Последние посетители   0 пользователей онлайн

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

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

    • djxxx
      От djxxx
      приветствую всех.
       
      Задался таким вопросом при добавлении одной системы на DIALOG_STYLE_TABLIST_HEADERS.
       
      Суть проблемы в том, что диалог не выравнивается под нужные показатели, а просто как будто находиться по середине, в диалоге используется \t, но они особо не помогают в решении, также не ровно.
       
      а если попытаться выравнивать большим количеством \t, оно компилируется но в игре происходят вылеты
       
      Код такой:
      DialogAdmShop ( playerid, DIALOG_EPOINTSHOP, DIALOG_STYLE_TABLIST_HEADERS, fmt_str, ""BR"номер\t"BR"наименование\t"BR"доступное действие\n"\ "{EB4C42}#1\t{FFFFFF}Виртуальная валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#2\t{FFFFFF}Донат валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#3\t{FFFFFF}Вип статусы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#4\t{FFFFFF}Кейсы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#5\t{FFFFFF}Уникальные аксессуары\t{888888}нажмите для взаимодействия", "Выбрать", "Закрыть" ); }  
      сток dialogadmshop:
      stock DialogAdmShop(playerid, dialogid, style, title[], text[], button[], button2[]) {   if(style == 5)   {      ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "...", "...", "...", "");    }   ShowPlayerDialog(playerid, dialogid, style, title, text, button, button2);   return 1; }