Как сменить в паспорте ранг на должность

bet.io

Известный
Автор темы
117
16
Всем привет. Можете подсказать как заменить, чтобы при показе было видно не ранг, а должность
Код:
format(string, sizeof(string), "Фракция: %s  Должность: %d",ttext,PlayerInfo[playerid][pRank]);
                    SendClientMessage(giveplayerid, COLOR_YELLOW2, string);
Как оформлены у меня должности:
Код:
if(PlayerInfo[targetid][pRank] == 8) { rangz = "Директор"; }
            else if(PlayerInfo[targetid][pRank] == 7) { rangz = "Зам. директора"; }
            else if(PlayerInfo[targetid][pRank] == 6) { rangz = "Инспектор"; }
            else if(PlayerInfo[targetid][pRank] == 5) { rangz = "Начальник секции"; }
            else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Специальный агент"; }
            else if(PlayerInfo[targetid][pRank] == 3) { rangz = "Старший агент"; }
            else if(PlayerInfo[targetid][pRank] == 2) { rangz = "Агент"; }
            else if(PlayerInfo[targetid][pRank] == 1) { rangz = "Стажёр"; }
Заранее спасибо за помощь :)
 

S-Sirius

Известный
353
21
На formate-е и strcat делай

диалог

PHP:
extract params -> new playerid2; else
        return SendClientMessage(playerid, 0xccccccFF, "Показать паспорт [ /pas ID ]");
new var0[120], var1[320];
format(var0, 120, "\n{cccccc}Организация: %s", ttext);
strcat(var1, var0, 950);
format(var0, 120, "\n{cccccc}Должность: %s",PlayerInfo[playerid][pRank]);
strcat(var1, var0, 950);
ShowPlayerDialog(playerid2, 1402, 0, "Паспорт", var1, "*", "");

сообщение в чате

PHP:
extract params -> new playerid2; else
        return SendClientMessage(playerid, 0xccccccFF, "Показать паспорт [ /pas ID ]");
new var0[120], var1[320];
format(var0, 120,"\n{cccccc}Организация: %s\n\
{cccccc}Должность: %s",ttext,PlayerInfo[playerid][pRank]);
SendClientMessage(playerid2, 0xccccccff, var0);

На диалоге будет красиво.
 
Последнее редактирование:

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Всефорумный модератор
2,633
2,479
Всем привет. Можете подсказать как заменить, чтобы при показе было видно не ранг, а должность
Код:
format(string, sizeof(string), "Фракция: %s  Должность: %d",ttext,PlayerInfo[playerid][pRank]);
                    SendClientMessage(giveplayerid, COLOR_YELLOW2, string);
Как оформлены у меня должности:
Код:
if(PlayerInfo[targetid][pRank] == 8) { rangz = "Директор"; }
            else if(PlayerInfo[targetid][pRank] == 7) { rangz = "Зам. директора"; }
            else if(PlayerInfo[targetid][pRank] == 6) { rangz = "Инспектор"; }
            else if(PlayerInfo[targetid][pRank] == 5) { rangz = "Начальник секции"; }
            else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Специальный агент"; }
            else if(PlayerInfo[targetid][pRank] == 3) { rangz = "Старший агент"; }
            else if(PlayerInfo[targetid][pRank] == 2) { rangz = "Агент"; }
            else if(PlayerInfo[targetid][pRank] == 1) { rangz = "Стажёр"; }
Заранее спасибо за помощь :)
Неужели в павн нет таблиц? Почему их не используешь?
 
Неужели в павн нет таблиц? Почему их не используешь?
Посмеялся. Ты совсем не умеешь читать код?
Тут есть "таблицы", только в павн и других языках они называются массивами.
 

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,130
Неужели в павн нет таблиц? Почему их не используешь?
Это достаточно муторное занятие, ибо нужно рассчитывать размерность массива, а в Pawn они в большинстве своём статические и не очень удобные для работы с текстовой информацией. Pawn, в отличие от Lua, не позволяет просто взять и соединить две строки, не используя стороннюю переменную для этого дела. Но код действительно ужасный, я бы немного его изменил, чтобы он выглядел по-человечески. Например, воспользовался бы switch, либо записал бы через enum.
 

haman samp

Новичок
7
0
Привет. Я конечно всё понимаю, но много чего лучше тебе сразу оптимизировать!
Первое, создай отдельную переменную с этими рангами (1 ячейка - фракции, 2 ячейка - ранги, 3 ячейка - кол-ва ячеек на использование).
Второе, не слушай про strcat людей, использовать её можно когда меньше 5 строк (5 раз используется strcat) и перед каждым использованием, нужно очищать переменную. И да, мне понравилось что-то про static const (ответчики, вы понимаете для чего это вообще используется?) если нет, то лучше его не использовать, если уже лень подсчитывать то, головой об стену ударь и продолжай работу))

Задание для ответчиков:
К примеру: "Приветствую, дорогие зрители! %s*ник* вас приветствует\0" (Сколько здесь нужно использовать ячеек? пск, то что в ** не нужно считывать)

У меня получилось 72 ячеейки. Спросите почему? Весь текст имеет 51 символов, теперь приступаем к математике :D
%s (-2 ячейки), \ (-1 ячейка). теперь %s ( будет заменяться на MAX_PLAYER_NAME (то есть, 24)) В итоге: 72 ячейки