В теме 21 сообщение

По заявке пользователя @Drummer1993 выкладываю готовое решение по созданию так называемой системы префиксов. Перейдем сразу к делу. 

Ко всем new: 

//в enum с данными о игроке
prefix[50],

Внимание! Далее, из-за слишком большого числа зависимостей, вместо prefix[playerid] и prefix[params[0]] название своего массива с данными о игроке. Например, у нас это PlayerInfo. Тогда необходимо использовать: 
PlayerInfo[playerid][prefix] и PlayerInfo[params[0]][prefix] соответственно. 
При возникновении трудностей, пишите в ЭТУ тему. 

Ко всем командам: 
 

Спойлер

CMD:setprefix(playerid, params[])
{
	//проверки на статус игрока. Например, на уровень администратора. Если проверок нет, удалите эту строку. 
	if(sscanf(params, "us[50]", params[0], params[1])) return SendClientMessage(playerid, -1, "Введите: /setprefix [playerid] [new prefix]");
	prefix[params[0]] = EOS; 
	strcat(prefix[params[0]], params[1]); 
	SendClientMessage(playerid, -1, !"Вы успешно выдали префикс игроку!");
	return true; 
}

 

В OnPlayerDisconnect <ИЛИ> в OnPlayerConnect: 
 

prefix[playerid] = EOS; 

Вот, собственно, "скелет" системы. Так как все моды разные, белые и красные, вам нужно подстраивать под свой. Необходимо сделать сохранение, а также вывод туда, куда вам нужно. Если не получается сделать это самим, пишите, поможем ;)

 

 

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


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

Все получилось огромное спасибо )))))) 

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

можно поблагодарить автора +

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


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

Спасибо,сейчас опробую!

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

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


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

@DEST Я вообще не понял как устанавливать.

Я не много разбираюсь в PAWNO , но тут реально не понятно.

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


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

@KRESTOVSKIY ну если вы разбираетесь только на уровне открыть программу и нажать F5, то этого недостаточно. Если у вас будет какой-то конкретный вопрос, обращайтесь в соответствующий раздел. Если хотите чтобы все сделали за вас, то вам сюда: https://pawno-rus.ru/freelancers/zapisi 

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


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

У меня похожая команда есть в моде. Только мне ещё нужен выбор цвета префикса. Если скину код команды - подскажите?

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

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


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

Здравствуйте , у меня выскакивают ошибки C:

Спойлер

\Users\1\Desktop\Èëüÿ è Ëåøà\SERVERS\Full RP\project\gamemodes\NVE-GM.pwn(28942) : error 028: invalid subscript (not an array or too many subscripts): "prefix"
C:\Users\1\Desktop\Èëüÿ è Ëåøà\SERVERS\Full RP\project\gamemodes\NVE-GM.pwn(28942) : warning 215: expression has no effect
C:\Users\1\Desktop\Èëüÿ è Ëåøà\SERVERS\Full RP\project\gamemodes\NVE-GM.pwn(28942) : error 001: expected token: ";", but found "]"
C:\Users\1\Desktop\Èëüÿ è Ëåøà\SERVERS\Full RP\project\gamemodes\NVE-GM.pwn(28942) : error 029: invalid expression, assumed zero
C:\Users\1\Desktop\Èëüÿ è Ëåøà\SERVERS\Full RP\project\gamemodes\NVE-GM.pwn(28942) : fatal error 107: too many error messages on one line

Спойлер

 

CMD:o(playerid, params[])
{
    if(IsAdmin(playerid, 3)) return 1;
    if(sscanf(params, "s[140]", params[0])) return SCM(playerid, COLOR_WHITE, "Èñïîëüçóéòå: /o [òåêñò]");
       format:str_cmd( "Àäìèíèñòðàòîð %s: %s",pInfo[playerid][prefix], params[0]);
    SendClientMessageToAll(COLOR_YELLOW,str_cmd);
    return 1;
}

CMD:setprefix(playerid, params[])
{
    if(IsAdmin(playerid, 7)) return 1;
    if(sscanf(params, "us[50]", params[0], params[1])) return SendClientMessage(playerid, -1, "Use: /setprefix [playerid] [new prefix]");
    if( !IsPlayerLogged( params[0] ) ) return SCM( playerid, COLOR_DARK_GRAY, !INCORRECT_PLAYER_ID );
    prefix[params[0]] = EOS;
    strcat(prefix[params[0]], params[1]);
    SendClientMessage(playerid, -1, !"Prefix given!");
    return true;
}

 

 

помогите , что делать?

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

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


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

@FernandoW 

21 час назад, FernandoW сказал:

prefix[params[0]]

нужно заменить на 

21 час назад, FernandoW сказал:

pInfo[params[0]][prefix]

как это сделано у вас раньше

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


Ссылка на сообщение
Поделиться на другие сайты
Новичок
1 час назад, DEST сказал:

@FernandoW 

нужно заменить на 

как это сделано у вас раньше

В какой строчке именно это заменить?

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


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

@FernandoW в которой это написано, в команде setprefix. Какая она у вас в моде я не знаю, Вы не пометили строчки, в которых ошибки. 

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


Ссылка на сообщение
Поделиться на другие сайты
Новичок
2 часа назад, DEST сказал:

@FernandoW в которой это написано, в команде setprefix. Какая она у вас в моде я не знаю, Вы не пометили строчки, в которых ошибки. 

Спойлер

CMD:o(playerid, params[])
{
    if(IsAdmin(playerid, 3)) return 1;
    if(sscanf(params, "s[140]", params[0])) return SCM(playerid, COLOR_WHITE, "Èñïîëüçóéòå: /o [òåêñò]");
       format:str_cmd( "Àäìèíèñòðàòîð %s: %s",pInfo[playerid][prefix], params[0]);
    SendClientMessageToAll(COLOR_YELLOW,str_cmd);
    return 1;
}

CMD:setprefix(playerid, params[])
{
    if(IsAdmin(playerid, 7)) return 1;
    if(sscanf(params, "us[50]", params[0], params[1])) return SendClientMessage(playerid, -1, "Use: /setprefix [playerid] [new prefix]");
    if( !IsPlayerLogged( params[0] ) ) return SCM( playerid, COLOR_DARK_GRAY, !INCORRECT_PLAYER_ID );
    prefix[params[0]] = EOS;     ТУТ ОШИБКА
    strcat(prefix[params[0]], params[1]);       И ТУТ
    SendClientMessage(playerid, -1, !"Prefix given!");
    return true;
}

 

 

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

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

3.2. Код больше 10 строк необходимо брать в теги "Код" и "Спойлер". Как это сделать рассказано в разделе "FAQ".

Устное предупреждение.

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


Ссылка на сообщение
Поделиться на другие сайты
Новичок
1 минуту назад, DEST сказал:

@FernandoW вот в этих строчках и замените

Заменил , на сервере пишу в /o , пишет "Администратор : И тут текст. Префикс не пишется

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

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


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

В конце темы и указано, что это только скелет системы, нужно еще дорабатывать под лично свой мод, т.к. в SAMP практически все моды сделаны в виде одного файла без возможности подключения изолированных друг от друга модулей. 

В 23.10.2017 в 21:30, DEST сказал:

Необходимо сделать сохранение, а также вывод туда, куда вам нужно.

@FernandoW 

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


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

@DEST, люди не хотят думать. Привыкли, что всё всегда за них делают. Это не как раньше, пытались на основе чего-то сделать сами.

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

2.17. Запрещено флудить, оффтопить, заниматься флеймом. 

Устное предупреждение.

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


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

Помогите умоляю:
 

:\EGOR\23\mod\1\gamemodes\new.pwn(4046) : error 028: invalid subscript (not an array or too many subscripts): "prefix"
D:\EGOR\23\mod\1\gamemodes\new.pwn(4046) : warning 215: expression has no effect
D:\EGOR\23\mod\1\gamemodes\new.pwn(4046) : error 001: expected token: ";", but found "]"
D:\EGOR\23\mod\1\gamemodes\new.pwn(4046) : error 029: invalid expression, assumed zero
D:\EGOR\23\mod\1\gamemodes\new.pwn(4046) : fatal error 107: too many error messages on one line

Compilation aborted.

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


4 Errors.

Строка:prefix[playerid] = EOS;

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

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

    • От DonK/Key
      Всем привет, помогите кто разбирается, так как я можно сказать начинающий сделать свой КРМП, буду благодарен. Напишите либо тут либо @evreI_sigma (Мой Telegram)
    • От OPCODERSSSS
      Прописал уже все инклуды,он мне все равно вот эту дрянь ну емае
       
       
      other.amx
      other.pwn
      hgsystem.amx