 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Вопросы и ответы по GTA SAMP [от 19.03.2013]
| |
| Weddew | Дата: Вторник, 19.03.2013, 15:11 | Сообщение # 1 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| В этой теме вы сможете получить ответы, на многие ваши вопросы по PAWN.
Новичкам:
- Внятно объясняйте Вашу проблему, если Вы получили ошибку, обязательно выкладывайте строки, на которые "ругается" компилятор.
- Задавайте вопросы исключительно по коду, а не по системам, которые имеются у Вас в моде.
- Помощь идет только по желанию пользователя, если человек помог Вам только частично, не нужно начинать поливать его грязью.
- Возможно тип Вашей проблемы уже обсуждался на форуме, воспользуйтесь поиском.
- В этой теме пользователи лишь оказывают помощь в написании кода, а не пишут его за Вас.
- Если Вы хотите отблагодарить пользователя, жмите на кнопку
. (Только для продвинутых, и выше) - Если Вы уже задавали вопрос и не получили на него ответа, то лучше написать в ЛС одному из участников группы
, чем засорять тему. - Если Вы сами решили свою проблему, то напишите, как Вы ее решили.
- Если Вас просят выложить код функций, то используйте для этого сервис pastebin.com
Скриптерам: - Не оскорблять новичков.
- Не засорять тему сообщениями, подобные этому: "Закрой PAWNO и иди делай уроки".
- Не посылать в поиск. Пользователь итак уже пришёл сюда из поиска. Если решение проблемы уже было опубликовано, то указать в какой теме
- Как можно понятней объяснять решение той, или иной проблемы, по возможности приводить примеры.
Инструкции: - [cut noguest=Краткая инструкция для вшивания FS в мод]
1) Все из callback OnFilterScriptInit вставляем в конец callback OnGameModeInit перед словом return. 2) Все из callback OnFilterScriptExit вставляем в конец callback OnGameModeExit перед словом return. 3) Все объявления переменных (new ...) и констант (const ...; #define ... ...) в начало мода. 4) Все прототипы (forward ...(...) ) ко всем прототипам. 5) Все описания нестандартных функций (public ...(...); stock ...(...); ...(...){...} ), которых нет в моде, вставляем в конец мода.
P.S. Данный мануал не гарантирует, что после копирования все будет работать, так как еще потребуется подгонять одни системы под другие. P.P.S Если в одном из callback`ов Вы не обнаружили кода, то переходите к следующему пункту инструкции. [/cut] - [cut noguest=Защита от ботов]
В OnPlayerConnect [pwn]if(GetPlayersSameIp(playerid) > 3) Kick(playerid);[/pwn] В конец мода [pwn]stock GetPlayersSameIp(playerid) {//by Weddew //Возвращает количество подключенных игроков с таким же IP как у playerid new count = 0, p_ip[16], i_ip[16]; GetPlayerIp(playerid, p_ip, sizeof(p_ip)); for(new i = 0; i < MAX_PLAYERS; i++) { GetPlayerIp(playerid, i_ip, sizeof(i_ip)); if(i != playerid) { if(!strcmp(p_ip, i_ip, false)) count++; } } return count; }[/pwn] [/cut] - [cut noguest=Проверка на Role Play ник]
В конец мода: [pwn] stock IsARPNickname(playerid) { //by Weddew new p_n[MAX_PLAYER_NAME], dcount = 0; GetPlayerName(playerid, p_n, sizeof(p_n)) for(i = 0; i < strlen(p_n); i++) { if(p_n[i] == '_') dcount++; } if(dcount != 1 || p_n[0] == '_' || p_n[strlen(p_n)-1] == '_') return false; return true; }[/pwn]
В OnPlayerConnect
[pwn] if(!IsARPNickname(playerid)) Kick(playerid);[/pwn]
P.S.: Не пропустит: _Nick_Name_, _Nick_Name, NickName_ Пропустит: Nick_Name, NICK_NAME, NiCk_name, nick_name[/cut]
www.weddew-shop.ru
Сообщение отредактировал Weddew - Среда, 23.10.2013, 21:45 |
| |
|
|
| Anthony | Дата: Четверг, 04.04.2013, 19:21 | Сообщение # 226 |
|
Уверенный в себе
Группа:
Publishers
Сообщений: 211
Награды: 4
Замечания: 0%
Статус: 
| Добрый Вечер Ув.пользователи. Я тут нашел интересный FS активация ПВО ну вот мне интересно чтобы сделать так что: ПВО работало не по одному id а по всем игрока. Достаточно ли поменять что то в команде? Код if (strcmp(cmd, "/canenter", true)==0 && IsPlayerAdmin(playerid)) { new tmp[256]; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "Benutze: /canenter [Playerid]"); return 1; } new pid = strval(tmp); CanEnterArea[pid]=1; format(string,sizeof(string),"%s %s",PlayerName(playerid),TextPlayerCanEnterForPlayer); SendClientMessage(pid,COLOR_GREEN,string); format(string,sizeof(string),"%s %s",PlayerName(pid),TextPlayerCanEnterForAdmin); SendClientMessage(pid,COLOR_GREEN,string); return 1; }
|
| |
|
|
| [[[WampiR]]] | Дата: Четверг, 04.04.2013, 20:11 | Сообщение # 227 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Weddew, Вот в том то все и дело что я ставлю туда а она не срабатывает. А в (/ad) к примеру. Нормально работает а в чате нет.
|
| |
|
|
| Weddew | Дата: Четверг, 04.04.2013, 21:59 | Сообщение # 228 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) Weddew, Вот в том то все и дело что я ставлю туда а она не срабатывает. А в (/ad) к примеру. Нормально работает а в чате нет. Для того, чтобы заработало и в чате, замените gMessage на text
www.weddew-shop.ru
|
| |
|
|
| [[[WampiR]]] | Дата: Пятница, 05.04.2013, 12:50 | Сообщение # 229 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Подскажите. Я хочу изменить систему НонРП ников. Мне нужно чтобы кикало всех игроков кроме вип с 3 уровнем. Вот код который стоит в public OnPlayerConnect [pwn]new plname[MAX_PLAYER_NAME]; if(!IsRPNick(playerid)) { GetPlayerName(playerid, plname, sizeof(plname)); Kick(playerid); return 1; }[/pwn] А вот и сам public: [pwn]IsRPNick(playerid) { new plname[MAX_PLAYER_NAME]; GetPlayerName(playerid, plname, MAX_PLAYER_NAME); for(new i=0;i<strlen(plname);i++){ if( !((plname[i]>='a'&&plname[i]<='z') || (plname[i]>='A'&&plname[i]<='Z') || plname[i]=='_') ){ return 0; // íåäîïóñòèìûå ñèìâîëû â íèêå } } new d = strfind(plname, "_"); if( d==-1 ) return 0; if(strfind(plname, "_", false, d+1) != -1) return 0; new name[10]; strmid(name, plname, 0, d, sizeof name); new surname[10]; strmid(surname, plname, d+1, strlen(plname), sizeof surname); if(strlen(name)<3 || strlen(name)>9) return 0; if(strlen(surname)<3 || strlen(surname)>9) return 0; if(!(name[0]>='A' && name[0]<='Z')) return 0; if(!(surname[0]>='A' && surname[0]<='Z')) return 0; for(new i=1;i<strlen(name);i++){ if(!(name[i]>='a'&&name[i]<='z')) return 0; } for(new i=1;i<strlen(surname);i++){ if(!(surname[i]>='a'&&surname[i]<='z')) return 0; } return 1; }[/pwn] Я пытался поставить проверку в OnPlayerConnect: if(PlayerInfo[playerid][pDonateRank] >= 0) Но оно все равно не срабатывало.
|
| |
|
|
| Saibot | Дата: Пятница, 05.04.2013, 14:42 | Сообщение # 230 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус: 
| Какая разница между Mysql и Streamer?
|
| |
|
|
| Weddew | Дата: Пятница, 05.04.2013, 16:21 | Сообщение # 231 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Saibot) Какая разница между Mysql и Streamer? MySQL - это плагин для SA:MP, позволяющий работать с СУБД MySQL, основной задачей которого, является работа с данными. Streamer - это плагин для SA:MP, подгружающий динамически следующие объекты: пикапы, чекпоинты, объекты игрового мира.Добавлено (05.04.2013, 16:21) ---------------------------------------------
Цитата (|||WampiR|||) Я пытался поставить проверку в OnPlayerConnect: if(PlayerInfo[playerid][pDonateRank] >= 0) Но оно все равно не срабатывало. Естественно, необходимо считать файл-аккаунт игрока и затем уже, на основе данных, проверять наличия VIP привилегии у игрока.
www.weddew-shop.ru
|
| |
|
|
| [[[WampiR]]] | Дата: Пятница, 05.04.2013, 16:48 | Сообщение # 232 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Weddew, Не подскажите как мне это все сделать?
|
| |
|
|
| Weddew | Дата: Пятница, 05.04.2013, 16:59 | Сообщение # 233 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) Weddew, Не подскажите как мне это все сделать? Перенесите проверку на ник в OnPlayerRequestClass. Насколько я думаю, то подгрузка файл-аккаунта происходит именно в этом callback`e
www.weddew-shop.ru
|
| |
|
|
| Anthony | Дата: Пятница, 05.04.2013, 17:37 | Сообщение # 234 |
|
Уверенный в себе
Группа:
Publishers
Сообщений: 211
Награды: 4
Замечания: 0%
Статус: 
| Добрый День у меня тут токие проблемы прошу помочь решить. D:\SERVER_RP\My Server\*** RP - копия\gamemodes\***.pwn(50782) : warning 208: function with tag result used before definition, forcing reparse D:\SERVER_RP\My Server\*** RP - копия\gamemodes\***.pwn(23989) : error 017: undefined symbol "SetStaticPickup" D:\SERVER_RP\My Server\*** RP - копия\gamemodes\***.pwn(50192) : error 001: expected token: ")", but found "-identifier-" D:\SERVER_RP\My Server\*** RP - копия\gamemodes\***.pwn(50192) : warning 215: expression has no effect D:\SERVER_RP\My Server\*** RP - копия\gamemodes\***.pwn(50192) : error 001: expected token: ";", but found "]" D:\SERVER_RP\My Server\*** RP - копия\gamemodes\***.pwn(50192) : error 029: invalid expression, assumed zero D:\SERVER_RP\My Server\*** RP - копия\gamemodes\***.pwn(50192) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
5 Errors.
Вот строки: 50782 stock Float:GetAngleToPoint(Float:x1, Float:y1, Float:x2, Float:y2) 23989 SetStaticPickup(1254, 23,ARRAY_TURRET[i][tEnterX] , ARRAY_TURRET[i][tEnterY], ARRAY_TURRET[i][tEnterZ], 0); 50192 if((ARRAY_POS_PLAYER[0] > ARRAY_POS[0] && ARRAY_POS_PLAYER[0] < ARRAY_POS[3]) && (ARRAY_POS_PLAYER[1] > ARRAY_POS[4] && ARRAY_POS_PLAYER[1] ARRAY_POS[2] && ARRAY_POS_PLAYER[2] < ARRAY_POS[1])) {Добавлено (05.04.2013, 17:37) ---------------------------------------------
Цитата (Vsevolod) 50192 if((ARRAY_POS_PLAYER[0] > ARRAY_POS[0] && ARRAY_POS_PLAYER[0] < ARRAY_POS[3]) && (ARRAY_POS_PLAYER[1] > ARRAY_POS[4] && ARRAY_POS_PLAYER[1] ARRAY_POS[2] && ARRAY_POS_PLAYER[2] < ARRAY_POS[1])) P.S Это всё одна строка.
|
| |
|
|
| [[[WampiR]]] | Дата: Пятница, 05.04.2013, 17:42 | Сообщение # 235 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Weddew, Такого у меня в моде вообще нету и близко. "OnPlayerRequestClass"
|
| |
|
|
| Weddew | Дата: Пятница, 05.04.2013, 18:52 | Сообщение # 236 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Vsevolod) SetStaticPickup Нет такой функции, есть функция AddStaticPickup. [pwn]if((ARRAY_POS_PLAYER[0] > ARRAY_POS[0] && ARRAY_POS_PLAYER[0] < ARRAY_POS[3]) && (ARRAY_POS_PLAYER[1] > ARRAY_POS[4] && ARRAY_POS_PLAYER[1] < ARRAY_POS[2] && ARRAY_POS_PLAYER[2] < ARRAY_POS[1]))[/pwn] Замените Цитата (Vsevolod) stock Float:GetAngleToPoint(Float:x1, Float:y1, Float:x2, Float:y2) на [pwn]stock GetAngleToPoint(Float:x1, Float:y1, Float:x2, Float:y2)[/pwn]
www.weddew-shop.ru
Сообщение отредактировал Weddew - Пятница, 05.04.2013, 18:52 |
| |
|
|
| Saibot | Дата: Пятница, 05.04.2013, 18:54 | Сообщение # 237 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус: 
| Цитата (Weddew) MySQL - это плагин для SA:MP, позволяющий работать с СУБД MySQL, основной задачей которого, является работа с данными. Streamer - это плагин для SA:MP, подгружающий динамически следующие объекты: пикапы, чекпоинты, объекты игрового мира. Спс!!!
|
| |
|
|
| Weddew | Дата: Пятница, 05.04.2013, 18:55 | Сообщение # 238 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) Weddew, Такого у меня в моде вообще нету и близко. "OnPlayerRequestClass" В общем, алгоритм следующий: загружаете файл, считываете из ключа DonateRank значение и записываете в переменную. Далее необходимо проверять значение этой переменной и если значение не соответствует требуемому значению, то отсоединять игрока.
www.weddew-shop.ru
|
| |
|
|
| Anthony | Дата: Пятница, 05.04.2013, 19:04 | Сообщение # 239 |
|
Уверенный в себе
Группа:
Publishers
Сообщений: 211
Награды: 4
Замечания: 0%
Статус: 
| Спасибо тебе огромное!
Добавлено (05.04.2013, 19:04) --------------------------------------------- [off]Weddew слушай ты не знаешь вот это вообще работает или нет ? А то я пробую добавить еще больше ошибок
[cut noguest=Ссылка на сторонний ресурс]http://sa-mp.by/index.php?/topic/4446-stinger-fim-92-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%BF%D0%B2%D0%BE/[/cut][/off]
Сообщение отредактировал Weddew - Пятница, 05.04.2013, 22:08 |
| |
|
|
| Weddew | Дата: Пятница, 05.04.2013, 22:10 | Сообщение # 240 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Vsevolod) Weddew слушай ты не знаешь вот это вообще работает или нет ? А то я пробую добавить еще больше ошибок Лучше попробовать сделать в виде ФС, в принципе должно работать.
www.weddew-shop.ru
|
| |
|
|
|
 |
|
 | |
| |
|