 |
|
 |
|
|
|
Последние Файлы 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]]] | Дата: Среда, 27.03.2013, 19:34 | Сообщение # 91 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Помогите решить проблему с античитом. У меня при продажи респектов (exp) они продаются другому игроку а у того игрока которому я их продаю деньги не убовляются и мне тоже не пребовляются. Но респекты уходят. Может кто знает в чем проблема.
[pwn]if(strcmp(cmd, "/sellresp", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pExp]==0) { SendClientMessage(playerid,COLOR_GREY,"У вас нет респектов!"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_LIGHTRED, "Используйте: /sellexp [id] [кол-во][сумма]"); return 1; } new playa; new money; new kolvo; playa = ReturnUser(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { return 1; } kolvo = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { return 1; } money = strval(tmp); if(kolvo > PlayerInfo[playerid][pExp]) { SendClientMessage(playerid, COLOR_GREY, "У вас нет столько респектов!"); return 1; } if(kolvo <= 0) { SendClientMessage(playerid, COLOR_GREY, "Неверное количество!"); return 1; } if(IsPlayerConnected(playa)) { if(playa != INVALID_PLAYER_ID) { if (ProxDetectorS(8.0, playerid, playa)) { if(playa == playerid) { SendClientMessage(playerid, COLOR_GREY, "Себе нельзя продать респекты!"); return 1; } GetPlayerName(playa, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "Вы предложили %s[%d] купить респекты[%d] за $%d.", giveplayer, playerid, kolvo, money); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "Вам предложили купить респекты[%d] за $%d игрок %s[%d](/accept respect)", kolvo, money, sendername, playerid); SendClientMessage(playa, COLOR_LIGHTBLUE, string); ExpOffer[playa] = playerid; ExpPrice[playa] = money; ExpKolvo[playa] = kolvo; } else { SendClientMessage(playerid, COLOR_GREY, "Игрок не рядом с вами! !"); } } } else { SendClientMessage(playerid, COLOR_GREY, "Игрок не в игре."); } } return 1; }[/pwn]
[pwn] if(strcmp(x_job,"respect",true) == 0) { if(ExpOffer[playerid] < 999) { if(GetPlayerMoney(playerid) > ExpPrice[playerid]) { if(IsPlayerConnected(ExpOffer[playerid])) { GetPlayerName(ExpOffer[playerid], giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "Вы успешно продали респекты."); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "У вас успешно куплены респекты."); SendClientMessage(ExpOffer[playerid], COLOR_LIGHTBLUE, string); GivePlayerMoney(playerid, -ExpPrice[playerid]); GivePlayerMoney(ExpOffer[playerid],ExpPrice[playerid]); PlayerInfo[playerid][pExp] += ExpKolvo[playerid]; PlayerInfo[ExpOffer[playerid]][pExp] -= ExpKolvo[playerid]; ExpOffer[playerid] = 999; ExpPrice[playerid] = 0; ExpKolvo[playerid] = 0; return 1; } return 1; } else { SendClientMessage(playerid, COLOR_GREY, "У вас не хватает денег!"); return 1; } }[/pwn]Добавлено (27.03.2013, 19:02) --------------------------------------------- Сам античит такой NormMoney[playerid] = 2; AntiMoney[playerid] = AntiMoney[playerid] - ExpPrice[playerid]; GivePlayerMoney(playerid, -ExpKolvo[playerid]); Добавлено (27.03.2013, 19:34) --------------------------------------------- Я сделал. Но сейчас у игрока который покупает у меня их деньги отнимаются а мне они не прибовляются.
|
| |
|
|
| Life-Story | Дата: Среда, 27.03.2013, 20:34 | Сообщение # 92 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 93
Награды: 3
Репутация: 89
Замечания: 20%
Статус: 
| помогите пожалуйста,при конекте 3-4 игрока на сервер происходит краш что это может быть?
|
| |
|
|
| Mr_Fust | Дата: Среда, 27.03.2013, 20:52 | Сообщение # 93 |
|
Постоялец
Группа:
I'm V.I.P.
Сообщений: 445
Награды: 4
Город: Sorry, I don't know
Замечания: 0%
Статус: 
| Краш сервера, краш последующих вошедших игроков, краш уже имеющихся игроков?
Я на СРК уже...
|
| |
|
|
| Life-Story | Дата: Четверг, 28.03.2013, 00:56 | Сообщение # 94 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 93
Награды: 3
Репутация: 89
Замечания: 20%
Статус: 
| Цитата (Mr_Fust) Краш сервера, краш последующих вошедших игроков, краш уже имеющихся игроков? Краш последующих вошедших игоков ,то есть 2-3 заходят норм следющих начинает крашитьДобавлено (28.03.2013, 00:56) --------------------------------------------- Краш выяснил это из-за Intro TextDraw кто поможет вырезать или испарвить,отблагодарю...
Сообщение отредактировал Life-Story - Четверг, 28.03.2013, 00:01 |
| |
|
|
| Geryy | Дата: Четверг, 28.03.2013, 03:16 | Сообщение # 95 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата (Life-Story) Краш выяснил это из-за Intro TextDraw кто поможет вырезать или испарвить,отблагодарю... Ну выкладывай сервер, посмотрим.
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| Life-Story | Дата: Четверг, 28.03.2013, 06:17 | Сообщение # 96 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 93
Награды: 3
Репутация: 89
Замечания: 20%
Статус: 
| Цитата (Geryy) Ну выкладывай сервер, посмотрим.
Вот
вот тут можно проверить: [cut noguest=не реклама]91.105.232.68:7802[/cut]
P.s. Крашит рандомно попробывал 3 раза подряд зарегаться все норм,но знакомые говарят на выборе скина кикает или крашит при спавне...
Сообщение отредактировал Life-Story - Четверг, 28.03.2013, 09:36 |
| |
|
|
| mkr_ | Дата: Четверг, 28.03.2013, 12:09 | Сообщение # 97 |
|
Новенький
Группа:
Пользователи
Сообщений: 51
Награды: 0
Репутация: 1
Замечания: 0%
Статус: 
| Здраствуйте , нужна помощь , хочу сделать так , чтобы можно было заходить в RC автомобили , жду ответа , заранее спасибо =)
http://makarons-house.do.am/osk/votdebil.gif
|
| |
|
|
| uDenX | Дата: Четверг, 28.03.2013, 12:24 | Сообщение # 98 |
|
Группа:
Media-ProGroup
Сообщений: 1193
Награды: 23
Город: Салават
Репутация: 1301
Замечания: 0%
Статус: 
| mkr_, Добавь ко всем define: [pwn]#define RC_BANDIT 441 #define RC_BARON 464 #define RC_GOBLIN 501 #define RC_RAIDER 465 #define RC_TANK 564 #define RC_CAM 594 #define D_TRAM 449 [/pwn] В паблик OnPlayerKeyStateChange: [pwn] if(newkeys == KEY_SECONDARY_ATTACK) { if(!IsPlayerInAnyVehicle(playerid)) { new Float:x, Float:y, Float:z, vehicle; GetPlayerPos(playerid, x, y, z ); GetVehicleWithinDistance(playerid, x, y, z, 20.0, vehicle); if(IsVehicleRcTram(vehicle)) { PutPlayerInVehicle(playerid, vehicle, 0); } } else { new VID = GetPlayerVehicleID(playerid); if(IsVehicleRcTram(VID) || GetVehicleModel(VID) == RC_CAM) { if(GetVehicleModel(VID) != D_TRAM) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); SetPlayerPos(playerid, x+0.5, y, z+1.0); } } } } } GetVehicleWithinDistance( playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh) { for(new i = 1; i < MAX_VEHICLES; i++) { if(GetVehicleModel(i) > 0) { if(GetPlayerVehicleID(playerid) != i ) { new Float:x, Float:y, Float:z; new Float:x2, Float:y2, Float:z2; GetVehiclePos(i, x, y, z); x2 = x1 - x; y2 = y1 - y; z2 = z1 - z; new Float:vDist = (x2*x2+y2*y2+z2*z2); if( vDist < dist) { veh = i; dist = vDist; } } } } } IsVehicleRcTram( vehicleid ) { new model = GetVehicleModel(vehicleid); switch(model) { case D_TRAM, RC_GOBLIN, RC_BARON, RC_BANDIT, RC_RAIDER, RC_TANK: return 1; default: return 0; } [/pwn] [srt]Код не мой[/srt]
|
| |
|
|
| Life-Story | Дата: Четверг, 28.03.2013, 12:55 | Сообщение # 99 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 93
Награды: 3
Репутация: 89
Замечания: 20%
Статус: 
| del
Сообщение отредактировал Life-Story - Четверг, 28.03.2013, 13:53 |
| |
|
|
| [[[WampiR]]] | Дата: Четверг, 28.03.2013, 17:12 | Сообщение # 100 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Кто знает как сделать чтобы игрок когда пишет определенную команду для телепорта его замораживало там? Вот сама комманда: [pwn] if(strcmp(cmd, "/mp", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pAdmin] >= 0) { if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, 2737.3770,-1760.3307,44.1383); TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else { SetPlayerPos(playerid, 2737.3770,-1760.3307,44.1383); } SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Вы в зоне ожидания. Ожидайте телепортации!"); SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; } else { SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать эту команду!"); } } return 1; }[/pwn] Как сделать чтобы после того как он ее напишет его телепортировало и заморозило?
|
| |
|
|
| Borog | Дата: Четверг, 28.03.2013, 18:01 | Сообщение # 101 |
|
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1362
Награды: 43
Город: Москва
Репутация: 1249
Замечания: 20%
Статус: 
| [[[WampiR]]], перед SetPlayerInterior(playerid,0); вставь TogglePlayerControllable(playerid, false);
Silver Break http://s-break.ru/ http://vk.com/sbreak
|
| |
|
|
| [[[WampiR]]] | Дата: Четверг, 28.03.2013, 18:30 | Сообщение # 102 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Borog, Спасибо. А вот чтобы размораживало при еще одной команде что надо сделать?
|
| |
|
|
| Weddew | Дата: Четверг, 28.03.2013, 18:55 | Сообщение # 103 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) А вот чтобы размораживало при еще одной команде что надо сделать? Не трудно догадаться: [pwn]TogglePlayerControllable(playerid, true);[/pwn]
www.weddew-shop.ru
|
| |
|
|
| [[[WampiR]]] | Дата: Четверг, 28.03.2013, 19:10 | Сообщение # 104 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус: 
| Weddew, Незнаешь как сделать такой код? Вот когда игроки пишут /mp их телепортирует в определенное место и замораживает. Потом когда я пишу /mptp и токо тех игроков которые писали /mp телепортирует ко мне. И когда я написал это /mptp другие уже не могут написать /mp им пишут мероприятие уже началось. Вот такой код трудно сделать?
|
| |
|
|
| Weddew | Дата: Четверг, 28.03.2013, 19:48 | Сообщение # 105 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (|||WampiR|||) Weddew, Незнаешь как сделать такой код? Вот когда игроки пишут /mp их телепортирует в определенное место и замораживает. Потом когда я пишу /mptp и токо тех игроков которые писали /mp телепортирует ко мне. И когда я написал это /mptp другие уже не могут написать /mp им пишут мероприятие уже началось. Вот такой код трудно сделать? Не трудно. Объявляете переменную, которая будет отвечать за начало мероприятия и массив со значениями участия для игроков. Описываете команду начала и конца мероприятия, а также команду для принятия участия в этом мероприятии. Проверяя значения этой переменной и делайте различные манипуляции. Все очень просто.
www.weddew-shop.ru
Сообщение отредактировал Weddew - Четверг, 28.03.2013, 19:49 |
| |
|
|
|
 |
|
 | |
| |
|