 |
|
 |
|
|
|
Последние Файлы 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 |
| |
|
|
| ABATAP | Дата: Четверг, 18.07.2013, 04:43 | Сообщение # 1246 |
|
Советчик
Группа:
Продвинутые
Сообщений: 1007
Награды: 14
Город: Новосибирск
Репутация: 729
Замечания: 0%
Статус: 
| Geryy, думаю, что так будет проще. http://pastebin.com/3mq7DGZa
|
| |
|
|
| Geryy | Дата: Четверг, 18.07.2013, 09:47 | Сообщение # 1247 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Код работоспособный, но он конфликтует с другими фильтерскриптами, в которых есть диалоги. Поставь в server.cfg загрузку этого ФС самым первым или лучше 'вшить' его в мод.
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Сообщение отредактировал Geryy - Четверг, 18.07.2013, 09:50 |
| |
|
|
| ABATAP | Дата: Четверг, 18.07.2013, 12:23 | Сообщение # 1248 |
|
Советчик
Группа:
Продвинутые
Сообщений: 1007
Награды: 14
Город: Новосибирск
Репутация: 729
Замечания: 0%
Статус: 
| Цитата (Geryy) конфликтует с другими фильтерскриптами
Верняк. Спасибо за помощь
|
| |
|
|
| forst5 | Дата: Четверг, 18.07.2013, 17:39 | Сообщение # 1249 |
|
Новенький
Группа:
Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус: 
| Ребят, не подскажите, я когда гражданский и покупаю скин в магазе, то меня ТП назад в магаз после покупки как и должно быть. А если я состою во фракции и покупаю скин, то меня ТП домой если есть или на место респавна фракции... Где можно посмотреть чтобы исправить?
|
| |
|
|
| Weddew | Дата: Четверг, 18.07.2013, 20:08 | Сообщение # 1250 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| forst5, экстрасенсов нет, хотя бы мод выложили, а по теме: Цитата (Weddew) Задавайте вопросы исключительно по коду, а не по системам, которые имеются у Вас в моде.
www.weddew-shop.ru
|
| |
|
|
| artemganin1999 | Дата: Четверг, 18.07.2013, 20:32 | Сообщение # 1251 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Помогите, когда смотришь кто из админов онлайн в диалоге и потом либо ok либо отмена и у тебя сразу Server the close connection. Тоже самое и с радио, вот команда радио [pwn] if(strcmp(string, "/player", true) == 0) { if (PlayerInfo[playerid][pPlayero] == 1) { new sctring[2000]; format(string, sizeof(string), "{ff0000}Âûêëþ÷èòü\n{00ffff}Radio Record\n{00ffff}Trancemission Radio\n{00ffff}Pirate Station\n{00ffff}Vip Mix\n{00ffff}Teodor Hardstyle\n{00ffff}Radio Record Dancecore\n{00ffff}Radio Record Breaks\n{00ffff}Radio Record Chill-Out\n{00ffff}Radio Record Dupstep\n"); strcat(sctring, string); format(string, sizeof(string), "{00ffff}Ñóïåðäèñêîòåêà 90-x\n{00ffff}Radio Record Club\n{00ffff}Ìåäëÿê FM\n{00ffff}Ãîï FM"); strcat(sctring, string); new title[256]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(title, sizeof(title), "{ffdb58}Ïëååð: {ffffff}%s", name); ShowPlayerDialog(playerid, 7878, DIALOG_STYLE_LIST, title, sctring, "Âûáðàòü", "Âûéòè"); SetPlayerAttachedObject(playerid, 1, 19421, 2, 0.030000, -0.017000, -0.004000, -90.199958, 6.199999, -95.299995, 0.996999, 1.003000, 0.862999); return true; } else { SendClientMessage(playerid, COLOR_GRAD1,"Âû íå èìååòå ïëååðà"); } }[/pwn]
|
| |
|
|
| Weddew | Дата: Четверг, 18.07.2013, 21:05 | Сообщение # 1252 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| artemganin1999, Вы обработчики диалогов выложите
www.weddew-shop.ru
|
| |
|
|
| artemganin1999 | Дата: Четверг, 18.07.2013, 21:08 | Сообщение # 1253 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Код if(dialogid == 7878) { if(response) { if(listitem == 0) { StopAudioStreamForPlayer(playerid); for(new i=0; i<MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(IsPlayerAttachedObjectSlotUsed(playerid, i)) RemovePlayerAttachedObject(playerid, i); } } if(listitem == 1) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8101/rr_128"); } if(listitem == 2) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/tm_128"); } if(listitem == 3) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/ps_128"); } if(listitem == 4) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/vip_128"); } if(listitem == 5) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/teo_128"); } if(listitem == 6) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/dc_128"); } if(listitem == 7) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/brks_128"); } if(listitem == 8) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/chil_128"); } if(listitem == 9) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/dub_128"); } if(listitem == 10) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/sd90_128"); } if(listitem == 11) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/club_128"); } if(listitem == 12) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/mdl_128"); } if(listitem == 13) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/gop_128"); } } }
|
| |
|
|
| Weddew | Дата: Четверг, 18.07.2013, 21:13 | Сообщение # 1254 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| artemganin1999, в тело обработчика добавьте [pwn]return true;[/pwn] [pwn]if(dialogid == 7878) { if(response) { if(listitem == 0) { StopAudioStreamForPlayer(playerid); for(new i=0; i<MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(IsPlayerAttachedObjectSlotUsed(playerid, i)) RemovePlayerAttachedObject(playerid, i); } } if(listitem == 1) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8101/rr_128"); } if(listitem == 2) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/tm_128"); } if(listitem == 3) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/ps_128"); } if(listitem == 4) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/vip_128"); } if(listitem == 5) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/teo_128"); } if(listitem == 6) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/dc_128"); } if(listitem == 7) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/brks_128"); } if(listitem == 8) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/chil_128"); } if(listitem == 9) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/dub_128"); } if(listitem == 10) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/sd90_128"); } if(listitem == 11) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/club_128"); } if(listitem == 12) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/mdl_128"); } if(listitem == 13) { PlayAudioStreamForPlayer(playerid, "http://online.radiorecord.ru:8102/gop_128"); } } return true; } [/pwn]
www.weddew-shop.ru
|
| |
|
|
| Troovor | Дата: Четверг, 18.07.2013, 21:18 | Сообщение # 1255 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 102
Награды: 6
Город: Нижний Новгород
Репутация: 184
Замечания: 0%
Статус: 
| Такой вот вопрос, как создать индикатор(бар, например, как полоска жизни, дыхания под водой) и как его использовать?
Ребят, подскажите код OnPlayerSpawn, что бы перевести сервер на 0.3d © Борян
|
| |
|
|
| artemganin1999 | Дата: Четверг, 18.07.2013, 21:21 | Сообщение # 1256 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| тоже самое(
|
| |
|
|
| forst5 | Дата: Четверг, 18.07.2013, 21:39 | Сообщение # 1257 |
|
Новенький
Группа:
Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус: 
| Weddew, вот про покупку скина
Код { if(PlayerInfo[playerid][pCash] < CharPrice[playerid]) { SendClientMessage(playerid, COLOR_GREY, "Ó âàñ íåò ñòîëüêî äåíåã"); ShowMenuForPlayer(skinshopmagaz[0], playerid); return true; } PlayerInfo[playerid][pCash] -= CharPrice[playerid]; format(string, sizeof(string), "~r~-$%d", CharPrice[playerid]); GameTextForPlayer(playerid, string, 5000, 1); if(zips[playerid] == 1) { SetPlayerInterior(playerid,18); SetPlayerVirtualWorld(playerid,0); CharPrice[playerid] = 0; PlayerInfo[playerid][pCash]-= CharPrice[playerid]; SetPlayerPosAc(playerid ,181.1844,-88.0599,1002); TogglePlayerControllable(playerid, 1); PlayerInfo[playerid][pChar] = ChosenSkin[playerid]; SetCameraBehindPlayer(playerid); SelectCharPlace[playerid] = 0; SelectCharID[playerid] = 0; SelectChar[playerid] = 0; SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]); return true; } CharPrice[playerid] = 0; PlayerInfo[playerid][pCash] -= CharPrice[playerid]; SetPlayerPosAc(playerid ,209.4333,-7.9053,1001.2109); TogglePlayerControllable(playerid, 1); SetPlayerVirtualWorld(playerid, 0); PlayerInfo[playerid][pChar] = ChosenSkin[playerid]; SetCameraBehindPlayer(playerid); SelectCharPlace[playerid] = 0; SelectCharID[playerid] = 0; SelectChar[playerid] = 0; SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]); } case 3: { if(zips[playerid] == 1) { SetPlayerVirtualWorld(playerid,0); SetPlayerInterior(playerid,18); CharPrice[playerid] = 0; TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); PlayerInfo[playerid][pChar] = PlayerInfo[playerid][pChar]; SetPlayerPosAc(playerid, 181.1844,-88.0599,1002); SetPlayerSkin(playerid, OldSkin[playerid]); PlayerInfo[playerid][pChar] = OldSkin[playerid]; SelectCharPlace[playerid] = 0; SelectCharID[playerid] = 0; SelectChar[playerid] = 0; return true; } SetPlayerVirtualWorld(playerid, 0); CharPrice[playerid] = 0; TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); PlayerInfo[playerid][pChar] = PlayerInfo[playerid][pChar]; SetPlayerPosAc(playerid, 209.4333,-7.9053,1001.2109); SetPlayerSkin(playerid, OldSkin[playerid]); PlayerInfo[playerid][pChar] = OldSkin[playerid]; SelectCharPlace[playerid] = 0; SelectCharID[playerid] = 0; SelectChar[playerid] = 0; } } } return true; } else if(Current == skinshopmagaz[1]) { if(PlayerToPoint(3.0,playerid,222.3489,-8.5845,1002.2109)) { switch(row) { case 0: { if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, Peds[45][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = Peds[45][0]; CharPrice[playerid] = 10000; GameTextForPlayer(playerid, "~g~~n~~n~~n~~n~~n~~n~COST: ~y~10000", 2000, 3); } Добавлено (18.07.2013, 21:39) ---------------------------------------------
Код case 2: { if(PlayerInfo[playerid][pCash] < CharPrice[playerid]) { SendClientMessage(playerid, COLOR_GREY, "У вас нет столько денег"); ShowMenuForPlayer(skinshopmagaz[0],playerid); return true; } PlayerInfo[playerid][pCash] -= CharPrice[playerid]; format(string, sizeof(string), "~r~-$%d", CharPrice[playerid]); GameTextForPlayer(playerid, string, 5000, 1); if(zips[playerid] == 1) { SetPlayerInterior(playerid,18); CharPrice[playerid] = 0; PlayerInfo[playerid][pCash] -= CharPrice[playerid]; SetPlayerPosAc(playerid ,181.1844,-88.0599,1002); TogglePlayerControllable(playerid, 1); SetPlayerVirtualWorld(playerid, 0); PlayerInfo[playerid][pChar] = ChosenSkin[playerid]; SetCameraBehindPlayer(playerid); SelectCharPlace[playerid] = 0; SelectCharID[playerid] = 0; SelectChar[playerid] = 0; SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]); return true; } CharPrice[playerid] = 0; PlayerInfo[playerid][pCash] -= CharPrice[playerid]; SetPlayerPosAc(playerid ,209.4333,-7.9053,1001.2109); TogglePlayerControllable(playerid, 1); SetPlayerVirtualWorld(playerid,0); PlayerInfo[playerid][pChar] = ChosenSkin[playerid]; SetCameraBehindPlayer(playerid); SelectCharPlace[playerid] = 0; SelectCharID[playerid] = 0; SelectChar[playerid] = 0; SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]); } case 3: { if(zips[playerid] == 1) { SetPlayerInterior(playerid,18); SetPlayerVirtualWorld(playerid, 0); CharPrice[playerid] = 0; TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); PlayerInfo[playerid][pChar] = PlayerInfo[playerid][pChar]; SetPlayerPosAc(playerid ,181.1844,-88.0599,1002); SetPlayerVirtualWorld(playerid, 0); SetPlayerSkin(playerid, OldSkin[playerid]); PlayerInfo[playerid][pChar] = OldSkin[playerid]; SelectCharPlace[playerid] = 0; SelectCharID[playerid] = 0; SelectChar[playerid] = 0; return true; } SetPlayerVirtualWorld(playerid, 0); CharPrice[playerid] = 0; TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); PlayerInfo[playerid][pChar] = PlayerInfo[playerid][pChar]; SetPlayerPosAc(playerid ,209.4333,-7.9053,1001.2109); SetPlayerVirtualWorld(playerid, 0); SetPlayerSkin(playerid, OldSkin[playerid]); PlayerInfo[playerid][pChar] = OldSkin[playerid]; SelectCharPlace[playerid] = 0; SelectCharID[playerid] = 0; SelectChar[playerid] = 0; } } } return true; }
|
| |
|
|
| Weddew | Дата: Четверг, 18.07.2013, 22:17 | Сообщение # 1258 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Troovor) Такой вот вопрос, как создать индикатор(бар, например, как полоска жизни, дыхания под водой) и как его использовать? Progress Bar
Добавлено (18.07.2013, 22:17) --------------------------------------------- artemganin1999, скиньте полностью callback OnDialogResponse (pastebin.com)
www.weddew-shop.ru
Сообщение отредактировал Weddew - Четверг, 18.07.2013, 22:18 |
| |
|
|
| Geryy | Дата: Пятница, 19.07.2013, 01:59 | Сообщение # 1259 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата (artemganin1999) Помогите, когда смотришь кто из админов онлайн в диалоге и потом либо ok либо отмена и у тебя сразу Server the close connection. Тоже самое и с радио, вот команда радио Защиты от подмены ид диалогов нет? Во всем моде используется стандартный вызов ShowPlayerDialog?
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Сообщение отредактировал Geryy - Пятница, 19.07.2013, 02:01 |
| |
|
|
| artemganin1999 | Дата: Пятница, 19.07.2013, 10:44 | Сообщение # 1260 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Цитата (Weddew) скиньте полностью callback OnDialogResponse (pastebin.com) callback OnDialogResponse не нашел,нашел только public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) Там просто [pwn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(GetPVarInt(playerid,"ALANTICRASH1") != dialogid) return Kick(playerid); new tpass[256]; new gun, ammo, price, gunname[64]; new string[512]; new engine,lights,alarm,doors,bonnet,boot,objective; [/pwn] и дальше идут все диалогиДобавлено (19.07.2013, 09:38) ---------------------------------------------
Цитата (Geryy) Защиты от подмены ид диалогов нет? Во всем моде используется стандартный вызов ShowPlayerDialog? тут очень мало ShowPlayerDialog , всего раза 4 в моде встречаются , тут все так SPD(playerid, ****, DIALOG_STYLE_LIST,Добавлено (19.07.2013, 10:08) --------------------------------------------- P.s скачал Fs gangzone , опять появляется диалог, я выбираю и опять кикает Добавлено (19.07.2013, 10:44) ---------------------------------------------
Все додумался, стоит античит на подмену диалога, просто надо заместо ShowPlayerDialog нужно SPD
|
| |
|
|
|
 |
|
 | |
| |
|