 |
|
 |
|
|
|
Последние Файлы 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]]] | Дата: Воскресенье, 07.04.2013, 09:01 | Сообщение # 256 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Подскажите как мне сделать чтобы при входе на сервер игрокам давался разный цвет. Только простым игрокам которые не состоят во фракциях. Добавлено (07.04.2013, 09:01) --------------------------------------------- В данный момент у меня так: [pwn]public SetPlayerToTeamColor(playerid) { if(IsPlayerConnected(playerid)) { SetPlayerColor(playerid,COLOR_WHITE); } if(PlayerInfo[playerid][pMember] == 15 || PlayerInfo[playerid][pLeader] == 15) { SetPlayerColor(playerid,0x00FDFDAA); } if(PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pLeader] == 16) { SetPlayerColor(playerid,0xDE17E4AA); } if(PlayerInfo[playerid][pMember] == 18 || PlayerInfo[playerid][pLeader] == 18) { SetPlayerColor(playerid,0xB8860BAA); } if(PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14) { SetPlayerColor(playerid,0x36D352AA); } if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7) { SetPlayerColor(playerid,0xFFFFFFAA); } if(PlayerInfo[playerid][pMember] == 19 || PlayerInfo[playerid][pLeader] == 19) { SetPlayerColor(playerid,0x478F85AA); } if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5) { SetPlayerColor(playerid,0xFF8040AA); } if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20) { SetPlayerColor(playerid,0x808080AA); } if(PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pLeader] == 13) { SetPlayerColor(playerid,0x000000AA); } if(PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21) { SetPlayerColor(playerid,0x4592DEAA); } if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3) { SetPlayerColor(playerid,0x008000AA); } if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6) { SetPlayerColor(playerid,0xFFFF00AA); } if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1) { SetPlayerColor(playerid,0x060676AA); } if(PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12) { SetPlayerColor(playerid,0xFEFFA9AA); } if(PlayerInfo[playerid][pMember] == 11 || PlayerInfo[playerid][pLeader] == 11) { SetPlayerColor(playerid,0x55CBF3AA); } if(PlayerInfo[playerid][pMember] == 17 || PlayerInfo[playerid][pLeader] == 17) { SetPlayerColor(playerid,0x86B7B3AA); } if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2) { SetPlayerColor(playerid,0x440592AA); } if(PlayerInfo[playerid][pMember] == 9 || PlayerInfo[playerid][pLeader] == 9) { SetPlayerColor(playerid,0xC37859AA); } if(PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pLeader] == 10) { SetPlayerColor(playerid,0x680000AA); } }[/pwn]
|
| |
|
|
| Nikita01041997 | Дата: Воскресенье, 07.04.2013, 09:02 | Сообщение # 257 |
|
Новенький
Группа:
Пользователи
Сообщений: 74
Награды: 0
Город: Алейск
Репутация: -37
Замечания: 0%
Статус: 
| Borog, переделать из показателя здоровья авто а датчик бензина!!!
люблю этот сайт
|
| |
|
|
| MyatKO | Дата: Воскресенье, 07.04.2013, 12:04 | Сообщение # 258 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 156
Награды: 2
Город: Казань
Репутация: 121
Замечания: 0%
Статус: 
| Подскажите, пожалуйста, как в диалоговом окне типа LIST выводить введенный мною текст непосредственно в столбик? Думаю, что не очень понятно изъяснился, поэтому пример. Когда-то давно, случайно, увидел подобный фрагмент кода: Код new str[32], string[32]; format(str, sizeof(str), "1\n2\n3"); format(string, sizeof(string), "%s\n ", str); ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "test", string, "ok", "ok"); И в результате он каким-то образом мог выводить: Не подскажете, как это реализовать? И правильно ли написан вышеприведенный код?
|
| |
|
|
| Nikita01041997 | Дата: Воскресенье, 07.04.2013, 13:08 | Сообщение # 259 |
|
Новенький
Группа:
Пользователи
Сообщений: 74
Награды: 0
Город: Алейск
Репутация: -37
Замечания: 0%
Статус: 
| как преобразовать код[pwn]#include <a_samp> #include <progress> new Bar:vhealth[MAX_PLAYERS] = {INVALID_BAR_ID, ...}; forward ProgressBar(); public OnFilterScriptInit() { SetTimer("ProgressBar", 500, 1); return 1; } public ProgressBar() //I prefer not to use OnPlayerUpdate with textdraws { for(new playerid; playerid < MAX_PLAYERS; playerid++) //I recommend foreach(Player, playerid) { new vehicleid; if((vehicleid = GetPlayerVehicleID(playerid)) && vhealth[playerid] != INVALID_BAR_ID) { new Float:health; GetVehicleHealth(vehicleid, health); SetProgressBarValue(vhealth[playerid], health); UpdateProgressBar(vhealth[playerid], playerid); } } } public OnPlayerStateChange(playerid, newstate, oldstate) { if(oldstate == PLAYER_STATE_DRIVER) { DestroyProgressBar(vhealth[playerid]); vhealth[playerid] = INVALID_BAR_ID; } if(newstate == PLAYER_STATE_DRIVER) { vhealth[playerid] = CreateProgressBar(548.5, 36.0, _, _, 0x00FF00FF, 1000.0); ShowProgressBarForPlayer(playerid, vhealth[playerid]); } return 1; }[/pwn] в бензобак машины? Помогите пожалуйста!
люблю этот сайт
|
| |
|
|
| Geryy | Дата: Воскресенье, 07.04.2013, 15:08 | Сообщение # 260 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата (MyatKO) Подскажите, пожалуйста, как в диалоговом окне типа LIST выводить введенный мною текст непосредственно в столбик? Думаю, что не очень понятно изъяснился, поэтому пример. Когда-то давно, случайно, увидел подобный фрагмент кода: Перенос строки в диалоге осуществляется табуляцией \n
Цитата (Nikita01041997) как преобразовать код Никак, написать с 0 систему топлива для транспорта. А в ней уже можно в качестве индикатора использовать этот ProgressBar.
SetProgressBarValue( ); //установка значения UpdateProgressBar( ); //обновление статуса vhealth[playerid] = CreateProgressBar(548.5, 36.0, _, _, 0x00FF00FF, 1000.0); //создание ProgressBar ShowProgressBarForPlayer(playerid, vhealth[playerid]); //показ игроку
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Сообщение отредактировал Geryy - Воскресенье, 07.04.2013, 15:08 |
| |
|
|
| MyatKO | Дата: Воскресенье, 07.04.2013, 15:14 | Сообщение # 261 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 156
Награды: 2
Город: Казань
Репутация: 121
Замечания: 0%
Статус: 
| Цитата (Geryy) Перенос строки в диалоге осуществляется табуляцией \n Нет, я не об этом. Ну да ладно, бог с ним.
|
| |
|
|
| [[[WampiR]]] | Дата: Воскресенье, 07.04.2013, 15:14 | Сообщение # 262 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Не подскажите как сделать чтобы простым игрокам которые не состоят во фракции давался разный цвет ника? Вот код который стоит у меня в данный момент: [pwn]public SetPlayerToTeamColor(playerid) { if(IsPlayerConnected(playerid)) { SetPlayerColor(playerid,COLOR_WHITE); } if(PlayerInfo[playerid][pMember] == 15 || PlayerInfo[playerid][pLeader] == 15) { SetPlayerColor(playerid,0x00FDFDAA); } if(PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pLeader] == 16) { SetPlayerColor(playerid,0xDE17E4AA); } if(PlayerInfo[playerid][pMember] == 18 || PlayerInfo[playerid][pLeader] == 18) { SetPlayerColor(playerid,0xB8860BAA); } if(PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14) { SetPlayerColor(playerid,0x36D352AA); } if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7) { SetPlayerColor(playerid,0xFFFFFFAA); } if(PlayerInfo[playerid][pMember] == 19 || PlayerInfo[playerid][pLeader] == 19) { SetPlayerColor(playerid,0x478F85AA); } if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5) { SetPlayerColor(playerid,0xFF8040AA); } if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20) { SetPlayerColor(playerid,0x808080AA); } if(PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pLeader] == 13) { SetPlayerColor(playerid,0x000000AA); } if(PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21) { SetPlayerColor(playerid,0x4592DEAA); } if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3) { SetPlayerColor(playerid,0x008000AA); } if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6) { SetPlayerColor(playerid,0xFFFF00AA); } if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1) { SetPlayerColor(playerid,0x060676AA); } if(PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12) { SetPlayerColor(playerid,0xFEFFA9AA); } if(PlayerInfo[playerid][pMember] == 11 || PlayerInfo[playerid][pLeader] == 11) { SetPlayerColor(playerid,0x55CBF3AA); } if(PlayerInfo[playerid][pMember] == 17 || PlayerInfo[playerid][pLeader] == 17) { SetPlayerColor(playerid,0x86B7B3AA); } if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2) { SetPlayerColor(playerid,0x440592AA); } if(PlayerInfo[playerid][pMember] == 9 || PlayerInfo[playerid][pLeader] == 9) { SetPlayerColor(playerid,0xC37859AA); } if(PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pLeader] == 10) { SetPlayerColor(playerid,0x680000AA); } }[/pwn]
|
| |
|
|
| MyatKO | Дата: Воскресенье, 07.04.2013, 15:33 | Сообщение # 263 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 156
Награды: 2
Город: Казань
Репутация: 121
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) Не подскажите как сделать чтобы простым игрокам которые не состоят во фракции давался разный цвет ника? Создаешь массив с разными цветами, потом посредством random(клик) выдаешь.
|
| |
|
|
| Nikita01041997 | Дата: Воскресенье, 07.04.2013, 16:00 | Сообщение # 264 |
|
Новенький
Группа:
Пользователи
Сообщений: 74
Награды: 0
Город: Алейск
Репутация: -37
Замечания: 0%
Статус: 
| У меня уже есть показатель бензинового уровня, он цифровой, а я хочу 3D полоской, Как это сделать?
люблю этот сайт
|
| |
|
|
| [[[WampiR]]] | Дата: Воскресенье, 07.04.2013, 16:08 | Сообщение # 265 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| MyatKO, Я что то не понял. Как создать этот массив та?
|
| |
|
|
| MyatKO | Дата: Воскресенье, 07.04.2013, 16:36 | Сообщение # 266 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 156
Награды: 2
Город: Казань
Репутация: 121
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) Как создать этот массив та?
Код new PlayerColors[] = {0x00FDFDAA, 0xDE17E4AA, 0xB8860BAA, 0x36D352AA, 0xFFFFFFAA};
Код new rand = random(sizeof(PlayerColors)); SetPlayerColor(playerid, PlayerColors[rand]); Закончишь сам.
|
| |
|
|
| [[[WampiR]]] | Дата: Воскресенье, 07.04.2013, 17:34 | Сообщение # 267 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| MyatKO, Спасибо помог.
|
| |
|
|
| Geryy | Дата: Понедельник, 08.04.2013, 09:53 | Сообщение # 268 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| [[[WampiR]]], вот более рандомный вариант без массива:
Код stock randomColor(Alpha = -1) return ((random(256) * 16777216) + (random(256) * 65536) + (random(256) * 256) + ((Alpha == -1) ? random(256) : Alpha));
SetPlayerColor(playerid, randomColor(255)); Добавлено (08.04.2013, 09:53) --------------------------------------------- MyatKO, Цитата Нет, я не об этом. Ну да ладно, бог с ним. ну первый формат делает строку для диалога list из 3-х пунктов а вот зачем второй нужен незнаю.
должно выводить 1 2 3 ну а для диалога это будет 3 пункта
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| Saibot | Дата: Понедельник, 08.04.2013, 14:52 | Сообщение # 269 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус: 
| Проблема з Checkpoint.Когда игрок работает на работе ему надо ездить по Checkpoint`там, но когда он въезжает на маркер от ворот то у него пропадет Checkpoint тот куда надо было ехать.Как зделать чтоб Checkpoint не пропадал? [pwn]if(checkk[playerid] == 1) //проверка на чекпоинт { DisablePlayerCheckpoint(playerid); checkk[playerid] = 0; checkk2[playerid] = 1; SetPlayerCheckpoint(playerid,1633.3784,667.3115,10.8203, 4.0); return 1; }[/pwn]
|
| |
|
|
| Weddew | Дата: Понедельник, 08.04.2013, 15:30 | Сообщение # 270 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Saibot) Проблема з Checkpoint.Когда игрок работает на работе ему надо ездить по Checkpoint`там, но когда он въезжает на маркер от ворот то у него пропадет Checkpoint тот куда надо было ехать.Как зделать чтоб Checkpoint не пропадал? Поставьте вопрос корректно.
www.weddew-shop.ru
|
| |
|
|
|
 |
|
 | |
| |
|