 |
|
 |
|
|
|
Последние Файлы 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]]] | Дата: Вторник, 23.04.2013, 20:54 | Сообщение # 511 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Помогите сделать чтобы когда я баню игрока в конфиге банлиста писалась причина бана. И когда разбаниваю чтобы писалась причина бана и кто забанил. Помогите пожалуйста если не трудно. Вот команда бан: [cut noguest=Бан][pwn] if(strcmp(cmd,"/ban", true) == 0) { if(PlayerInfo[playerid][pAdmin] >=2) { new tmp2[256]; tmp=strtok(cmdtext,idx); tmp2=strtok(cmdtext,idx); if((!strlen(tmp)) || (!strlen(tmp2)) || (!IsNumeric(tmp)) || (!IsNumeric(tmp2))) { SendClientMessage(playerid,COLOR_LIGHTRED,"Используйте: /ban [id] [дни] [причина]"); return 1; } if(IsPlayerConnected(playerid)) { new playeri,day,y,m,d,yy,mm,dd,nameme[MAX_PLAYER_NAME]; playeri = strval(tmp); day = strval(tmp2); if(IsPlayerConnected(playeri)) { if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playeri][pAdmin]) { SendClientMessage(playerid,COLOR_GREY,"Нельзя забанить админа, который старше вас!"); return 1; } if(day <= 0) { SendClientMessage(playerid,COLOR_GREY,"Дни бана должны быть больше нуля!"); return 1; } new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; GetPlayerName(playeri,nameme,sizeof(nameme)); GetPlayerName(playerid,playername,sizeof(playername)); GetPlayerName(playeri,sendername,sizeof(sendername)); if(!strlen(result)) { format(string,sizeof(string),"Администратор %s забанил %s на %d дней. Причина: несоблюдение правил сервера",playername,sendername,day); SendClientMessageToAll(COLOR_LIGHTRED,string); } else { format(string,sizeof(string),"Администратор %s забанил %s на %d дней. Причина: %s",playername,sendername,day,(result)); SendClientMessageToAll(COLOR_LIGHTRED,string); } getdate(y,m,d); dd = d; mm = m; yy = y; dd = dd + day; while(dd > GetDayMount(m,y)) { mm++; if(mm > 12) { mm=1; yy++; } dd = dd-GetDayMount(mm,yy); } PlayerPlaySound(playerid, 31202, 0.0, 0.0, 0.0); //__________________________________________________ _______________________________ new coordsstring1[512]; new msg1[] = "{FF0000}Вы были забанены\n\n \t{FF0000}Ваш ник: {FFFFFF}%s\n\t{FF0000}Забанил(а): {FFFFFF}%s\n\t{FF0000}Дата разбана: {FFFFFF}%d.%d.%d\n\t{FF0000}Причина: {FFFFFF}%s\n\t{FF0000}Кол-во дней: {FFFFFF}%d\n\t{FF0000}Форум: {FFFFFF}zig-zag.forum2x2.ru\n\n{FF0000}Если вы не согласны пишите на форум"; format(coordsstring1, sizeof coordsstring1, msg1, sendername,playername,dd,mm,yy,result,day); ShowPlayerDialog(giveplayerid,80,DIALOG_STYLE_MSGBOX,"Блокировка аккаунта",coordsstring1,"Выход",""); //__________________________________________________ _________________________ format(string,sizeof(string),"%d,%d,%d",dd,mm,yy); new File = iniOpen("tempbans.ini"); iniSet(File,nameme,string); iniClose(File); Kick(playeri); } else { SendClientMessage(playerid,COLOR_GREY,"Нет такого игрока!"); } } } else { SendClientMessage(playerid,COLOR_GREY,"Вы не уполномочены использовать эту команду!"); } return 1; }[/pwn][/cut] А вот unban [cut noguest=unban][pwn] if(strcmp(cmd,"/unban",true)==0) { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid,COLOR_LIGHTRED,"Используйте: /unban [Players_Nick]"); return 1; } if(PlayerInfo[playerid][pAdmin] >= 7) { new File = iniOpen("tempbans.ini"); new fuuuuu[256]; new oper =iniGet(File,result,fuuuuu); if(oper <0) { SendClientMessage(playerid,COLOR_LIGHTRED,"Ошибка"); iniClose(File); return 1; } else { ini_removeKey(File,result); iniClose(File); format(string,sizeof(string),"Аккаунт %s(срок %s) %s был разбанен!",result,fuuuuu); SendClientMessage(playerid,COLOR_LIGHTRED,string); return 1; } } }[/pwn][/cut]
|
| |
|
|
| massaoff | Дата: Вторник, 23.04.2013, 21:24 | Сообщение # 512 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 535
Награды: 4
Город: Березники
Репутация: 187
Замечания: 40%
Статус: 
| Цитата (|||WampiR|||) Когда зареспавню они нормально стоят за сеткой там. А так координаты все нормально сделаны. Проверял несколько раз. Больше негде такого нету только у лицензеров. Такое происходит когда интерьер расположен над местом выхода из него. После выхода из дома CJ возможен тот же самый баг. Сначала ставьте какой-нить "левый" виртуальный мир игроку, затем позицию, затем интерьер, затем с помощь таймера ставьте нормальный виртуальный мир, т.е: 0.
- Учимся рипать сайт - Memfiso-RPG мод Оказываю платную помощь, в создании и редактировании(доработка, исправление багов, реализация ваших идей) ваших модов/скриптов выполненных в pawno. Обращайтесь в скайп: massaoff РАБОТАЮ ТОЛЬКО С 50% ПРЕДОПЛАТОЙ!
Сообщение отредактировал massaoff - Вторник, 23.04.2013, 21:28 |
| |
|
|
| Exclus1ve | Дата: Среда, 24.04.2013, 09:14 | Сообщение # 513 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 141
Награды: 4
Город: Санкт-Петербург
Репутация: 330
Замечания: 40%
Статус: 
| Цитата (|||WampiR|||) Помогите сделать чтобы когда я баню игрока в конфиге банлиста писалась причина бана. И когда разбаниваю чтобы писалась причина бана и кто забанил. Помогите пожалуйста если не трудно.
Код format(string,sizeof(string),"%d,%d,%d,%s",dd,mm,yy,result); new File = iniOpen("tempbans.ini"); iniSet(File,nameme,string); iniClose(File);
node.js
Сообщение отредактировал Exclus1ve - Среда, 24.04.2013, 09:14 |
| |
|
|
| Merbul | Дата: Среда, 24.04.2013, 14:16 | Сообщение # 514 |
|
Новенький
Группа:
Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Здарова всем как сделать чтобы ворота открывались вниз а не в бок. А то когда они закриваются, закрываются не правильно и крыво. И еще есть такая команда чтоб продать все машины в сервере РПГ?
|
| |
|
|
| [[[WampiR]]] | Дата: Среда, 24.04.2013, 14:47 | Сообщение # 515 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Цитата (Exclus1ve) Здарова всем как сделать чтобы ворота открывались вниз а не в бок Надо через МТА создавать ворота. Сразу в закрытом виде потом в открытом виде. И потом уже искать уроки и переделывать.
|
| |
|
|
| Weddew | Дата: Среда, 24.04.2013, 16:16 | Сообщение # 516 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Merbul) Здарова всем как сделать чтобы ворота открывались вниз а не в бок. А то когда они закриваются, закрываются не правильно и крыво. И еще есть такая команда чтоб продать все машины в сервере РПГ? Код с командой открытия работ выложите, а также координаты, в которых находятся эти ворота.
www.weddew-shop.ru
|
| |
|
|
| BongSkrews | Дата: Среда, 24.04.2013, 16:40 | Сообщение # 517 |
|
Новенький
Группа:
Пользователи
Сообщений: 15
Награды: 0
Репутация: 18
Замечания: 0%
Статус: 
| Здраствуйте, у меня вот произошла проблема с кодировкой в моде. Вписал такую штуку:
Код if(newstate == PLAYER_STATE_DRIVER) { new string[256]; format(string, sizeof(string), "Вы сели в автомобиль %s, чтобы завести двигатель введите (/en)gine)", CarName); SendClientMessage(playerid, COLOR_LIGHT_BLUE, string); } В массиве CarName названия написаны по-английски. Помогите пожалуйста.
|
| |
|
|
| Weddew | Дата: Среда, 24.04.2013, 18:37 | Сообщение # 518 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Если у Вас CarName - массив, то при форматировании нужно выводить элемент массива, а не весь массив.
www.weddew-shop.ru
|
| |
|
|
| BongSkrews | Дата: Среда, 24.04.2013, 19:13 | Сообщение # 519 |
|
Новенький
Группа:
Пользователи
Сообщений: 15
Награды: 0
Репутация: 18
Замечания: 0%
Статус: 
| Цитата (Weddew) Если у Вас CarName - массив, то при форматировании нужно выводить элемент массива, а не весь массив. Слишком муторно и не красиво получается. Сделать переменной, но там такая же ситуация...
|
| |
|
|
| Weddew | Дата: Среда, 24.04.2013, 19:14 | Сообщение # 520 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (BongSkrews) Слишком муторно и не красиво получается Причем тут красота?
www.weddew-shop.ru
|
| |
|
|
| BongSkrews | Дата: Среда, 24.04.2013, 19:18 | Сообщение # 521 |
|
Новенький
Группа:
Пользователи
Сообщений: 15
Награды: 0
Репутация: 18
Замечания: 0%
Статус: 
| Цитата (Weddew) Причем тут красота? Ну чтобы бы в моде красиво всё было По теме: Как же всё-таки исправить с использованием переменной?
|
| |
|
|
| Merbul | Дата: Среда, 24.04.2013, 19:29 | Сообщение # 522 |
|
Новенький
Группа:
Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Скиньте сайт скрипта что показывало Ехр и Лвл. У меня не показывает
|
| |
|
|
| [[[WampiR]]] | Дата: Среда, 24.04.2013, 19:33 | Сообщение # 523 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Если я правильно понял про что ты то вот: [cut noguest=ссылка]http://www.samp-city.ru/forum/67-6865-1[/cut]
|
| |
|
|
| Weddew | Дата: Среда, 24.04.2013, 19:34 | Сообщение # 524 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (BongSkrews) Ну чтобы бы в моде красиво всё было Главное не красота, а качество написания кода.Добавлено (24.04.2013, 19:34) ---------------------------------------------
Цитата (BongSkrews) Как же всё-таки исправить с использованием переменной? Цитата (Weddew) при форматировании нужно выводить элемент массива
www.weddew-shop.ru
|
| |
|
|
| BongSkrews | Дата: Среда, 24.04.2013, 19:49 | Сообщение # 525 |
|
Новенький
Группа:
Пользователи
Сообщений: 15
Награды: 0
Репутация: 18
Замечания: 0%
Статус: 
| Weddew, Ну ладно. Спасибо за ответ.
|
| |
|
|
|
 |
|
 | |
| |
|