как создать пикап
| |
Slavka8063 | Дата: Среда, 16.07.2014, 18:14 | Сообщение # 1 |
.::Offline::.
Разбойник
Сообщений: 48
[ -1 ]
Награды: 0
Статус
отсутствует
| Помогите создать в павно вот такой пикап http://pixs.ru/showimage/1png_3480907_13005220.png и чтоб как ты сразу входиш на него и оно оьобразило
вот такое окно покупки, для игрока http://pixs.ru/showimage/2png_4292321_13005232.png
|
|
| |
AlexPPPP | Дата: Среда, 16.07.2014, 18:30 | Сообщение # 2 |
.::Offline::.
Гангстер
Сообщений: 179
[ 21 ]
Награды: 19
Статус
отсутствует
| У чекпоинтов есть разные функции к примеру такие как:
a)SetPlayerCheckpoint(playerid,Float:x,Float:y,Flo at:z,Float:size); - Создает маркер на установленном месте, и нужного размера. Параметры: playerid - ID игрока, для которого создается чекпоинт Float:x - Х-координата Float:y - Y-координата Float:z - Z-координата Float:size - Размер чекпоинта. (По радиусу) б)IsPlayerInCheckpoint(playerid) - проверяет, находится ли игрок в чекпоинте Параметры: playerid - ID игрока. в)DisablePlayerCheckpoint(playerid); - Функция прячет чекпоинт и дезактивирует его. Параметры: playerid - ID игрока, для которого чекпоинт должен исчезнуть. Колбэки: OnPlayerEnterCheckpoint(playerid) - срабатывает когда игрок заходит чекпоинт. OnPlayerLeaveCheckpoint(playerid) - срабатывает в момент выхода игрока из чекпоинта Примеры использования Чекпоинта: Код public OnPlayerSpawn(playerid) { SetPlayerCheckpoint(playerid,1232.122,1235.552,10.223423,3.0);// Координаты взяты произвольно к примеру примера. return 1; } Код public OnPlayerEnterCheckpoint(playerid) { GivePlayerMoney(playerid,500); SendClientMessage(playerid,0x00FF00FF,"-! Чувак, вот тебе 500$"); DisablePlayerCheckpoint(playerid);// Если мы хотим, чтобы чекпоинт исчез, после того как он задействует, то ставим функцию return 1; } Как вы уже поняли при заходе на чекпоинт, игроку выдаст деньги и чекпоинт исчезнет. Но это не всё мы можем сделать так чтобы чекпоинт выполнил еще какую-нибудь функцию Сейчас разберем следующий скрипт: Код new pCheckpoint[MAX_PLAYERS];// Массив, который будет содержать какое действие должен выполнять действующий чекпоинт. enum // Воспользуемся конструкцей enum для создания состояния чекпонта, т.е. действующий чекпоинт должен давать деньги, или здоровье. { CHECKPOINT_MONEY, CHECKPOINT_HEALTH } public OnPlayerCommandText(playerid,cmdtext[]) // для данного примера, чекпоинты будут вызываться командой { if(!strcmp(cmdtext,"/checkmoney",true)) { SetPlayerCheckpoint(playerid,826.5231,-1352.3420,13.5350,3.0);// Координаты взяты произвольно, только для примера. pCheckpoint[playerid]=CHECKPOINT_MONEY;// Т.е. мы скрипту даем понять, что чекпоинт должен давать деньги return 1; } if(!strcmp(cmdtext,"/checkhealth",true)) { SetPlayerCheckpoint(playerid,826.5231,-1352.3420,13.5350,3.0);// Координаты взяты из головы, только для примера. pCheckpoint[playerid]=CHECKPOINT_HEALTH;// Т.е. мы скрипту даем понять, что чекпоинт должен давать здоровье return 1; } return 1; }
public OnPlayerEnterCheckpoint(playerid) { switch(pCheckpoint[playerid]) { case CHECKPOINT_MONEY: { GivePlayerMoney(playerid,500); SendClientMessage(playerid,0x00FF00FF,"-! Чувак, вот тебе 500$"); DisablePlayerCheckpoint(playerid);// Если мы хотим, чтобы чекпоинт после этого исчез, то вставляем эту функцию. return 1; } case CHECKPOINT_HEALTH: { new Float:health; GetPlayerHealth(playerid,health); SetPlayerHealth(playerid,health+10.0); SendClientMessage(playerid,0x00FF00FF,"-! Чувак, вот тебе не много здоровья"); DisablePlayerCheckpoint(playerid);// Если мы хотим, чтобы чекпоинт после этого исчез, то вставляем эту функцию. return 1; } } return 1; } Но опять же, скрипт будет действовать, только в момент захода игрока на чекпоинт. Сейчас мы попробуем сделать скрипт, который будет давать либо здоровье либо деньги на выбор, по желанию игрока. Код forward inCheckpoint(); //Для создания public'a new pCheckpoint[MAX_PLAYERS];// Массив, который будет содержать какое действие должен выполнять действующий чекпоинт. enum // Воспользуемся конструкцей enum для создания состояния чекпонта, т.е. действующий чекпоинт должен давать деньги, или здоровье к примеру { CHECKPOINT_MONEY, CHECKPOINT_HEALTH } public OnGameModeInit() { SetTimer("inCheckpoint",10000,true);// 1 раз в 10 секунд таймер будет выполняться return 1; } public OnPlayerCommandText(playerid,cmdtext[]) // для данного примера, чекпоинты будут вызываться командой { if(!strcmp(cmdtext,"/checkmoney",true)) { SetPlayerCheckpoint(playerid,826.5231,-1352.3420,13.5350,3.0);// Координаты взяты произвольно, только для примера. pCheckpoint[playerid]=CHECKPOINT_MONEY;// Т.е. мы скрипту даем понять, что чекпоинт должен давать деньги return 1; } if(!strcmp(cmdtext,"/checkhealth",true)) { SetPlayerCheckpoint(playerid,826.5231,-1352.3420,13.5350,3.0);// Координаты взяты из головы, только для примера. pCheckpoint[playerid]=CHECKPOINT_HEALTH;// Т.е. мы скрипту даем понять, что чекпоинт должен давать здоровье return 1; } return 1; } public inCheckpoint() Вот мы и разобрали чекпоинты для игроков. Скажи те ведь легко? А теперь рассмотрим гоночные чекпоинты. Функции:
а)SetPlayerRaceCheckpoint(playerid, type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size) - Создает гоночный чекпоинт Парамерты: playerid - ID для которого чекпоинт длжен появиться type - Тип чекпоинта.0-Обычный, 1-Финишный, 2-Пустой чекпоинт(без стрелок внутри), 3-Воздушный обычный, 4-Воздушный финишный Float:x - X-Координата Float:y - Y-Координата Float:z - Z-Координата Float:nextx - X-Координата следующего чекпоинта, т.е. куда будет показываться стрелка. Float:nexty - Y-Координата следующего чекпоинта, т.е. куда будет показываться стрелка. Float:nextz - Z-Координата следующего чекпоинта, т.е. куда будет показываться стрелка. Float:size - размер(Диаметр чекпоинта) б)DisablePlayerRaceCheckpoint(playerid); - деактивирует и скрывает гоночный чекпоинт Колбэки: в)IsPlayerInRaceCheckpoint(playerid) - Проверяет, находится ли игрок в гоночном чекпоинте а)OnPlayerEnterRaceCheckpoint(playerid) - Срабатывает когда игрок входит в гоночный чекпоинт б)OnPlayerLeaveRaceCheckpoint(playerid) - Срабатывает когда игрок покидает гоночный чекпоинт Код public OnPlayerSpawn(playerid) { SetPlayerRaceCheckpoint(playerid,2,1233.1222,1456.7442,15.1244,0.0,0.0,0.0,5.0);// Координаты взяты из головы. Координаты следующего чекпоинта 0.0, потому что тип чекпоинта 2, стрелки все равно не будет. return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { SendClientMessage(playerid,0xff0000ff,"Работает."); DisablePlayerRaceCheckpoint(playerid); Выключаем чекпоинт return 1; } Данный скрипт будет выдавать текст ,"Работает.", для того чтобы убедиться что мы все сделали правильно. Сейчас мы попробуем написать простеший скрипт гонки: Код new race[MAX_PLAYERS];// Массив будет отслеживать на каком этапе игрок. new Float:Race[3][6]= { {12.1234,15.5112,20.2222,15.2122,9.2322,16.2322}, {15.2122,9.2322,16.2322,18.1233,7.1222,14.0002}, {18.1233,7.1222,14.0002,0.0,0.0,0.0} };// Массив с этапами гонки, в данном примере всего 3 этапа(3 чекпинта), но вы можете сделать больше по своему желанию public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp(cmdtext,"/racestart",true)) //активируем по команде { race[playerid]=0; SetPlayerRaceCheckpoint(playerid,2,Race[race[playerid]][0],Race[race[ playerid]][1],Race[race[playerid]][2],0.0,0.0,0.0,5.0);// Координаты следющего чекпоинта 0.0 потому что тип чекпонита 2. return 1; } return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { race[playerid]++; if(race[playerid]<sizeof(Race))SetPlayerRaceCheckpoint(playerid,0,Race[race[playerid] ][0],Race[race[playerid]][1],Race[race[playerid]][ 2],Race[race[playerid]][3],Race[race[playerid]][4] ,Race[race[playerid]][5],5.0);// А тут присутствуют координаты следующего чекпоинта, потому что тип чекпоинта 0. else if(race[playerid]==sizeof(Race)) DisablePlayerRaceCheckpoint(playerid);//Выключаем чекпоинт
return 1; } Автор статьи не я,если будут проблемы отпиши
Релизы [GM] Far EastRolePlay[Repack LessGlobal] S.T.A.L.K.E.R New.pwn 45% ( мод заливать не буду )
Сообщение отредактировал
AlexPPPP - Среда, 16.07.2014, 18:39 |
|
| |
Slavka8063 | Дата: Четверг, 17.07.2014, 00:13 | Сообщение # 3 |
.::Offline::.
Разбойник
Сообщений: 48
[ -1 ]
Награды: 0
Статус
отсутствует
| Цитата AlexPPPP ( ) У чекпоинтов есть разные функции к примеру такие как:
a)SetPlayerCheckpoint(playerid,Float:x,Float:y,Flo at:z,Float:size); - Создает маркер на установленном месте, и нужного размера. Параметры: playerid - ID игрока, для которого создается чекпоинт Float:x - Х-координата Float:y - Y-координата Float:z - Z-координата Float:size - Размер чекпоинта. (По радиусу) б)IsPlayerInCheckpoint(playerid) - проверяет, находится ли игрок в чекпоинте Параметры: playerid - ID игрока. в)DisablePlayerCheckpoint(playerid); - Функция прячет чекпоинт и дезактивирует его. Параметры: playerid - ID игрока, для которого чекпоинт должен исчезнуть. Колбэки: OnPlayerEnterCheckpoint(playerid) - срабатывает когда игрок заходит чекпоинт. OnPlayerLeaveCheckpoint(playerid) - срабатывает в момент выхода игрока из чекпоинта Примеры использования Чекпоинта: Код
public OnPlayerSpawn(playerid) { SetPlayerCheckpoint(playerid,1232.122,1235.552,10.223423,3.0);// Координаты взяты произвольно к примеру примера. return 1; }
Код
public OnPlayerEnterCheckpoint(playerid) { GivePlayerMoney(playerid,500); SendClientMessage(playerid,0x00FF00FF,"-! Чувак, вот тебе 500$"); DisablePlayerCheckpoint(playerid);// Если мы хотим, чтобы чекпоинт исчез, после того как он задействует, то ставим функцию return 1; }
Как вы уже поняли при заходе на чекпоинт, игроку выдаст деньги и чекпоинт исчезнет. Но это не всё мы можем сделать так чтобы чекпоинт выполнил еще какую-нибудь функцию Сейчас разберем следующий скрипт: Код
new pCheckpoint[MAX_PLAYERS];// Массив, который будет содержать какое действие должен выполнять действующий чекпоинт. enum // Воспользуемся конструкцей enum для создания состояния чекпонта, т.е. действующий чекпоинт должен давать деньги, или здоровье. { CHECKPOINT_MONEY, CHECKPOINT_HEALTH } public OnPlayerCommandText(playerid,cmdtext[]) // для данного примера, чекпоинты будут вызываться командой { if(!strcmp(cmdtext,"/checkmoney",true)) { SetPlayerCheckpoint(playerid,826.5231,-1352.3420,13.5350,3.0);// Координаты взяты произвольно, только для примера. pCheckpoint[playerid]=CHECKPOINT_MONEY;// Т.е. мы скрипту даем понять, что чекпоинт должен давать деньги return 1; } if(!strcmp(cmdtext,"/checkhealth",true)) { SetPlayerCheckpoint(playerid,826.5231,-1352.3420,13.5350,3.0);// Координаты взяты из головы, только для примера. pCheckpoint[playerid]=CHECKPOINT_HEALTH;// Т.е. мы скрипту даем понять, что чекпоинт должен давать здоровье return 1; } return 1; }
public OnPlayerEnterCheckpoint(playerid) { switch(pCheckpoint[playerid]) { case CHECKPOINT_MONEY: { GivePlayerMoney(playerid,500); SendClientMessage(playerid,0x00FF00FF,"-! Чувак, вот тебе 500$"); DisablePlayerCheckpoint(playerid);// Если мы хотим, чтобы чекпоинт после этого исчез, то вставляем эту функцию. return 1; } case CHECKPOINT_HEALTH: { new Float:health; GetPlayerHealth(playerid,health); SetPlayerHealth(playerid,health+10.0); SendClientMessage(playerid,0x00FF00FF,"-! Чувак, вот тебе не много здоровья"); DisablePlayerCheckpoint(playerid);// Если мы хотим, чтобы чекпоинт после этого исчез, то вставляем эту функцию. return 1; } } return 1; }
Но опять же, скрипт будет действовать, только в момент захода игрока на чекпоинт. Сейчас мы попробуем сделать скрипт, который будет давать либо здоровье либо деньги на выбор, по желанию игрока. Код
forward inCheckpoint(); //Для создания public'a new pCheckpoint[MAX_PLAYERS];// Массив, который будет содержать какое действие должен выполнять действующий чекпоинт. enum // Воспользуемся конструкцей enum для создания состояния чекпонта, т.е. действующий чекпоинт должен давать деньги, или здоровье к примеру { CHECKPOINT_MONEY, CHECKPOINT_HEALTH } public OnGameModeInit() { SetTimer("inCheckpoint",10000,true);// 1 раз в 10 секунд таймер будет выполняться return 1; } public OnPlayerCommandText(playerid,cmdtext[]) // для данного примера, чекпоинты будут вызываться командой { if(!strcmp(cmdtext,"/checkmoney",true)) { SetPlayerCheckpoint(playerid,826.5231,-1352.3420,13.5350,3.0);// Координаты взяты произвольно, только для примера. pCheckpoint[playerid]=CHECKPOINT_MONEY;// Т.е. мы скрипту даем понять, что чекпоинт должен давать деньги return 1; } if(!strcmp(cmdtext,"/checkhealth",true)) { SetPlayerCheckpoint(playerid,826.5231,-1352.3420,13.5350,3.0);// Координаты взяты из головы, только для примера. pCheckpoint[playerid]=CHECKPOINT_HEALTH;// Т.е. мы скрипту даем понять, что чекпоинт должен давать здоровье return 1; } return 1; } public inCheckpoint()
Вот мы и разобрали чекпоинты для игроков. Скажи те ведь легко? А теперь рассмотрим гоночные чекпоинты. Функции:
а)SetPlayerRaceCheckpoint(playerid, type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size) - Создает гоночный чекпоинт Парамерты: playerid - ID для которого чекпоинт длжен появиться type - Тип чекпоинта.0-Обычный, 1-Финишный, 2-Пустой чекпоинт(без стрелок внутри), 3-Воздушный обычный, 4-Воздушный финишный Float:x - X-Координата Float:y - Y-Координата Float:z - Z-Координата Float:nextx - X-Координата следующего чекпоинта, т.е. куда будет показываться стрелка. Float:nexty - Y-Координата следующего чекпоинта, т.е. куда будет показываться стрелка. Float:nextz - Z-Координата следующего чекпоинта, т.е. куда будет показываться стрелка. Float:size - размер(Диаметр чекпоинта) б)DisablePlayerRaceCheckpoint(playerid); - деактивирует и скрывает гоночный чекпоинт Колбэки: в)IsPlayerInRaceCheckpoint(playerid) - Проверяет, находится ли игрок в гоночном чекпоинте а)OnPlayerEnterRaceCheckpoint(playerid) - Срабатывает когда игрок входит в гоночный чекпоинт б)OnPlayerLeaveRaceCheckpoint(playerid) - Срабатывает когда игрок покидает гоночный чекпоинт
Код
public OnPlayerSpawn(playerid) { SetPlayerRaceCheckpoint(playerid,2,1233.1222,1456.7442,15.1244,0.0,0.0,0.0,5.0);// Координаты взяты из головы. Координаты следующего чекпоинта 0.0, потому что тип чекпоинта 2, стрелки все равно не будет. return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { SendClientMessage(playerid,0xff0000ff,"Работает."); DisablePlayerRaceCheckpoint(playerid); Выключаем чекпоинт return 1; }
Данный скрипт будет выдавать текст ,"Работает.", для того чтобы убедиться что мы все сделали правильно. Сейчас мы попробуем написать простеший скрипт гонки: Код
new race[MAX_PLAYERS];// Массив будет отслеживать на каком этапе игрок. new Float:Race[3][6]= { {12.1234,15.5112,20.2222,15.2122,9.2322,16.2322}, {15.2122,9.2322,16.2322,18.1233,7.1222,14.0002}, {18.1233,7.1222,14.0002,0.0,0.0,0.0} };// Массив с этапами гонки, в данном примере всего 3 этапа(3 чекпинта), но вы можете сделать больше по своему желанию public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp(cmdtext,"/racestart",true)) //активируем по команде { race[playerid]=0; SetPlayerRaceCheckpoint(playerid,2,Race[race[playerid]][0],Race[race[ playerid]][1],Race[race[playerid]][2],0.0,0.0,0.0,5.0);// Координаты следющего чекпоинта 0.0 потому что тип чекпонита 2. return 1; } return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { race[playerid]++; if(race[playerid]<sizeof(Race))SetPlayerRaceCheckpoint(playerid,0,Race[race[playerid] ][0],Race[race[playerid]][1],Race[race[playerid]][ 2],Race[race[playerid]][3],Race[race[playerid]][4] ,Race[race[playerid]][5],5.0);// А тут присутствуют координаты следующего чекпоинта, потому что тип чекпоинта 0. else if(race[playerid]==sizeof(Race)) DisablePlayerRaceCheckpoint(playerid);//Выключаем чекпоинт
return 1; }
Автор статьи не я,если будут проблемы отпиши
Ничего у меня не получается, не понял я так как его создат. НЕ понимаюсь вот скайп мой добався плиз Slavik.Slavko объясни пожалуста очень нужно
|
|
| |
[S]ilverbac[k] | Дата: Четверг, 17.07.2014, 00:36 | Сообщение # 4 |
.::Offline::.
Пахан
Сообщений: 723
[ 86 ]
Награды: 17
Статус
отсутствует
| Более понятнее объяснить уже нельзя, сначала с пикапами попрактикуйся.
Если так срочно нужно, завтра залью видео с подробным объяснением что к чему
[FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
|
|
| |
Slavka8063 | Дата: Четверг, 17.07.2014, 01:32 | Сообщение # 5 |
.::Offline::.
Разбойник
Сообщений: 48
[ -1 ]
Награды: 0
Статус
отсутствует
| Цитата [S]ilverbac[k] ( ) Более понятнее объяснить уже нельзя, сначала с пикапами попрактикуйся.
Если так срочно нужно, завтра залью видео с подробным объяснением что к чему
Та пикапы я уже научился и тепер хочу чекпоинт в 24\7 чтоб если на него ты заходил и оно сразу отобразило оконо покупки чего либо
|
|
| |
AlexPPPP | Дата: Четверг, 17.07.2014, 06:38 | Сообщение # 6 |
.::Offline::.
Гангстер
Сообщений: 179
[ 21 ]
Награды: 19
Статус
отсутствует
| Цитата Slavka8063 ( ) НЕ понимаюсь вот скайп мой добався плиз Slavik.Slavko Добавляй
Релизы [GM] Far EastRolePlay[Repack LessGlobal] S.T.A.L.K.E.R New.pwn 45% ( мод заливать не буду )
Сообщение отредактировал
AlexPPPP - Четверг, 17.07.2014, 06:38 |
|
| |
Slavka8063 | Дата: Четверг, 17.07.2014, 09:53 | Сообщение # 7 |
.::Offline::.
Разбойник
Сообщений: 48
[ -1 ]
Награды: 0
Статус
отсутствует
| Цитата AlexPPPP ( ) Добавляй
Добавил
|
|
| |
AlexPPPP | Дата: Четверг, 17.07.2014, 16:31 | Сообщение # 8 |
.::Offline::.
Гангстер
Сообщений: 179
[ 21 ]
Награды: 19
Статус
отсутствует
| Цитата Slavka8063 ( ) Добавил Свяжусь позже,проблемки есть,с компьютером
Релизы [GM] Far EastRolePlay[Repack LessGlobal] S.T.A.L.K.E.R New.pwn 45% ( мод заливать не буду )
|
|
| |
Slavka8063 | Дата: Четверг, 17.07.2014, 18:09 | Сообщение # 9 |
.::Offline::.
Разбойник
Сообщений: 48
[ -1 ]
Награды: 0
Статус
отсутствует
| Цитата AlexPPPP ( ) Свяжусь позже,проблемки есть,с компьютером
Хорошо
|
|
| |
dr40 | Дата: Воскресенье, 20.07.2014, 17:35 | Сообщение # 10 |
.::Offline::.
Разбойник
Сообщений: 55
[ 0 ]
Награды: 0
Статус
отсутствует
| Закрыто !!! Исчерпывающая информация была дана.
|
|
| |
|