 |
|
 |
|
|
|
Последние Файлы 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 |
| |
|
|
| FiLE | Дата: Понедельник, 02.09.2013, 17:18 | Сообщение # 1531 |
|
Группа:
Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус: 
| кто знает иды всех обьектов, которые не имеют столкновения с игроком , машинами...?
|
| |
|
|
| artemganin1999 | Дата: Вторник, 03.09.2013, 18:53 | Сообщение # 1532 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| а как нибудь возможно узнать коодинаты начального экрана? когда только заходишь на сервер, набирал /save но там координаты где то В ресре LCN
|
| |
|
|
| Weddew | Дата: Среда, 04.09.2013, 01:44 | Сообщение # 1533 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| artemganin1999, Попробуйте воспользоваться функцией GetPlayerCameraPos в OnPlayerConnect. Команда /save сохраняет только координаты игрока
www.weddew-shop.ru
Сообщение отредактировал Weddew - Среда, 04.09.2013, 02:03 |
| |
|
|
| Geryy | Дата: Среда, 04.09.2013, 02:35 | Сообщение # 1534 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата (Weddew) Попробуйте воспользоваться функцией GetPlayerCameraPos в OnPlayerConnect. Команда /save сохраняет только координаты игрока При коннекте он получит значение: GetPlayerCameraPos = 0.000000,0.000000,0.000000 GetPlayerCameraFrontVector = 0.000000,0.000000,0.000000
Цитата (artemganin1999) а как нибудь возможно узнать коодинаты начального экрана? когда только заходишь на сервер, набирал /save но там координаты где то В ресре LCN
screen_cam_pos_x 1093.0 screen_cam_pos_y -2036.0 screen_cam_pos_z 90.0 screen_cam_look_at_x 384.0 screen_cam_look_at_y -1557.0 screen_cam_look_at_z 20.0
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| artemganin1999 | Дата: Среда, 04.09.2013, 13:32 | Сообщение # 1535 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Спасибо, Вот у меня есть на сервере при заходе музыка, я при спавне я поставил таймер чтобы через 10 сек она выключалась, и хочу сделать чтобы была команда /go чтобы игрок ее набирал и у нее снималось ограничение , пробывал так, но таймер не изменяется [pwn]if (strcmp(cmdtext, "/go", true) == 0) { SendClientMessage(playerid, COLOR_GRAD1, "Âû óáðàëè îãðàíè÷åíèå â 10 ñåê."); SetTimerEx("kyky", 900000, false, "i", playerid); return 1; }[/pwn]
|
| |
|
|
| Geryy | Дата: Среда, 04.09.2013, 14:53 | Сообщение # 1536 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Сохраняй свой таймер в переменную для каждого игрока. Потом в команде, где нужно снять ограничение убивай таймер. [pwn] //В начало new KillTimeForMusic[MAX_PLAYERS];
//Основной таймер с музыкой: KillTimeForMusic[playerid] = SetTimerEx("kyky", 15000, 0, "i", playerid);
//Команда: if (strcmp(cmdtext, "/go", true) == 0) { SendClientMessage(playerid, COLOR_GRAD1, "Вы убрали ограничение в 15 сек.."); KillTimer(KillTimeForMusic[playerid]); return 1; }[/pwn]
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Сообщение отредактировал Geryy - Среда, 04.09.2013, 15:04 |
| |
|
|
| DiSE | Дата: Среда, 04.09.2013, 21:34 | Сообщение # 1537 |
|
Группа:
I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус: 
| Покажите пожалуйста простейший скрипт гонки. Суть такова. Создаю первый чекпоинт, когда наезжаю на него появляется второй. После приезда на второй как сделать третий и следующие чекпоинты?
|
| |
|
|
| Saibot | Дата: Среда, 04.09.2013, 23:18 | Сообщение # 1538 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус: 
| Цитата (DiSE) Покажите пожалуйста простейший скрипт гонки. Суть такова. Создаю первый чекпоинт, когда наезжаю на него появляется второй. После приезда на второй как сделать третий и следующие чекпоинты? [cut noguest=Ну вот что-то типа этого.][pwn]new StartCar[MAX_PLAYERS]; new Start[MAX_PLAYERS]; new pStartCar[MAX_PLAYERS];
enum { CHECKPOINT_1, CHECKPOINT_2, CHECKPOINT_3, CHECKPOINT_4, CHECKPOINT_5, CHECKPOINT_6, CHECKPOINT_7, CHECKPOINT_8, CHECKPOINT_9, CHECKPOINT_10, } //public OnPlayerEnterCheckpoint(playerid) if(StartCar[playerid] == 1) { switch(pStartCar[playerid]) { case CHECKPOINT_1: { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_2; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } case CHECKPOINT_3: { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_4; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } case CHECKPOINT_4: { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_5; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } case CHECKPOINT_5: { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_6; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } case CHECKPOINT_6: { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_7; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } case CHECKPOINT_7: { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_8; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } case CHECKPOINT_8: { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_9; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } case CHECKPOINT_9: { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_10; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } case CHECKPOINT_10: { DisablePlayerCheckpoint((playerid); SendClientMessage(playerid, COLOR_GREEN, "Финиш"); StartCar[playerid] = 0; Start[playerid] = 0; } } }
//public OnPlayerCommandText(playerid, cmdtext[]) if(strcmp(cmd, "/go", true) == 0) { if(IsPlayerConnected(playerid)) { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_1; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } return 1; }[/pwn][/cut]
|
| |
|
|
| DiSE | Дата: Четверг, 05.09.2013, 12:54 | Сообщение # 1539 |
|
Группа:
I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус: 
| Saibot, [pwn]case CHECKPOINT_1: { Start[playerid]++; pStartCar[playerid] = CHECKPOINT_2; SetPlayerCheckpoint(playerid,Кординаты, 5.0); } [/pwn]
Сам посылаешь на 2 чекпоинт, а следующий у тебя третий чекпоинт Но а так спасибо. Разобрался
|
| |
|
|
| DiSE | Дата: Четверг, 05.09.2013, 20:48 | Сообщение # 1540 |
|
Группа:
I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус: 
| Как машине проколоть колеса скриптово?
|
| |
|
|
| Saibot | Дата: Четверг, 05.09.2013, 21:17 | Сообщение # 1541 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус: 
| Цитата (DiSE) Сам посылаешь на 2 чекпоинт, а следующий у тебя третий чекпоинт [off]Лоханулся [/off]
|
| |
|
|
| slavonchikamene | Дата: Пятница, 06.09.2013, 00:28 | Сообщение # 1542 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 112
Награды: 0
Город: Харьков
Репутация: -4
Замечания: 0%
Статус: 
| Как исправить эту ошибку Код [23:24:37] [debug] Run time error 4: "Array index out of bounds" [23:24:37] [debug] Accessing element at index 200 past array upper bound 199 [23:24:37] [debug] AMX backtrace: нашел её через плагин crashdetect из-за этой ошибки сервер все время падает.
http://s019.radikal.ru/i607/1203/a3/f82e4282ef1e.gif
|
| |
|
|
| Geryy | Дата: Пятница, 06.09.2013, 01:39 | Сообщение # 1543 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата (DiSE) Как машине проколоть колеса скриптово? http://wiki.sa-mp.com/wiki/OnVehicleDamageStatusUpdate
[pwn] new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); tires = encode_tires(1, 1, 1, 1); UpdateVehicleDamageStatus(carid, panels, doors, lights, tires);
//----------------------------------------------------------------------- encode_tires(tires1, tires2, tires3, tires4) {
return tires1 | (tires2 << 1) | (tires3 << 2) | (tires4 << 3);
} [/pwn]
Добавлено (06.09.2013, 01:39) --------------------------------------------- Цитата (slavonchikamene) нашел её через плагин crashdetect из-за этой ошибки сервер все время падает.
Ошибка указывает на переполнение массива, т.е. где-то по коду идет обращение к индексу в массиве, значение которого больше самого массива.
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Сообщение отредактировал Geryy - Пятница, 06.09.2013, 02:02 |
| |
|
|
| artemganin1999 | Дата: Суббота, 07.09.2013, 12:27 | Сообщение # 1544 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Помогите плз, [pwn] new vehicle = GetPlayerVehicleID(i); if(IsPlayerInAnyVehicle(i)) { new carid = GetPlayerVehicleID(i); if(!BikeVeh(carid) || !PlaneVeh(carid) || !BoatVeh(carid)) { if(GetPlayerState(i) == PLAYER_STATE_DRIVER) { if(Gas[vehicle] > 0) { new Float:x,Float:y,Float:z; GetVehicleVelocity(vehicle,x,y,z); new Float:speed = floatabs(x)+floatabs(y)+floatabs(z); if(!BikeVeh(vehicle) && if(!PlaneVeh(vehicle) && speed != 0) { Gas[vehicle]-= 1; } } else { if(EngineCar[vehicle] == 1) { new engine,lights,alarm,doors,bonnet,boot,objective; new vid = GetPlayerVehicleID(i); SendClientMessage(i,COLOR_LIGHTRED," ýòîé ìàøèíå çàêîí÷èëñÿ áåíçèí."); GameTextForPlayer(i, "~w~B “O† –AŽ…ìE ìE €E숅ìA", 10000, 3); EngineCar[vid] = 0; GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(vid,0,0,alarm,doors,bonnet,boot,objective); } } } } } } return true; }[/pwn] я хотел сделать чтобы у самолетов тоже не отнималось бензин,выше код мне выдало Код error 029: invalid expression, assumed zero error 029: invalid expression, assumed zero до это строка Код if(!BikeVeh(vehicle) && if(!PlaneVeh(vehicle) && speed != 0) была такой Код if(!BikeVeh(vehicle) && speed != 0)
|
| |
|
|
| DiSE | Дата: Суббота, 07.09.2013, 12:36 | Сообщение # 1545 |
|
Группа:
I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус: 
| artemganin1999, [pwn]if(!BikeVeh(vehicle) && !PlaneVeh(vehicle) && speed != 0)[/pwn]
|
| |
|
|
|
 |
|
 | |
| |
|