Если Вы нашли ответ на вопрос, пожалуйста, пометьте необходимый ответ лучшим (галочка сбоку от сообщения) и поблагодарите автора этого ответа поднятием репутации (плюс в нижней правой части сообщения). Спасибо.
Подробнее:
FAQ по форуму
Как пометить ответ лучшим

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



14 posts in this topic

Возникла такая проблема с ошибкой, а именно связана с "adminprefix", попровал из 1 же темы переставлять так же и new и т.д

Ошибки везде где есть "adminprefix" почти

И сетки не понял в чем ошибка, прошу помочь

Спойлер

D:азработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20096) : error 033: array must be indexed (variable "adminprefix")
D:азработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20112) : error 001: expected token: ")", but found "-identifier-"
D:азработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20112) : error 035: argument type mismatch (argument 2)
D:азработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : error 035: argument type mismatch (argument 2)
D:азработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : warning 215: expression has no effect
D:азработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : error 001: expected token: ";", but found "]"
D:азработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : error 029: invalid expression, assumed zero
D:азработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : fatal error 107: too many error messages on one line

Compilation aborted.

Pawn compiler 3.10.20150531	 	 	Copyright (c) 1997-2006, ITB CompuPhase


7 Errors.

 

Спойлер

CMD:setprefix(playerid, params[])
{
//	new string[180];
    if(PI[playerid][pAdmin] < 8) return true;
    if(sscanf(params,"ds[100]",params[0],params[1])) return SCM(playerid,COLOR_GREEN,"• {66CC00}[ Подсказка ] {ffffff}Введите: /setprefix [id] [префикс]");
    new fstring[400];
    format(fstring, sizeof(fstring), "Вы выдали администратору %s префикс %s", PI[params[0]][pName], params[1]);
    SCM(playerid, 0xFFCC00FF, fstring);
    adminprefix[params[0]] = EOS; //Тут ошибка
  	strmid(adminprefix[params[0]], params[1], 0, strlen(params[1]), 50);
  	printf("%s - admpref", adminprefix[params[0]]);
    return true;
}

CMD:a(playerid,params[])
{
	new strlen[110];
	if(PI[playerid][pAdmin] < 1) return 1;
	else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
	else if(isnull(params)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /a [текст]");
	else if(TextReset[playerid] > gettime() && GetString(OldMessage[playerid], params[0])) return SCM(playerid, COLOR_GREY, "Не флуди");
	new string[128];
	//static const Admin_Names[8][32] = {"Мл.Модератор","Модератор","Ст.Модератор","Мл.Администратор","Администратор","Ст.Администратор","Спец.Администратор","Руководитель"};
	//format(string, sizeof(string), "[A] %s %s [%d]: %s", Admin_Names[PI[playerid][pAdmin]-1], GetName(playerid), playerid, params[0]);
    if(strlen(adminprefix[playerid])
   	format(string,BIG_SIZE, "[A] [%s] %s[%d]: %s", adminprefix[playerid], GetName(playerid), playerid, params[0]); //тут
   	else
   	format(string,BIG_SIZE, "[A] %d %s[%d]: %s", Admin_Names[PI[playerid][pAdmin]-1], GetName(playerid), playerid, params[0]); //тут
	SendAdminMessage(COLOR_LIME, string);
	SetString(OldMessage[playerid], params[0]);
	TextReset[playerid] = gettime()+3;
	SendLog("Adminlog",string);
	return 1;
}

 

 

Share this post


Link to post
Share on other sites

@Daniil Roslyakov как объявлено adminprefix

Share this post


Link to post
Share on other sites

@Daniil Roslyakov попробуй объявить вот так: 

new adminprefix[MAX_PLAYERS][50]; 

а в OnPlayerConnect заменить

adminprefix[playerid] = EOS; 

Share this post


Link to post
Share on other sites

@Daniil Roslyakov в той теме, из которой ты брал было найдено решение? 

Share this post


Link to post
Share on other sites

@Daniil Roslyakov у меня все прекрасно работает с таким вариантом: 

new adminprefix[50][MAX_PLAYERS]; 

Значит, у вас уже объявлена такая переменная, заменяйте название. 

Share this post


Link to post
Share on other sites
adminprefix[playerid] = EOS; 

и те же строки

D:\Разработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(4357) : error 033: array must be indexed (variable "adminprefix")
D:\Разработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20096) : error 033: array must be indexed (variable "adminprefix")
D:\Разработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20112) : error 001: expected token: ")", but found "-identifier-"
D:\Разработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20112) : error 035: argument type mismatch (argument 2)
D:\Разработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : error 035: argument type mismatch (argument 2)
D:\Разработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : warning 215: expression has no effect
D:\Разработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : error 001: expected token: ";", but found "]"
D:\Разработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : error 029: invalid expression, assumed zero
D:\Разработка сервера CRMP\Мод сервера\gamemodes\timeplay.pwn(20114) : fatal error 107: too many error messages on one line

Compilation aborted.

Pawn compiler 3.10.20150531	 	 	Copyright (c) 1997-2006, ITB CompuPhase


8 Errors.

 

Share this post


Link to post
Share on other sites

@Daniil Roslyakov 

2 минуты назад, DEST сказал:

Значит, у вас уже объявлена такая переменная, заменяйте название. 

 

Share this post


Link to post
Share on other sites

@Daniil Roslyakov удали все места, где используется, оставь только в new и добавь в OnPlayerConnect: 
adminprefix[playerid] = "Нет";

И скажешь, есть ли ошибки. 

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

Обновил

Share this post


Link to post
Share on other sites

@Daniil Roslyakov какую ты строку ставил в OnPlayerConnect и такая же ли ошибка?

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

    • DRA GON
    • youngblaste
      By youngblaste
      Привет. Не нужно писать что команда заезженная - просто выйди с темы.
      И так, постараюсь объяснить как всё работает в этой команде
      Погнали, хлопци!:
      CMD:makeadmin(playerid, params[]){ /* Здесь начинается наша команда */ if(p_info[playerid][pAdmin] < 7) /* Идёт проверка на админку, если наш уровень администратора ниже 7 то ничего не произойдёт (можно сменить на свой уровень) */ return true; /* возвращаем 1 - или же не на ельфийском, то просто ничего не пройзойдёт и команда не продолжит работу */ new name[MAX_PLAYER_NAME], player[MAX_PLAYER_NAME], targetid, admlvl, string[250]; /* Создаем переменные для команды (targetid - кому выдавать будем админку, admlvl - это какой лвл админки будем выдавать), string - ну это стринг :D */ if(sscanf(params, "ud", targetid, admlvl)) /* Делаем проверку на правильное написание команды */ return SendClientMessage(playerid, -1, "{84cd5c}[Подсказка] {ffffff} Используйте команду: /makeadmin [id игрока] [lvl админ-прав]"); /* Если мы ввели не верно команду, то нам возвращает сообщение в чат с подсказкой как ввести команду */ GetPlayerName(playerid, name, MAX_PLAYER_NAME); /* Тут мы получаем наш ник */ GetPlayerName(targetid, player, MAX_PLAYER_NAME); /* А тут мы получаем ник игрока которому выдаем админку */ if(!IsPlayerConnected(targetid)) /* Делаем проверку на то находится ли игрок на сервере, вообще у меня в команде здесь есть проверка на Авторизован ли игрок и она вместе с проверкой на есть ли такой игрок на сервере, но увы, я убрал потому что скорее всего не у всех есть такая фича, это не очень важно но если ты хоть немного шаришь то и сам добавишь проверку */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Игрок ещё не вступил в игру"); /* Возвращаем сообщение о том что игрок ещё не вступил в игру - ну вообще должно быть "Игрока с таким ID нету на сервере", но если ты решишь добавить проверку на авторизацию то это будет немного лучше */ if(admlvl < 0 || admlvl > 6) /* Делаем проверку на какой лвл мы хотим поставить игрока, то есть мы не можем выдать лвл адм ниже 0 или выше 6, меняйте на своё если так нужно))) */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Увы, нельзя выдавать меньше 0 или выше 6 уровня администратора"); /* Возвращаем сообщение о том что мы не можем выдавать меньше 0 или выше 6 лвл адм */ p_info[targetid][pAdmin] = admlvl; /* И так... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ format(string, sizeof(string), "{b33d3d}{A} Администратор %s[%d] назначил администратором игрока %s[%d]", name, playerid, player, targetid); /* И так, тут мы форматируем string и после отпрам в админ чат))) */ AdmChat(-1, string); /* Ниже вы увидите сток с AdmChat, крч просто отправляем в адм чат */ format(string, sizeof(string), "{ffffff}Администратор %s[%d] назначил Вас администратором %d-го уровня.", name, playerid, admlvl); /* Форматируем опять стринг и потом игроку отправим */ SendClientMessage(targetid, -1, string); /* Устал описовать команду, ну да ладно... Теперь отправляем игроку string */ return true; /* Возвращаем 1, чтобы небыло еррора))) */ } /* Здесь заканчивается наша команда */ /* vk.com/youngblaste - люbлю сkpuптuнг */ А теперь сток AdmChat, добавьте возле своих стоков ну или под командой:
      stock AdmChat(color, const text[]) /* тут не буду много объяснять */ { foreach(new i: Player) if(p_info[i][pAdmin] > 0) SendClientMessage(i, color, text); /* Обычно используют для админ чата... Ну и как всегда... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ } Если Вы заметили какую-то ошибку, пожалуйста отпишите. Надеюсь Вам понравился этот мини-урок, ну а точнее команда /makeadmin.
      Удачи, юные скриптеры