Szerző Téma: Kapuk,ajtók  (Megtekintve 484 alkalommal)

Kapuk,ajtók
« Dátum: 2013. November 09. - 15:31:10 »
0 Show voters
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.

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Kapuk,ajtók
« Válasz #1 Dátum: 2013. November 09. - 18:27:17 »
+2 Show voters
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;
}

Kapuk,ajtók
« Válasz #2 Dátum: 2013. November 09. - 18:47:42 »
0 Show voters
Kössz sépen a segítséget,meghálálom egy \"+\" -al :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal