PDA

Просмотр полной версии : [RP] Funny RolePlay V. 2.1 (Advance RP)



Danny_Marcelo
17.04.2016, 23:56
https://pp.vk.me/c629414/v629414737/24ebd/b7dJfw6txcg.jpg

Всем доброго времени суток! Сегодня я Вам представляю мод Funny RolePlay (Основа Scorpion RP) мод отлично подойдёт как для основы, так и для вырезки отдельных систем. Пару минусов заключаются в том, что он на стандартном командном процессоре и требует хорошей оптимизации.

База данных, плагины, всё есть в архиве.

Что было сделано мной:


1. Убран лишний мапинг.
2.Удалена команда /reload т.к. с ней был глобальный баг со складами и территориями банд.
3.Сделан Full доступ для системных администраторов. (Привязка к нику) Сами поглядите.
4.Был баг,при котором убивая человека вам не давали звёзды. Исправлено.
5. Поднастроил спидометр. Сделал нормальную скорость. Теперь Туризмо едет 107 км/h,а не 300)) А так же не много поровнял текстрайв.Сделал более похожим на ARP.
6. Изменил мапинг больниц на старый адвансовский.
7.Добавил скины в КПЗ как на ARP,+ добавил 2 скина для женского пола.
8.Исправлены склады банд и мафий. После рестарта не сохранялись материалы. Теперь всё сохраняется.
9.Исправлены оружейные у мафий. Теперь всё работает.
10.Добавлена ординаторская в больницы.
11.Сделан салон сотовой связи. (Команда /sellsim пока не готова)
12.Добавлена команда /hpall.
13.Убрана админ авторизация ( /dost [[password] теперь вводить не нужно )
14. Сделал команду /setint (более 140 локаций)
15. Переделал команду /weap (Копия ARP)
16. Во все 3 города добавлены аммунации.
17. Исправлена панель предполагаемых читеров. (Раньше обычным игрокам при авторизации показывало 1 цифру)
18. Добавил команду /givegun,но пока не настроил под /weap. В следующей версии переделаю
19.Добавил несколько бизнесов такие как: Автосалон ЛС,Мото-вело рынок ЛС,все частные казино,Риэлторское агенство,управление статистики. (копия ARP)
20.Перенёс администрацию президента в ЛС (ARP)
21.Сделана команда /close для банд и мафий (ARP)
22.Команда /sp сделана как на ARP на сегодняшний день (Практически копия)
23. Сделал команду /admins как на ARP. Показывает кто за кем следит,кто АФК,и не показывает данные гл.админов.
24. Сделана команда /setfuel копия ARP.
25. Добавлена система мероприятий /settp and /tp.
26. Исправил баг,при котором при продаже бизнеса в гос.баланс предприятия не обнулялся.
27. /c 060 переделана,но не доведена до копии ARP.
28. Система назначения администратора как на ARP. Команда /adm
29. Сделаны 64 анимации в команде /anim (не копия ARP)
30. Для гл.админов (5 лвл) добавлены команды /lego & /dellast для создания объектов (Почти как на ARP)
31.Добавлены команды /loadfs & /unloadfs для загрузки,выгрузки filterskriptов как на ARP.
32.Добавлены команды /tv & /tvoff (Готовность 50 %)
33. Сделана /templeader копия ARP. (Все ID как на Advance)
34. Заменены звуки как на ARP.
35. Переделал команду /drugs. Сделан эффект,почти как на ARP.
36. Все команды сделал лесенкой.
37. Для 5 лвл админки добавлена команда /tempzone для перекраски территорий мафий и банд. (Почти ARP)
38.Добавлен концертный зал. Сделан как бизнес.
39. Для концертного зала сделаны команды: /tmenu,/tickets,/giveskip,/dropticket. (система паблик)



40.Привязал команду /tmenu к бизнесу "Концертный зал"
41. Очистил базу данных
42.Удалил команду /history,т.к. была нерабочая и с помощью неё можно было положить сервер.
43. Переделал команду /givegun
44. Исправил баг с вводом пароля
45. Переделал команды /vec,/delvec,/spcars,/respv
46. Сделал команду /sellsim.
47. Сделал команду /delacc копия ARP. С подтверждением.
48. Сделана заготовка Калигулы.
49. Сделана заготовка случайного пин кода.
50. Чуть - чуть оптимизировал мод.
51. Удалил лишние таймеры, которые попусту нагружают мод.
52. tryinclude <roreach> изменён на include <foreach>
53. Сделан ТВ Центр с лифтом ARP
54. Сделана стандартная ординаторская Old ARP
55. Изменен интерьер радиоцентров копия ARP.
56. Изменён логотип на более красивый.
57. Удалил работы катеровод и сборщик оружия.
58. Сделана команда /setint как на ARP ( такая же бестолковая точь в точь)) )
59. Перевел цвета в include <color>
60. Сделана команда /admammo 5 lvl админки - заспавнить ящики на авианосце ARP
61. Исправил команду /deladmin. Теперь всё работает.
62.Fix DataBase. (Спасибо Славе Бобкову)
63. Удалил всё же команду /setint
64. Исправил команду /restart
65. Написал только то, что вспомнил на данный момент. Должны быть ещё доработки, увидите всё сами.




66. Исправлен баг с stay within world(Ниже скрин(БОЛЬШЕ ТЕКСТА ТАКОГО НЕ БУДЕТ :)
https://pp.vk.me/c630128/v630128345/34b10/Wvq_HSrVpbM.jpg
67. Перенес текстдравы и обьекты в инклуды
https://pp.vk.me/c630128/v630128345/34b19/sGFE9iFmw5I.jpg
https://pp.vk.me/c630128/v630128345/34b21/R4A0mKj9Lnk.jpg
68. Сделал систему выбора скина на текстдравах(COPYARP)
69. Добавил в /ahelp команды 5 уровня
70. Поправил везде дизайн(как на адванс РП)
71. Исправил базу данных
72. Исправил баги с командой /givelic
73. Отключил работу пилота
74. Исправил баг с хп (быстро уменьшалось) щас не уменьшается.
75. Добавил 3Dtexts "Список товаров /buy" В магазине 24\7
76. Изменил диалог "Изменение номера телефона"
77. Изменил частично систему бизов и домов!
На этом все, скоро будет версия: 2.4
https://pp.vk.me/c630128/v630128345/34b2a/C1bww8dWthE.jpg
https://pp.vk.me/c630128/v630128345/34b34/0dp8SRJbjpE.jpg
https://pp.vk.me/c630128/v630128345/34b3e/eRDNYSN0f_g.jpg



78. Сделал систему регистрации на TD (вырезал из мода Леона)
79. Изменил текстрайв названия сервера (Тоже из мода Леона)
80. Добавил бары всем частным казино.
81.Изменил концертный зал.
82.Добавил SPA Центр (99% Advance RP)
83. Сделано здание Министерства Здравоохранения.
84.Сделано здание Министерства Внутренних Дел
85. Исправлен баг со спидометром (теперь не показывается на пассажирском сидении)
86.Некоторые команды взаимодействовал со sscanf.
87.Добавил Sex-Shop (4 штуки) ARP.
88. Сделал все 9 отелей как на АРП (готовность 50 %)
89.Сделал тир (готовность 80%)
90. Начал писать систему должников в мэриях (готовность 30 %)
91.Сделаны пожарные станции. (осталось добавить работу пожаного)
92.Добавил интерьер библиотеки.
93.Сделал казармы для всех армий.(ARP 100%)
94. Добавил военный завод (пока только интерьер)
95.Переписал систему /gps (не ARP, но тем не менее чекпоинт пропадает по прибытию на отмеченное место) (скоро сделаю на mapicon)
96.Вернул Мото-Вело рынок в мод.
97. Вернул автосалон ЛС в мод.
98.Сделал все 6 банков (ARP 100 %). 3 гос. банка и 3 частных.
99. Сделал клуб парашютистов (ARP 100 %)
100. Добавлен бестолковый "Развлекательный центр" (пусть будет :D )
101. Добавил центр управления полётами на ВВС (готовность 80 %)
102. Сделан мапинг у мэрии ЛС (ARP 100 %)
103. Теперь убран абсолютно весь лишний мапинг. (проверял каждую координату с помощью /tpcor)) )
104.Весь мапинг перенёс в инклуд. (include <object>)
105.Поставил 2 шлагбаум на ЖДЛС. (ARP 100%)
106. Сделал команду /anim (все 74 анимации точь в точь как на Advance RP)
107. Сделан FilterSkript <posti> (ARP 99 %, т.к. не поставил актёров. (пока лень, в следующей версии сделаю :D) )
108. Сделан FilterSkript <adro> большой самолёт в аэропорту ЛС (Как на Адвансе)
109. Мафиям добавил оружия перед входом (как на ARP. Кастет, катана и клюшка для гольфа)
110. Сделал диалоговое окно с информацией при бане. (спасибо Лёве) )
111. Изменил диалог команды /buybiz.
112. По всему серверу максимально точно повторил мапинг (но не факт, что весь добавил, т.к. на АРП очень много мелочей,но тем не менее буду делать)
113. Сделал интерьеры аэропортов (ARP 100 %)
114. В некоторых местах подкорректировал цвета. (под ARP).
115. Исправил баг с хп. (теперь не убавляется быстро)
116. Ну вот всё, что вспомнил, написал. Дальше увидите сами. :)



1. Исправлен баг со входом в дома. Теперь всё работает, как на L.ALT, так и на /exit.
2. Исправлен баг с шахтой. Теперь можно уволиться с работы.
3. Исправлен баг со входом в ТВ Центр.
4. Исправлен баг с /pickammo
5. Подправил ящики на Авианосце
6. Исправлен баг с клавишами Y & N (Нельзя было нажимать согласие)
7. Исправлен баг с /t в радиоцентрах.
8. Подправлена команда /dice
9. Удалено логирование диалогов и команд т.к. оно попросту нагружало сервер. Вместо этого включил в server.cfg логирование..
10. Исправлены все крупные баги с PlayerToPoint
11.Добавлена команда /sskin - выдать постоянный скин (Спасибо Леону)
12. Изменил команду /inter
13. Подкорректировал анимации
14. Немного изменил диалоги в OnDialogResponse
15. Оптимизировал некоторые команды
16. Добавил велосипеды на спавн (ARP 100 %)

Там ещё несколько багов исправлял, точно не помню что, т.к. на скорую руку всё делал.
Важная информация: больше обновления выходить не будут, т.к. я забрасываю мод. Это так сказать мой последний подарочек Вам. Огромное спасибо вам за всё. Пользуйтесь на здоровье. Может кто то доработает данный мод. А я в скором времени буду писать мод с 0. Всем удачи.


Мод на Mysql R39-4.
Команды: Стандартный OnPlayerCommandText.

Автор мода: Taichi_Asakura.
Автор доработки: Danny_Marcelo
Автор маппинга: Jekson_Malevich

Скачать мод: http://catcut.net/7Ux5
Скриншоты: http://imgur.com/a/JFHwK


Просьба распространяя на другие порталы указывать авторов.


Чтобы запустить FS, не нужно прописывать его в server.cfg. Достаточно просто запустить его.
/loadfs posti (таможни как на АРП)
/loadfs adro (большой самолёт в аэропорту ЛС)
Команды FS "adro":
/givef+ - выдать парашюты.
/gofff+ запускать самолёт
/gofff- снижать самолёт



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

Header size: 8944 bytes
Code size: 2917032 bytes
Data size: 4304540 bytes
Stack/heap size: 16384 bytes; estimated max. usage=6582 cells (26328 bytes)
Total requirements: 7246900 bytes


Как запускать данный мод:


https://youtu.be/TSEDzky8Uqk

Ценная информация
http://i.imgur.com/G9ySBEz.jpg

TheMallard
18.04.2016, 05:24
Быдлокод

Danny_Marcelo
19.04.2016, 07:43
Почему сразу, если стандартный командый процессор, то это быдлокод? Да и потом, весь код лесенкой.

TheMallard
19.04.2016, 09:53
Наличие форматирования лесенкой автоматом лишает код статуса быдлокода?

Danny_Marcelo
19.04.2016, 11:55
Нет, но тем не менее, он становится читабельней.

Daniel_Cortez
01.05.2016, 14:20
Краткий обзор.





#tryinclude <foreach>

Понты.
Псевдооператор foreach используется в моде независимо от того, найден инклуд или нет.
Если компилятор не найдёт инклуд, он начнёт выплёвывать ошибки не на строке подключения инклуда, а по всему моду, где есть циклы с foreach.
Те, кто говорят, что "#tryinclude" удобнее, чем "#include" (привет, г-и) - либо пустословы, либо редкостные мазохисты.





//========================================================
native sscanf(const data[], const format[], {Float,_}:...);
//========================================================

Ещё понты.
Функция уже объявлена в sscanf2.inc, зачем ещё раз объявлять её в моде?





new points[6];
points[0] = 100 - PlayerInfo[showedid][pSkill][0];
points[1] = 100 - PlayerInfo[showedid][pSkill][1];
points[2] = 100 - PlayerInfo[showedid][pSkill][2];
points[3] = 100 - PlayerInfo[showedid][pSkill][3];
points[4] = 100 - PlayerInfo[showedid][pSkill][4];
points[5] = 100 - PlayerInfo[showedid][pSkill][5];

Циклы для слабаков.





new OpustitRuki[MAX_PLAYERS];
new ZapretDice[MAX_PLAYERS];
new KostiName[MAX_PLAYERS];
new KostiMoney[MAX_PLAYERS];

http://lurkmo.re/%D0%98%D0%BD%D0%B4%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4#.D0.94.D0.B5.D0.BB.D1.84.D0.B8.D1.88.D0.BA.D0.BE.D0.BB.D0.BE.D0.BA.D0.BE.D0.B4





new Cache: viboripidori = mysql_query(dbHandle,lads,true);

Автор этого мода не только быдлокодер, но ещё и петросян.





if(strcmp(cmd, "/vote", true)==0)
{
if(PlayerInfo[playerid][pAdmin] >= 5)
{
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SCM(playerid, COLOR_GRAD1, "Используй /vote [ник кандидата]");

Сам собой напрашивается вопрос: зачем вообще к моду подключен sscanf2? Ради пары отрывков кода, которые лень переделать?
Кстати, sscanf2 используется в моде всего 5 раз.
Вот самое первое место, где он встречается:


public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
new tmp[128],idx;
new cmd[128];
new giveplayerid;
cmd = strtok(cmdtext,idx);
// sscanf
new command[32], params[128];
sscanf(cmdtext, "s[32]s[128]", command, params);

Параметры команды отделяются от названия сразу двумя способами, в лучших быдлокодерских традициях.
И присмотритесь внимательно к форматной строке в sscanf: "s[32]s[128]". В переменную params ничего не запишется, вместо этого и название, и параметры окажутся в command. Мало того, если длина команды и параметров в сумме больше 31 символа, sscanf выплюнет сообщение в лог "sscanf warning: String buffer overflow" - и после этого гадай, откуда берётся такое сообщение.
В остальных 4 случаях с помощью sscanf2 в командах (OnPlayerCommandText) обрабатываются параметры из params, но поскольку в params ничего нет, то команды будут работать не так, как задумано.





if (strcmp(cmd, "/history", true)==0)
{
if (Logged[playerid] == true)
{
// ...
new sttr[500];
new namep[36];
if (Logged[playerid] == true)

Донор склероза.

Ещё из той же команды:


new Cache: resultCache = mysql_query(dbHandle,adminsa,true);
rows = cache_num_rows();
if(rows < 1) return SCM(playerid,COLOR_GRAD2, "Этот игрок не менял имен.");
// ...
cache_delete(resultCache);

Во-первых, можно устроить флуд этой командой (от игрока требуется только ввести после неё чей-нибудь ник) - сервер начнёт лагать из-за однопоточных запросов.
Во-вторых, если игрок ни разу не менял ник, кэш с результатами SQL-запроса не выгружается - получаем утечку памяти. Btw, таких утечек ещё полно по всему моду.
Даже если сервер при флуде не будет зависать от однопоточных запросов, то из-за утечек у него вскоре закончится доступная память и хостер отрубит процесс.


Итог:
1. Код - эталон убожества.
2. sscanf2 используется всего 5 раз... и все 5 раз неправильно.
3. Куча возможностей положить сервер.

Danny_Marcelo
09.05.2016, 09:07
Спасибо за подробное разъяснение. Много не знал. Буду стараться исправлять этот мод в лучшую сторону.

Danny_Marcelo
09.05.2016, 11:35
Я хочу этот мод сделать нормальным. По сути если им заняться, то можно сделать из него конфетку.

TheMallard
09.05.2016, 19:24
Легче удалить весь код и написать с нуля.

Daniel_Cortez
09.05.2016, 20:13
Я хочу этот мод сделать нормальным. По сути если им заняться, то можно сделать из него конфетку.
Вы не поверите, сколько раз до вас так говорили.

Я не могу вам запретить работать с этим модом, но и выкладывать такой код здесь тоже не следует, всё равно из него ничему хорошему не научишься - скорее, наоборот. В конце концов, на данном портале важно качество работ, а не их количество.

Danny_Marcelo
09.05.2016, 23:43
А я всё же попробую. На нём же и попрактикуюсь. Раз уж начал с этого мода в 2014 году, так и продолжу. Глядишь, может что - то из этого выйдет стоящее.

Danny_Marcelo
11.05.2016, 03:50
Не скоро версия 2.4. Каждый день заниматься модом не могу. Но чтобы вы не переживали, вот вам несколько скриншотов с разработки:


http://i.imgur.com/xNGGgvT.jpg
http://i.imgur.com/tzhqOXK.jpg
http://i.imgur.com/yPYdxBB.jpg
http://i.imgur.com/RyR5sZg.jpg
http://i.imgur.com/cFbMYYS.jpg
http://i.imgur.com/UzBr7I3.jpg


P.S. Это не всё. Тянем интрижку))

Danny_Marcelo
07.06.2016, 06:23
Краткий обзор.



Понты.
Псевдооператор foreach используется независимо от того, найден инклуд или нет.
Если компилятор не найдёт инклуд, он начнёт выплёвывать ошибки не на строке подключения инклуда, а по всему моду, где используется foreach.
Те, кто говорят, что "#tryinclude" удобнее, чем "#include" (привет, г-и) - либо пустословы, либо редкостные мазохисты.



Ещё понты.
Функция уже объявлена в sscanf2.inc, зачем ещё раз объявлять её в моде?



Циклы для слабаков.



http://lurkmo.re/%D0%98%D0%BD%D0%B4%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4#.D0.94.D0.B5.D0.BB.D1.84.D0.B8.D1.88.D0.BA.D0.BE.D0.BB.D0.BE.D0.BA.D0.BE.D0.B4



Автор этого мода не только быдлокодер, но ещё и петросян.



Сам собой напрашивается вопрос: зачем вообще к моду подключен sscanf2? Ради пары отрывков кода, которые лень переделать?
Кстати, sscanf2 используется в моде всего 5 раз.
Вот самое первое место, где он встречается:

Параметры команды отделяются от названия сразу двумя способами, в лучших быдлокодерских традициях.
И присмотритесь внимательно к форматной строке в sscanf: "s[32]s[128]". В переменную params ничего не запишется, вместо этого и название, и параметры окажутся в command. Мало того, если длина команды и параметров в сумме больше 31 символа, sscanf выплюнет сообщение в лог "sscanf warning: String buffer overflow" - и после этого гадай, откуда берётся такое сообщение.
В остальных 4 случаях с помощью sscanf2 в командах (OnPlayerCommandText) обрабатываются параметры из params, но поскольку в params ничего нет, то команды будут работать не так, как задумано.



Донор склероза.

Ещё из той же команды:


new Cache: resultCache = mysql_query(dbHandle,adminsa,true);
rows = cache_num_rows();
if(rows < 1) return SCM(playerid,COLOR_GRAD2, "Этот игрок не менял имен.");
// ...
cache_delete(resultCache);

Во-первых, можно устроить флуд этой командой (благо, от игрока требуется только ввести после неё чей-нибудь ник) - сервер начнёт лагать из-за однопоточных запросов.
Во-вторых, если игрок ни разу не менял ник, кэш с результатами SQL-запроса не выгружается - получаем утечку памяти. Btw, таких утечек ещё полно по всему моду.
Даже если сервер при флуде не будет зависать от однопоточных запросов, то из-за утечек у него вскоре закончится доступная память и хостер отрубит процесс.


Итог:
1. Код - эталон убожества.
2. sscanf2 используется всего 5 раз... и все 5 раз неправильно.
3. Куча возможностей положить сервер.

Уважаемый Daniel_Cortez. Я учёл все ваши замечания и многое изменил в моде. И про sscanf ваш комментарий подтвердился.

Начал использовать в командах sscanf и в итоге допустим взяв команду /msg. Если я в команде /msg использовал больше символов, то она не срабатывала, а вот в консоли выбивало вот именно такое сообщение:



"sscanf warning: String buffer overflow"


Я пробовал увеличивать колличество символов вот тут:



if(sscanf(params, "s[50]", params[0])) return SendClientMessage(playerid, COLOR_LIGHTGREY, "Используйте /msg [текст]");


Но ничего не изменилось. И по этому у меня к вам такой вопрос. Если вас не затруднит, объясните пожалуйста мне, как же все таки мне правильно подключить sscanf к моду? Я сначала гуглил, но в итоге большинство тем находив, видел тоже самое, что у себя в моде. По этому приходится спросить у вас. Заранее благодарю за ответ.

Вот изменил собственно подключение:

Было так:



public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
new tmp[128],idx;
new cmd[128];
new giveplayerid;
cmd = strtok(cmdtext,idx);
// sscanf
new command[32], params[128];
sscanf(cmdtext, "s[32]s[128]", command, params);


А стало вот так:



public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
new tmp[128],idx;
new cmd[128];
new giveplayerid;
cmd = strtok(cmdtext,idx);
// sscanf
new command[128], params[128];
sscanf(cmdtext, "s[128]s[128]", command, params);


Но я не уверен, что правильно сделал. По этому прошу Вашей помощи.

Daniel_Cortez
07.06.2016, 18:58
-_-

http://pro-pawn.ru/forumdisplay.php?7

Danny_Marcelo
09.06.2016, 00:41
-_-

http://pro-pawn.ru/forumdisplay.php?7

Не понимаю, зачем сразу психовать? Я же по нормальному спросил. Да и потом, у вас в подписи написано:



Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).


Я Вам в скайпе не стучал, в ЛС тоже, а просто, чтобы не создавать тему новую, напрямую тут спросил. Все равно вы тут расписали всё.

Danny_Marcelo
06.07.2016, 08:34
Мод обновлён до версии 2.4.

SlimX
06.07.2016, 15:36
Уважаемый Daniel_Cortez. Я учёл все ваши замечания и многое изменил в моде. И про sscanf ваш комментарий подтвердился.

Начал использовать в командах sscanf и в итоге допустим взяв команду /msg. Если я в команде /msg использовал больше символов, то она не срабатывала, а вот в консоли выбивало вот именно такое сообщение:



"sscanf warning: String buffer overflow"


Я пробовал увеличивать колличество символов вот тут:



if(sscanf(params, "s[50]", params[0])) return SendClientMessage(playerid, COLOR_LIGHTGREY, "Используйте /msg [текст]");


Но ничего не изменилось. И по этому у меня к вам такой вопрос. Если вас не затруднит, объясните пожалуйста мне, как же все таки мне правильно подключить sscanf к моду? Я сначала гуглил, но в итоге большинство тем находив, видел тоже самое, что у себя в моде. По этому приходится спросить у вас. Заранее благодарю за ответ.

Вот изменил собственно подключение:

Было так:



public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
new tmp[128],idx;
new cmd[128];
new giveplayerid;
cmd = strtok(cmdtext,idx);
// sscanf
new command[32], params[128];
sscanf(cmdtext, "s[32]s[128]", command, params);


А стало вот так:



public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
new tmp[128],idx;
new cmd[128];
new giveplayerid;
cmd = strtok(cmdtext,idx);
// sscanf
new command[128], params[128];
sscanf(cmdtext, "s[128]s[128]", command, params);


Но я не уверен, что правильно сделал. По этому прошу Вашей помощи.

Переполнение массива кол-вом символов.
Максимальная длина строки в чате - 128 символов.

m1n1vv
06.07.2016, 18:23
Я буду краток


case 2:
{
switch(PlayerInfo[playerid][pRang])
{
case 10: atext = "Мэр города";
case 9: atext = "Заместитель мэра";
case 8: atext = "Депутат";
case 7: atext = "Старший лицензёр";
case 6: atext = "Лицензёр";
case 5: atext = "Старший секретарь";
case 4: atext = "Секретарь";
case 3: atext = "Начальник охраны";
case 2: atext = "Охранник";
case 1: atext = "Водитель";
}
}


case 2:
{
static const
atext[][] =
{

{"Водитель"},
{"Охранник"},
{"Начальник охраны"},
{"Секретарь"},
{"Старший секретарь"},
{"Лицензёр"},
{"Старший лицензёр"},
{"Депутат"},
{"Заместитель мэра"},
{"Мэр города"}
};
atext[PlayerInfo[playerid][pRang]-1];
}

Danny_Marcelo
06.07.2016, 19:04
Я буду краток


case 2:
{
switch(PlayerInfo[playerid][pRang])
{
case 10: atext = "Мэр города";
case 9: atext = "Заместитель мэра";
case 8: atext = "Депутат";
case 7: atext = "Старший лицензёр";
case 6: atext = "Лицензёр";
case 5: atext = "Старший секретарь";
case 4: atext = "Секретарь";
case 3: atext = "Начальник охраны";
case 2: atext = "Охранник";
case 1: atext = "Водитель";
}
}


case 2:
{
static const
atext[][]
{

{"Водитель"},
{"Охранник"},
{"Начальник охраны"},
{"Секретарь"};
{"Старший секретарь"},
{"Лицензёр"},
{"Старший лицензёр"},
{"Депутат"},
{"Заместитель мэра"},
{"Мэр города"}
};
atext[PlayerInfo[playerid][pRang]-1];
}

Спасибо, я вас услышал! :)

Иван Бубнов
26.01.2017, 18:34
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[32], params[128];
sscanf(cmdtext, "s[32]s[128]", cmd, params);
if(!strcmp(cmd, "/msg", true))
{
//...
return 1;
}
return 0;
}

vovandolg
27.01.2017, 09:46
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[32], params[128];
sscanf(cmdtext, "s[32]s[128]", cmd, params);
if(!strcmp(cmd, "/msg", true))
{
//...
return 1;
}
return 0;
}

isnull проверки не хватает)