| 
 
 
 
 
		
		
		
	
		
		
	
		
		
			| как создать пикап |  |  |  | 
| 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::. Пахан ![[S]ilverbac[k]](/avatar/85/497598.png)  Сообщений: 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  
Статус 
отсутствует | Закрыто !!! Исчерпывающая информация была дана. |  |  |  |  |  
 
 |