 |
|
 |
|
|
|
Последние Файлы 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 |
| |
|
|
| [[[WampiR]]] | Дата: Среда, 17.04.2013, 18:46 | Сообщение # 406 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Помогите сделать этот код. Чтобы буквы были маленькие все а не большие: [pwn]format(string,sizeof(string),"~B~Vehicle:~n~~w~%s~n~~B~Speed: %s~n~~B~Fuel: ~W~%.1f~n~~B~Health: ~W~%.1f~n~~b~Status: %s" ,VehiclesName[GetVehicleModel(GetPlayerVehicleID(i))-400], Sspeed, Gas[vehicleid], health/10, locked);[/pwn] Добавлено (17.04.2013, 18:46) --------------------------------------------- Подскажите пожалуйста как сделать чтобы после того как я напишу вот эту команду: [pwn] if(strcmp(cmdtext, "/mptp", true) == 0) { if (PlayerInfo[playerid][pAdmin] >= 2) { new i; mponnn[playerid] = 0; GetPlayerPos(playerid, MpTp[i][0],MpTp[i][1],MpTp[i][2]); SetPlayerPos(playerid, MpTp[playerid][0],MpTp[playerid][1],MpTp[playerid][2]); TogglePlayerControllable(playerid, true); } printf("Использвалась команда %s",cmd); return 1; }[/pwn] Ко мне телепортировались только те игроки у которых mponnn[playerid] = 2; и при этом после этой комманды уже всем игрокам давалось mponnn[playerid] = 0;
|
| |
|
|
| an21 | Дата: Среда, 17.04.2013, 20:17 | Сообщение # 407 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 150
Награды: 1
Город: localhost
Репутация: 233
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) Ко мне телепортировались только те игроки у которых mponnn[playerid] = 2; и при этом после этой комманды уже всем игрокам давалось mponnn[playerid] = 0; цикл по всем игрокам - проверка, что mponnn равно 2 - выполнение действий с игроком (телепортация) - присваивание mponnn нулю
silver break project developer
|
| |
|
|
| Cruiser | Дата: Четверг, 18.04.2013, 01:58 | Сообщение # 408 |
|
Новенький
Группа:
Пользователи
Сообщений: 25
Награды: 0
Город: Армавир
Репутация: 0
Замечания: 0%
Статус: 
| Здравствуйте, подскажите что я делаю не так, у меня вот в этом коде не получается вывести значения, MySQL R7, при выводе Mail оно равно NULL, а пароль вообще пусто [pwn]format(string, sizeof(string), "SELECT * FROM `Accounts` WHERE `Name` = '%s'", Name(playerid)); mysql_function_query(connectionHandle, string, false, "","");
new maximum[128], starmail[256]; cache_get_field_content(0, "Email", starmail); format(string, sizeof(string), "Mail: %s", starmail); SendClientMessage(playerid, COLOR_YELLOW, string);
cache_get_field_content(0, "Key", maximum), PlayerInfo[playerid][pKey] = strval(maximum); format(string, sizeof(string), "Пароль: %s", PlayerInfo[playerid][pKey]); SendClientMessage(playerid, COLOR_YELLOW, string);[/pwn]
|
| |
|
|
| Geryy | Дата: Четверг, 18.04.2013, 02:37 | Сообщение # 409 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| [[[WampiR]]],
Цитата format(string,sizeof(string),"~B~Vehicle:~n~~w~%s~n~~B~Speed: %s~n~~B~Fuel: ~W~%.1f~n~~B~Health: ~W~%.1f~n~~b~Status: %s" ,VehiclesName[GetVehicleModel(GetPlayerVehicleID(i))-400], Sspeed, Gas[vehicleid], health/10, locked);
Если ты показываешь строку как текстдрав, то там вроде нет строчных и заглавных. Выводится в стандартных.
Цитата Подскажите пожалуйста как сделать чтобы после того как я напишу вот эту команду: C координатами разберись, а то путаница кого куда тп. Код if(strcmp(cmdtext, "/mptp", true) == 0) { if (PlayerInfo[playerid][pAdmin] >= 2) { for(new i; i < MAX_PLAYERS; i++) { if(mponnn[i] == 2) { GetPlayerPos(playerid, MpTp[i][0],MpTp[i][1],MpTp[i][2]); --< SetPlayerPos(i, MpTp[playerid][0],MpTp[playerid][1],MpTp[playerid][2]); --< TogglePlayerControllable(i, true); mponnn[i] = 0; } } } printf("Использвалась команда %s",cmd); return 1; }
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| Weddew | Дата: Четверг, 18.04.2013, 10:40 | Сообщение # 410 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) Помогите сделать этот код. Чтобы буквы были маленькие все а не большие: http://wiki.sa-mp.com/wiki/TextDrawFontДобавлено (18.04.2013, 10:40) --------------------------------------------- Cruiser, естественно Вы ничего не выведите, так как Вы не кэшируете полученные данные и не выводите результат запроса в поток. Там где нужно: [pwn]format(string, sizeof(string), "SELECT * FROM `Accounts` WHERE `Name` = '%s'", Name(playerid)); mysql_function_query(connectionHandle, string, true, "LoadAccount","d", playerid); [/pwn]
Ко всем public функциям: [pwn]forward LoadAccount(playerid); public LoadAccount(playerid) { new rows, fields; cache_get_data(rows, fields); if(rows != 0) { new maximum[128], starmail[256]; cache_get_field_content(0, "Email", starmail); format(string, sizeof(string), "Mail: %s", starmail); SendClientMessage(playerid, COLOR_YELLOW, string);
cache_get_field_content(0, "Key", maximum), PlayerInfo[playerid][pKey] = strval(maximum); format(string, sizeof(string), "Пароль: %s", PlayerInfo[playerid][pKey]); SendClientMessage(playerid, COLOR_YELLOW, string); } }[/pwn]
www.weddew-shop.ru
|
| |
|
|
| Nikita01041997 | Дата: Четверг, 18.04.2013, 14:14 | Сообщение # 411 |
|
Новенький
Группа:
Пользователи
Сообщений: 74
Награды: 0
Город: Алейск
Репутация: -37
Замечания: 0%
Статус: 
| помогите пожалуйста,я уже незнаю что делать с пикапом, подробно смотрите на 27 странице
люблю этот сайт
|
| |
|
|
| Geryy | Дата: Четверг, 18.04.2013, 14:59 | Сообщение # 412 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Nikita01041997, Пробовал использовать что писали я или Weddew?
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| [[[WampiR]]] | Дата: Четверг, 18.04.2013, 16:18 | Сообщение # 413 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Подскажите есть такая проверка которая показывает является ли игрок владельцем авто?
|
| |
|
|
| Anthony | Дата: Четверг, 18.04.2013, 17:12 | Сообщение # 414 |
|
Уверенный в себе
Группа:
Publishers
Сообщений: 211
Награды: 4
Замечания: 0%
Статус: 
| Добрый Вечер Ув.поьзователи. У меня такая проблема. В общем я делаю команду по команде должно произойти:Создаёться объект =>Потом он премещаеться=> И должен удалиться только когда достигнет точки(Удалить не выходит). Пытался делать таймер SetTimer но не считывает мой объект,проверку тоже что то не допетрил как сделать. Подскажите как можно удалить его когда он достигнет точки. Вот пример кода.
Код new Float:X,Float:Y,Float:Z; GetPlayerPos(playerid, X,Y,Z); new object1 = CreateObject(18253, X-2, Y+36, Z+10, 0, 0, 0); new Float:X1,Float:Y1,Float:Z1; GetPlayerPos(playerid, X1,Y1,Z1); MoveObject(object1, X1+1, Y1-2.1, Z1,1.0);
|
| |
|
|
| Nikita01041997 | Дата: Четверг, 18.04.2013, 17:53 | Сообщение # 415 |
|
Новенький
Группа:
Пользователи
Сообщений: 74
Награды: 0
Город: Алейск
Репутация: -37
Замечания: 0%
Статус: 
| Geryy, да не помогла! Кто знает помогите.
люблю этот сайт
|
| |
|
|
| [[[WampiR]]] | Дата: Четверг, 18.04.2013, 18:04 | Сообщение # 416 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Я сделал чтобы выкидывало из машины если ранг маленький а как проверку на ключи сделать незнаю. Ну точнее знаю CarKey или CarKey2 ну если 0 поставить то это же не так будет как надо. Нужно чтобы если игрок дал ключ то его не выкидывало. Вот короче мой код с рангами: [cut noguest=код][pwn] if(IsPlayerInVehicle(playerid, 417)) { if(PlayerInfo[playerid][pRank] > 9) { } else { SendClientMessage(playerid,COLOR_LIGHTRED,"Вы должны быть 10 рангом!"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } }[/pwn][/cut] Может быть там что нибудь типо такогоже.
|
| |
|
|
| Anthony | Дата: Четверг, 18.04.2013, 18:13 | Сообщение # 417 |
|
Уверенный в себе
Группа:
Publishers
Сообщений: 211
Награды: 4
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) [[[WampiR]]]
Попробуй сделать проверку на ключи. Примерно такую. if(PlayerInfo[playerid][CarKey]
|
| |
|
|
| Weddew | Дата: Четверг, 18.04.2013, 18:29 | Сообщение # 418 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Geryy, думаю даже и не пытался пробовать, ждет что кто-нибудь сделает за него.
www.weddew-shop.ru
|
| |
|
|
| [[[WampiR]]] | Дата: Четверг, 18.04.2013, 18:30 | Сообщение # 419 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Ну если такую проверку ставить то как она определит что у игрока нету ключа именно от этой тачки? Добавлено (18.04.2013, 18:30) --------------------------------------------- PlayerInfo[playerid][CarKey]
|
| |
|
|
| Weddew | Дата: Четверг, 18.04.2013, 18:32 | Сообщение # 420 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Vsevolod) И должен удалиться только когда достигнет точки(Удалить не выходит). Удаление по окончанию движения нужно делать в callback`e OnObjectMoved. Пример: [pwn]public OnObjectMoved(objectid) { if(objectid == object1) { DestroyObject(object1); } return true; }[/pwn]Добавлено (18.04.2013, 18:32) ---------------------------------------------
Цитата (|||WampiR|||) PlayerInfo[playerid][CarKey] [pwn]if(PlayerInfo[playerid][CarKey] != vehicleid)[/pwn]
www.weddew-shop.ru
|
| |
|
|
|
 |
|
 | |
| |
|