Lucky_Drug
Умник
- Добрый день, сейчас я расскажу, как сделать GPS NAVIGATOR с голосом гугла, тобишь голос гугла помогает Вам найти вашу точку.
- Начнем:
1)Создаем массив:
2)Создаем команду:
3)Создаем диалоги:
4)Создаем паблик:
5)Создаем таймер:
- 1. ко всем new:
- 2. в public OnGameModeInit:
6)Добавляем public OnPlayerClickMap с нашими функциями, если у Вас уже есть этот паблик, то просто добавьте наши функции в свой паблик:
7)Создаем проверку и таймер:
- На этом все, если есть вопросы обращайтесь в скайп.
- Если что-то не получается, то пишите в теме, помогу.
- В коде используется оптимизация SendMe, на милисекунды.
Добавляйте в массив игрока
- Спасибо всем с Вами был Lucky_Drug.
Взято из мода Unity
- Начнем:
1)Создаем массив:
PHP:
enum GPSe{
Float:xZ,
Float:yZ,};
new GPS[MAX_PLAYERS][GPSe];
new bool:UsingGPS[MAX_PLAYERS],bool:UsedGPS[MAX_PLAYERS];
PHP:
if(!strcmp("/gps",cmd,true))
{
SPD(playerid,D_GPS,2,"GPS NAVIGATOR","По точкам\nПо своим координатам\nОтключить координирование","Выбрать","Выйти");
return true;
}
PHP:
#define D_GPS 906090
#define D_MAPK 906091
case D_GPS:
{
if(!response)return 1;
switch(listitem)
{
case 0:{SPD(playerid,D_MAPK,2,"GPS локации","Шахта\nPolice LS\nGovernment LS","Выбрать","Выйти");}
case 1:{SendMe(playerid,-1,"Выйдите в меню игры\tНажмите КАРТА\tИ кликните правой мышкой(ВСЁ).");UsingGPS[playerid]=true;SetTimerEx("OffGPS",10000,0,"i",playerid);}
case 2:{UsedGPS[playerid]=false;SendMe(playerid,-1,"Вы отключили координирование");}
}
}
case D_MAPK:
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
if(!response)return 1;
switch(listitem)
{
case 0:
{
GPSPOKAZ(playerid,-1864.6481,-1559.6455);
UsedGPS[playerid]=true;
SetPlayerCheckpoint(playerid,-1864.6481,-1559.6455,4.0);
SendMe(playerid,-1,"Вы выбрали путь до шахты, путь составляет %f");
}
case 1:
{
GPSPOKAZ(playerid,1535.7858,-1675.3593);
UsedGPS[playerid]=true;
SetPlayerCheckpoint(playerid,1535.7858,-1675.3593,4.0);
SendMe(playerid,-1,"Вы выбрали путь до полицейского департамента LS, путь составляет %f");
}
case 2:
{
GPSPOKAZ(playerid,1481.0782,-1739.2710);
UsedGPS[playerid]=true;
SetPlayerCheckpoint(playerid,1481.0782,-1739.2710,4.0);
SendMe(playerid,-1,"Вы выбрали путь до Мерии LS, путь составляет %f");
}
}
}
PHP:
forward GpsUse();
public GpsUse(){
for(new i = 0; i <= GetMaxPlayers(); i++){
if(IsPlayerConnected(i)){
if(IsPlayerInAnyVehicle(i) && PlayerInfo[i][pGPS] == 1 && UsedGPS[i]==true)GPSPOKAZ(i,GPS[i][xZ],GPS[i][yZ]);
}
}
return true;
}
- 1. ко всем new:
PHP:
new CheckGpsTimer;
PHP:
CheckGpsTimer = SetTimer("GpsUse",10000,1);
PHP:
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ){
if(UsingGPS[playerid]){
GPSPOKAZ(playerid,fX,fY);
// SetPlayerCheckpoint(playerid,fX,fY,4.0);
UsedGPS[playerid]=true;
}
return true;
}
PHP:
stock GPSPOKAZ(player, Float:vX, Float:vY){
if(IsPlayerInAnyVehicle(player) && PlayerInfo[player][pGPS] == 1){
new textstring[200];
new Float:x2, Float:y2, Float:z2;
new Float:angle;
GetVehiclePos(GetPlayerVehicleID(player), x2, y2, z2);
GetVehicleZAngle(GetPlayerVehicleID(player), angle);
new Float:skolko = floatsqroot(floatpower(floatabs(floatsub(vX,x2)),2)+floatpower(floatabs(floatsub(vY,y2)),2));
if(floatround(skolko) <= 15)
{
format(textstring,sizeof(textstring),"B‘ ŒP…—‘‡… ®A ®Y„®OE ‹AM MEC¦O");
UsedGPS[player]=false;
new str[22], google[128];
format(str,sizeof str,"Вы добрались до точки");
format(google,sizeof(google),"http://translate.google.kg/translate_tts?ie=UTF-8&q=%s&tl=ru&prev=input",str);
PlayAudioStreamForPlayer(player,google);
}
else
{
GPS[player][xZ]= vX;
GPS[player][yZ]= vY;
new str[60], google[128];
format(str,sizeof str,"До точки Вам осталось %d метров",floatround(skolko));
format(google,sizeof(google),"http://translate.google.kg/translate_tts?ie=UTF-8&q=%s&tl=ru&prev=input",str);
PlayAudioStreamForPlayer(player,google);
}
}
return true;
}
forward OffGPS(player);
public OffGPS(player){UsingGPS[player]=false;return true;}
- Если что-то не получается, то пишите в теме, помогу.
- В коде используется оптимизация SendMe, на милисекунды.
PHP:
#define SendMe(%0,%2,%1) SendClientMessage(%0, %2,%1)
PHP:
pGPS
Взято из мода Unity
Последнее редактирование:
