• Страница 1 из 1
  • 1
Модератор форума: dr40  
как создать пикап
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

Статус отсутствует
Закрыто !!! Исчерпывающая информация была дана.
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright www.SAMP-TEAM.com (c) 2009-2025
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz   
Для корректного просмотра мы рекомендуем Вам использовать браузер Google Chrome.
Яндекс.Метрика