 |
|
 |
|
|
|
Последние Файлы 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 |
| |
|
|
| Geryy | Дата: Суббота, 02.11.2013, 02:26 | Сообщение # 1696 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Код на данные ошибки можно увидеть?
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| sttw | Дата: Суббота, 02.11.2013, 09:46 | Сообщение # 1697 |
|
Новенький
Группа:
Пользователи
Сообщений: 14
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Цитата Geryy (  ) Код на данные ошибки можно увидеть?
Ко всем new добовляем: PHP код: new Text:levelexp[MAX_PLAYERS]; Потом добовляем в OnPlayerConnect: PHP код: levelexp[playerid] = TextDrawCreate(500.000000,3.500000,"_"); TextDrawAlignment(levelexp[playerid],0); TextDrawBackgroundColor(levelexp[playerid],0x000000ff); TextDrawFont(levelexp[playerid],1); TextDrawLetterSize(levelexp[playerid],0.38,2.000000); TextDrawColor(levelexp[playerid],0xffffffff); TextDrawSetOutline(levelexp[playerid],0); TextDrawSetProportional(levelexp[playerid],2); TextDrawSetShadow(levelexp[playerid],2); TextDrawShowForPlayer(playerid, levelexp[playerid]); Теперь в OnPlayerDisconnect: PHP код: TextDrawDestroy(levelexp[playerid]); и в паблик OtherTimer добавим: new exp = PlayerInfo[i][pExp]; new nxtlevel = PlayerInfo[i][pLevel]+1; new sled = nxtlevel*levelexp; format(string,sizeof(string),"~w~LvL: ~y~%d ~w~Exp: ~y~%d~w~/~y~%d",PlayerInfo[i][pLevel],exp,sled); TextDrawSetString(levelexp[i], string);
получится вот такой текстдрав LvL и Exp: http://s51.radikal.ru/i133/1109/91/16383d308118.jpg
|
| |
|
|
| Geryy | Дата: Суббота, 02.11.2013, 10:44 | Сообщение # 1698 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| [pwn] //Ко всем new добовляем:
new Text:levelexpt[MAX_PLAYERS]; //Потом добовляем в OnPlayerConnect:
levelexpt[playerid] = TextDrawCreate(500.000000,3.500000,"_"); TextDrawAlignment(levelexpt[playerid],0); TextDrawBackgroundColor(levelexpt[playerid],0x000000ff); TextDrawFont(levelexpt[playerid],1); TextDrawLetterSize(levelexpt[playerid],0.38,2.000000); TextDrawColor(levelexpt[playerid],0xffffffff); TextDrawSetOutline(levelexpt[playerid],0); TextDrawSetProportional(levelexpt[playerid],2); TextDrawSetShadow(levelexpt[playerid],2); TextDrawShowForPlayer(playerid, levelexpt[playerid]); //Теперь в OnPlayerDisconnect:
TextDrawDestroy(levelexpt[playerid]); //и в паблик OtherTimer добавим: new exp = PlayerInfo[i][pExp]; new nxtlevel = PlayerInfo[i][pLevel]+1; new sled = nxtlevel*levelexp; format(string,sizeof(string),"~w~LvL: ~y~%d ~w~Exp: ~y~%d~w~/~y~%d",PlayerInfo[i][pLevel],exp,sled); TextDrawSetString(levelexpt[i], string); [/pwn]
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| sttw | Дата: Суббота, 02.11.2013, 14:57 | Сообщение # 1699 |
|
Новенький
Группа:
Пользователи
Сообщений: 14
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Цитата Geryy (  ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 //Ко всем new добовляем: new Text:levelexpt[MAX_PLAYERS]; //Потом добовляем в OnPlayerConnect: levelexpt[playerid] = TextDrawCreate(500.000000,3.500000,"_"); TextDrawAlignment(levelexpt[playerid],0); TextDrawBackgroundColor(levelexpt[playerid],0x000000ff); TextDrawFont(levelexpt[playerid],1); TextDrawLetterSize(levelexpt[playerid],0.38,2.000000); TextDrawColor(levelexpt[playerid],0xffffffff); TextDrawSetOutline(levelexpt[playerid],0); TextDrawSetProportional(levelexpt[playerid],2); TextDrawSetShadow(levelexpt[playerid],2); TextDrawShowForPlayer(playerid, levelexpt[playerid]); //Теперь в OnPlayerDisconnect: TextDrawDestroy(levelexpt[playerid]); //и в паблик OtherTimer добавим: new exp = PlayerInfo[i][pExp]; new nxtlevel = PlayerInfo[i][pLevel]+1; new sled = nxtlevel*levelexp; format(string,sizeof(string),"~w~LvL: ~y~%d ~w~Exp: ~y~%d~w~/~y~%d",PlayerInfo[i][pLevel],exp,sled); TextDrawSetString(levelexpt[i], string); Спасибо ) попробую щас! МОЖНО ЕЩЁ ВОПРОСИК хочу вас попросить дать/сделать код на проверку цифр в нике Я хотел бы попросить такой код чтобы не впускал ники пример: Vasya228 , Vasya_Pupkin123 , Vasya_P1pkun , Vasya_Pupkin1 , 123456 и т.д. Заранее огромное спасибо!Добавлено (02.11.2013, 14:57) ---------------------------------------------
Цитата Geryy (  ) //Ко всем new добовляем: new Text:levelexpt[MAX_PLAYERS]; //Потом добовляем в OnPlayerConnect: levelexpt[playerid] = TextDrawCreate(500.000000,3.500000,"_"); TextDrawAlignment(levelexpt[playerid],0); TextDrawBackgroundColor(levelexpt[playerid],0x000000ff); TextDrawFont(levelexpt[playerid],1); TextDrawLetterSize(levelexpt[playerid],0.38,2.000000); TextDrawColor(levelexpt[playerid],0xffffffff); TextDrawSetOutline(levelexpt[playerid],0); TextDrawSetProportional(levelexpt[playerid],2); TextDrawSetShadow(levelexpt[playerid],2); TextDrawShowForPlayer(playerid, levelexpt[playerid]); //Теперь в OnPlayerDisconnect: TextDrawDestroy(levelexpt[playerid]); //и в паблик OtherTimer добавим: new exp = PlayerInfo[i][pExp]; new nxtlevel = PlayerInfo[i][pLevel]+1; new sled = nxtlevel*levelexp; format(string,sizeof(string),"~w~LvL: ~y~%d ~w~Exp: ~y~%d~w~/~y~%d",PlayerInfo[i][pLevel],exp,sled); TextDrawSetString(levelexpt[i], string); Погоди,я тебе прислал код,а то что типо(и это в паблик)- это я конечно не писал ахаха) у меня именно из за кода выдёт ошибку! C:\Users\SERGEYI\Desktop\penls.pwn(2804) : warning 213: tag mismatch C:\Users\SERGEYI\Desktop\penls.pwn(2843) : warning 213: tag mismatch C:\Users\SERGEYI\Desktop\penls.pwn(2852) : warning 213: tag mismatch C:\Users\SERGEYI\Desktop\penls.pwn(12982) : error 033: array must be indexed (variable "levelexp") C:\Users\SERGEYI\Desktop\penls.pwn(13276) : error 033: array must be indexed (variable "levelexp") C:\Users\SERGEYI\Desktop\penls.pwn(29340) : error 033: array must be indexed (variable "levelexp")
|
| |
|
|
| Weddew | Дата: Суббота, 02.11.2013, 15:08 | Сообщение # 1700 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата sttw (  ) код на проверку цифр в нике
[pwn]stock CheckCharListInString(new str[]) {// by Weddew new charlist[10] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; for(new i = 0; i < strlen(str); i++) { for(new j = 0; j < sizeof(charlist); j++) { if(str[i] == charlist[j]) return true; } } return false; }[/pwn]
Как-то так, при желании можно добавить еще символов в charlist.
www.weddew-shop.ru
|
| |
|
|
| [[[WampiR]]] | Дата: Суббота, 02.11.2013, 15:10 | Сообщение # 1701 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Цитата sttw (  ) МОЖНО ЕЩЁ ВОПРОСИК хочу вас попросить дать/сделать код на проверку цифр в нике Я хотел бы попросить такой код чтобы не впускал ники пример: Vasya228 , Vasya_Pupkin123 , Vasya_P1pkun , Vasya_Pupkin1 , 123456 и т.д. Заранее огромное спасибо!
В public OnPlayerConnect(playerid) добавь: [cut noguest=Код][pwn][/pwn] new plname[MAX_PLAYER_NAME]; if(!NonRpName(playerid)) { GetPlayerName(playerid, plname, sizeof(plname)); Kick(playerid); // Кикаем игрока с нонРП ником return 1; }[/cut]
Ко всем stock'am добавь: [cut noguest=Код2][pwn]stock NonRpName(playerid) { new plname[MAX_PLAYER_NAME]; GetPlayerName(playerid, plname, MAX_PLAYER_NAME); for(new i = 0; i < strlen(plname); i++) { if(!((plname[i]>='a'&&plname[i]<='z') || (plname[i]>='A'&&plname[i]<='Z') || plname[i]=='_')) { return false; // недопустимые символы в нике } } new d = strfind(plname, "_"); if( d == -1 ) return false; // нет _ в нике if(strfind(plname, "_", false, d+1) != -1) return false; // больше одного _ в нике new name[10]; strmid(name, plname, 0, d, sizeof name); new surname[10]; strmid(surname, plname, d+1, strlen(plname), sizeof surname); if(strlen(name) < 3 || strlen(name) > 9) return false; // неверная длина имени if(strlen(surname) <3 || strlen(surname) > 9) return false; // неверная длина фамилии if(!(name[0]>='A' && name[0]<='Z')) return false; // первая буква имени не заглавная if(!(surname[0]>='A' && surname[0]<='Z')) return false; // первая буква фамилии не заглавная for(new i=1;i<strlen(name);i++) { if(!(name[i]>='a'&&name[i]<='z')) return false; // неверные буквы в имени } for(new i=1;i<strlen(surname);i++) { if(!(surname[i]>='a'&&surname[i]<='z')) return false; // неверные буквы в фамилии } return true; }[/pwn][/cut]
|
| |
|
|
| Geryy | Дата: Суббота, 02.11.2013, 15:12 | Сообщение # 1702 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата sttw (  ) Погоди,я тебе прислал код,а то что типо(и это в паблик)- это я конечно не писал ахаха) у меня именно из за кода выдёт ошибку! Ну я ж тебе скинул вариант.
До кучи, для цифр в нике:
Код stock isNumerName(const szName[]) { for(new i; szName[i] != EOS; ++i) { switch(szName[i]) { case '0'..'9': continue; default: return 0; } } return 1; }
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Сообщение отредактировал Geryy - Суббота, 02.11.2013, 15:16 |
| |
|
|
| [[[WampiR]]] | Дата: Суббота, 02.11.2013, 15:16 | Сообщение # 1703 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Подскажите пожалуйста. У меня стоит проверка на диалог. showhelp[playerid] = 0; - дается при коннекте. Вот мне надо сделать, чтобы на правую кнопку мыши игроку давалось showhelp[playerid] = 0; [pwn] case 14: { if(PlayerInfo[playerid][pDonateRank] >= 1) { new str[785]; new line1[128] = "____________________www.zigzag-rpg.ru____________________\n"; new line2[60] = "=============== 1-VIP Аккаунт===============\t"; new line3[60] = "/togphone - Выключить телефон\t"; new line4[60] = "=============== 2-VIP Аккаунт===============\t"; new line5[60] = "/togpm - Выключить личные сообщения\t"; new line6[60] = "/neon red/yellow/blue/white/pink - Установление неона\t"; new line7[60] = "=============== 3-VIP Аккаунт===============\t"; new line8[60] = "/one - Мигалка\t"; new line9[128] = "____________________www.zigzag-rpg.ru____________________"; format(str,sizeof(str),"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s", line1, line2, line3, line4, line5, line6, line7, line8, line9); ShowPlayerDialog(playerid,19972, 0, "{FFFF00}*** VIP Аккаунт ***",str,"Назад",""); showhelp[playerid] = 1; return 1; } else { SendClientMessage(playerid, COLOR_LIGHTRED, "Вы не VIP игрок!"); showhelp[playerid] = 0; return 1; } } } } } }[/pwn] Вот это самое нижнее, что есть у меня в "/help" я пытался сделать через "else" но тогда shpwhelp[playerid] = 0; присваивалось каждому пункту "/help"
|
| |
|
|
| vadja575 | Дата: Суббота, 02.11.2013, 17:21 | Сообщение # 1704 |
|
Новенький
Группа:
Пользователи
Сообщений: 23
Награды: 0
Репутация: -10
Замечания: 0%
Статус: 
| Цитата Weddew (  ) Weddew Спасибо!
|
| |
|
|
| sttw | Дата: Суббота, 02.11.2013, 21:36 | Сообщение # 1705 |
|
Новенький
Группа:
Пользователи
Сообщений: 14
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Цитата Geryy (  ) Погоди,я тебе прислал код,а то что типо(и это в паблик)- это я конечно не писал ахаха) у меня именно из за кода выдёт ошибку!
Ну я ж тебе скинул вариант.
До кучи, для цифр в нике:
Код
stock isNumerName(const szName[]) { for(new i; szName[i] != EOS; ++i) { switch(szName[i]) { case '0'..'9': continue; default: return 0; } } return 1; }
ТЫ ЦАРЬ И БОГ ЭТОГО САЙТА)РЕСПЕКТ ТЕБЕ)(МОЖЕШЬ ДАТЬ КОНТАКТЫ,ЧТО БЫ С ТОБОЙ СВЯЗАТЬСЯ?)
|
| |
|
|
| Alcoholik | Дата: Суббота, 02.11.2013, 21:41 | Сообщение # 1706 |
|
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус: 
| Цитата sttw (  ) ТЫ ЦАРЬ И БОГ ЭТОГО САЙТА)РЕСПЕКТ ТЕБЕ) Бля, я думал я тут царь
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
| |
|
|
| Geryy | Дата: Воскресенье, 03.11.2013, 01:51 | Сообщение # 1707 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
|
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| [[[WampiR]]] | Дата: Понедельник, 04.11.2013, 06:08 | Сообщение # 1708 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Подскажите, возможно ли вообще сделать такую команду, чтобы когда игрок набирает ее, удалялся pwn или amx в папке gamemodes?
|
| |
|
|
| Geryy | Дата: Понедельник, 04.11.2013, 11:29 | Сообщение # 1709 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Нет.
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| Weddew | Дата: Понедельник, 04.11.2013, 19:14 | Сообщение # 1710 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата [[[WampiR]]] (  ) Подскажите, возможно ли вообще сделать такую команду, чтобы когда игрок набирает ее, удалялся pwn или amx в папке gamemodes? В принципе возможно, но не для вас
www.weddew-shop.ru
|
| |
|
|
|
 |
|
 | |
| |
|