GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: HackFlux - 2013. November 09. - 15:31:10

Cím: Kapuk,ajtók
Írta: HackFlux - 2013. November 09. - 15:31:10
Helló!
Hogyan tudnám azt megoldani,ha csinálok egy kaput,vagy egy ajtót akkor ne kelljen a kapukra külömbözõ parancs hanem ha beírom hogy /nyit akkor az nyiljon amelyiknél vagyok ?
És azt hogy x,y másodperc mulva bezáruljon....
Elõre is kössz.
Cím: Kapuk,ajtók
Írta: BoOy - 2013. November 09. - 18:27:17
Hali. Elsõnek felveszed a kapukat:
 
#define MAX_KAPU 100
new Kapu[MAX_KAPU];
public OnFilterScriptInit()
{
Kapu[0] = CreateObject(... //az elsõ kapu
Kapu[1] = CreateObject(... //a második kapu és így tovább
return 1;
}

 
Utána csinálsz egy stock függvényt:
 
stock GetKapuID(playerid)
{
new result = -1,Float:X,Float:Y,Float:Z;
for(new i;i   {
GetObjectPos(Kapu,X,Y,Z);
if(IsPlayerInRangeOfPoint(playerid, 2.0, X,Y,Z)) {
result = i;
break;
    }
}
return result;
}

 
És a parancs:
 
CMD:nyit(playerid)
{
new kapuid = GetKapuID(playerid);
if(kapuid == -1)return SendClientMessage(playerid, -1, \"Nem vagy egy kapu közelébe sem!\");
else
{
    MoveObject(Kapu[kapuid],...
}
return 1;
}

 
Egészbe:
 
#include 
#include
#define MAX_KAPU 100
new Kapu[MAX_KAPU];
public OnFilterScriptInit()
{
Kapu[0] = CreateObject(... //az elsõ kapu
Kapu[1] = CreateObject(... //a második kapu és így tovább
return 1;
}
CMD:nyit(playerid)
{
new kapuid = GetKapuID(playerid);
if(kapuid == -1)return SendClientMessage(playerid, -1, \"Nem vagy egy kapu közelébe sem!\");
else
{
    MoveObject(Kapu[kapuid],2.0,32.0,30.3,1.0);//kecske
}
return 1;
}
stock GetKapuID(playerid)
{
new result = -1,Float:X,Float:Y,Float:Z;
for(new i;i   {
GetObjectPos(Kapu,X,Y,Z);
if(IsPlayerInRangeOfPoint(playerid, 2.0, X,Y,Z)) {
result = i;
break;
    }
}
return result;
}
Cím: Kapuk,ajtók
Írta: HackFlux - 2013. November 09. - 18:47:42
Kössz sépen a segítséget,meghálálom egy \"+\" -al :)