 |
|
 |
|
|
|
Последние Файлы 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 |
| |
|
|
| dionleon | Дата: Четверг, 14.08.2014, 15:26 | Сообщение # 2101 |
|
Новенький
Группа:
Пользователи
Сообщений: 14
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Цитата Geryy (  ) Используя функцию CreateVehicle создать их, на нужных координатах респы.
Как узнавать координаты?
|
| |
|
|
| HakeRbesT | Дата: Четверг, 14.08.2014, 18:14 | Сообщение # 2102 |
|
Новенький
Группа:
Пользователи
Сообщений: 72
Награды: 0
Город: Новокузнецк
Репутация: 2
Замечания: 0%
Статус: 
| Цитата dionleon (  ) Как узнавать координаты? Запускаешь сервер, едешь куда тебе нужно, садишься на скутер и ставишь его так как тебе нужно. Далее, сидя на скутере, пишешь команду /save. Команда /save сохраняет позиции в текстовый документ, под названием savedpositions.txt в директории с GTA.Добавлено (14.08.2014, 18:13) ---------------------------------------------
Цитата Geryy (  ) Если по простому, то в паблике коннекта использовать функцию TogglePlayerSpectating(playerid, true); загнав игрока в режим спектатора, далее после авторизации использовать TogglePlayerSpectating(playerid, false); (если надо добавить выбор скина ForceClassSelection(playerid);) Работает, вот только камера смотрит все время в одно место, SetPlayerCameraPos не помогает. Вот код Код public OnPlayerConnect(playerid){ new query[70], playerName[24]; GetPlayerName(playerid, playerName, 24); format(query, 70, "SELECT * FROM `players` WHERE `name` = '%s'", playerName); mysql_function_query(handle, query, true, "LoadAccount", "i", playerid); TogglePlayerSpectating(playerid, true); SetPlayerCameraPos(playerid, 1500.0, 1500.0, 500.0); SetPlayerCameraLookAt(playerid, 1500.0, 1500.0, 0); return 1; } Добавлено (14.08.2014, 18:13) ---------------------------------------------
Цитата Geryy (  ) Если по простому, то в паблике коннекта использовать функцию TogglePlayerSpectating(playerid, true); загнав игрока в режим спектатора, далее после авторизации использовать TogglePlayerSpectating(playerid, false); (если надо добавить выбор скина ForceClassSelection(playerid);) Работает, вот только камера смотрит все время в одно место, SetPlayerCameraPos не помогает. Вот код Код public OnPlayerConnect(playerid){ new query[70], playerName[24]; GetPlayerName(playerid, playerName, 24); format(query, 70, "SELECT * FROM `players` WHERE `name` = '%s'", playerName); mysql_function_query(handle, query, true, "LoadAccount", "i", playerid); TogglePlayerSpectating(playerid, true); SetPlayerCameraPos(playerid, 1500.0, 1500.0, 500.0); SetPlayerCameraLookAt(playerid, 1500.0, 1500.0, 0); return 1; } Добавлено (14.08.2014, 18:14) ---------------------------------------------
Цитата Geryy (  ) Если по простому, то в паблике коннекта использовать функцию TogglePlayerSpectating(playerid, true); загнав игрока в режим спектатора, далее после авторизации использовать TogglePlayerSpectating(playerid, false); (если надо добавить выбор скина ForceClassSelection(playerid);) Работает, вот только камера смотрит все время в одно место, SetPlayerCameraPos не помогает. Вот код Код public OnPlayerConnect(playerid){ new query[70], playerName[24]; GetPlayerName(playerid, playerName, 24); format(query, 70, "SELECT * FROM `players` WHERE `name` = '%s'", playerName); mysql_function_query(handle, query, true, "LoadAccount", "i", playerid); TogglePlayerSpectating(playerid, true); SetPlayerCameraPos(playerid, 1500.0, 1500.0, 500.0); SetPlayerCameraLookAt(playerid, 1500.0, 1500.0, 0); return 1; }
|
| |
|
|
| dionleon | Дата: Четверг, 14.08.2014, 21:35 | Сообщение # 2103 |
|
Новенький
Группа:
Пользователи
Сообщений: 14
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| HakeRbesT,спасибо.А не подскажешь.пикап работает в скрипте,но не выдается скин! [cut noguest]#include <a_samp>
new picvoen; new bool:PlayerStartJob[MAX_PLAYERS]; new bool:PlayerOnJob[MAX_PLAYERS]; new PlayerSavedSkin[MAX_PLAYERS];
#define DIALOG_STARTJOB 2016 #define DIALOG_ENDJOB 2015
public OnFilterScriptInit() { picvoen = CreatePickup(1275, 23, 1166.9851,1347.6180,10.9219, 0); }
public OnPlayerConnect(playerid) { PlayerOnJob[playerid] = false; PlayerStartJob[playerid] = false; return 1; }
public OnPlayerDeath(playerid, killerid, reason) { PlayerOnJob[playerid] = false; PlayerStartJob[playerid] = false; return 1; }
public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == picvoen) { if(!PlayerOnJob[playerid]) { ShowPlayerDialog(playerid, DIALOG_STARTJOB, DIALOG_STYLE_MSGBOX, "{FFFFFF}Раздевалка", "{FFFFFF}Вы хотите раздеться?", "Да", "Нет"); } else { ShowPlayerDialog(playerid, DIALOG_ENDJOB, DIALOG_STYLE_MSGBOX, "{FFFFFF}Раздевалка", "{FFFFFF}Вы хотите одеться?", "Да", "Нет"); } } return 1; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_STARTJOB && response) { PlayerStartJob[playerid] = false; PlayerOnJob[playerid] = true; PlayerSavedSkin[playerid] = GetPlayerSkin(playerid); SetPlayerSkin(playerid, 252); SendClientMessage(playerid, -1, "Вы разделись, подойдите к Доктору."); return 1; } if(dialogid == DIALOG_ENDJOB && response) { new string[128]; PlayerStartJob[playerid] = false; PlayerOnJob[playerid] = false; SetPlayerSkin(playerid, PlayerSavedSkin[playerid]); format(string, sizeof(string), "Вы оделись, вы свободны."); SendClientMessage(playerid, -1, string); return 1; } return 0; }
[/cut]
Сообщение отредактировал Weddew - Четверг, 14.08.2014, 21:53 |
| |
|
|
| Geryy | Дата: Пятница, 15.08.2014, 11:16 | Сообщение # 2104 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата HakeRbesT (  ) Работает, вот только камера смотрит все время в одно место, SetPlayerCameraPos не помогает. Думаю что на этапе выполнения OnPlayerConnect, изменить позицию камеры не получится.
Цитата dionleon (  ) пикап работает в скрипте,но не выдается скин! впиши этот скрипт в свой мод
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| Weddew | Дата: Суббота, 16.08.2014, 00:43 | Сообщение # 2105 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| dionleon, диалог то показывается? Добавлено (16.08.2014, 00:43) ---------------------------------------------
Цитата HakeRbesT (  ) SetPlayerCameraPos(playerid, 1500.0, 1500.0, 500.0); SetPlayerCameraLookAt(playerid, 1500.0, 1500.0, 0);
Перемести это в начало OnPlayerRequestClass
www.weddew-shop.ru
|
| |
|
|
| Max | Дата: Суббота, 16.08.2014, 11:33 | Сообщение # 2106 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 172
Награды: 0
Город: Казань
Репутация: 59
Замечания: 0%
Статус: 
| Посоветуйте и подскажите как можно сделать чтобы можно было отправлять E-mail сообщения с сервера, для восстановления пароля например. Использовал плагин от Roman1us, он оказался не очень хорошим он не работает с E-mail адресами где есть числа, заранее спасибо.
|
| |
|
|
| Dima-kun | Дата: Суббота, 16.08.2014, 19:50 | Сообщение # 2107 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| Steep_Nk, используй функцию http://wiki.sa-mp.com/wiki/HTTP а все остальное пусть обрабатывается на стороне сайта.
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
|
| |
|
|
| dionleon | Дата: Понедельник, 18.08.2014, 21:19 | Сообщение # 2108 |
|
Новенький
Группа:
Пользователи
Сообщений: 14
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Ребят.Название мода сменилось на Blank Script.В исходнике мода изменяю,однако толку 0.Да и там было другое название,мое,не Blank Script(в моде).Как изменить?
|
| |
|
|
| Geryy | Дата: Вторник, 19.08.2014, 02:30 | Сообщение # 2109 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата dionleon (  ) Ребят.Название мода сменилось на Blank Script.В исходнике мода изменяю,однако толку 0.Да и там было другое название,мое,не Blank Script(в моде).Как изменить? Функция SetGameModeText (название) должна быть прописана в OnGameModeInit.
- Возможен вариант что ты используешь какой-нить плагин не той версии или для его работы не хватает dll файлов в системе. - Также если подключал какие-либо Filterscript, то там может использоваться функция SetGameModeText("Blank Script");
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| dionleon | Дата: Вторник, 19.08.2014, 13:44 | Сообщение # 2110 |
|
Новенький
Группа:
Пользователи
Сообщений: 14
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Цитата Geryy (  ) - Также если подключал какие-либо Filterscript, то там может использоваться функция SetGameModeText("Blank Script"); Ой спасибо выручил!)
|
| |
|
|
| Max | Дата: Вторник, 19.08.2014, 21:23 | Сообщение # 2111 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 172
Награды: 0
Город: Казань
Репутация: 59
Замечания: 0%
Статус: 
| Dima-kun, как именно с помощью неё все это реализовать?
|
| |
|
|
| Dima-kun | Дата: Вторник, 19.08.2014, 22:02 | Сообщение # 2112 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| Цитата Steep_Nk (  ) Dima-kun, как именно с помощью неё все это реализовать? [off]лучше бы ты цитировал мои посты. не могу же я все помнить все кому что писал.[/off] отправь к сайту запрос. а поэтому запросу пусть сайт проработает скрипт и отправит как куда надо. в поле data оставь вроде "login={player}&action=remember" или чтото вроде этого
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
|
| |
|
|
| rated | Дата: Понедельник, 25.08.2014, 18:29 | Сообщение # 2113 |
|
Новенький
Группа:
Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Здравствуйте у меня когда я создаю сервер и делаю мод на хостиншге samp-host почему-то выдает отшибку unknownresponse что мне делать? На моём сервере на хостинге myarena когда я делаю мод у меня крашиться сервер от чего это? можете мне опомочь пожалуйста
|
| |
|
|
| Artem_T | Дата: Понедельник, 25.08.2014, 18:32 | Сообщение # 2114 |
|
Освоившийся
Группа:
I'm V.I.P.
Сообщений: 132
Награды: 26
Город: Полтава
Репутация: 59
Замечания: 40%
Статус: 
| Всем привет, что за ошибка в логе? Код [18:17:29] [debug] Run time error 4: "Array index out of bounds" [18:17:29] [debug] Accessing element at index 65535 past array upper bound 99 [18:17:29] [debug] AMX backtrace: [18:17:29] [debug] #0 00025f8c in public OnPlayerDeath (0x00000004, 0x0000ffff, 0x000000ff) from godfather.amx
В паблик OnPlayerDeath ничего не изменял, а появилась ошибка недавно, как исправить?
|
| |
|
|
| Geryy | Дата: Вторник, 26.08.2014, 03:33 | Сообщение # 2115 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата Artem_T (  ) Всем привет, что за ошибка в логе? Индекс выходит за пределы массива. Граница 99, а обращение идет к 65535. Какой именно массив выходит за пределы, в логе не указано.
Если он в OnPlayerDeath, то возможно где-то ему присваевается индекс от INVALID_PLAYER_ID (65535)
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Сообщение отредактировал Geryy - Вторник, 26.08.2014, 03:34 |
| |
|
|
|
 |
|
 | |
| |
|