Hey ich könnte etwas hilfe gebrauchen :D...
Also ich hab soweit ein Timer erstellt der jede sekunde checkt ob einer InRangeOfPoint ist...
hab schon forward gemacht public erstellt & komme irgendwie nicht weiter weil ich keine idee hab wo was hin muss
würde gerne diese objeckte gemoved haben
CreateObject(970,791.70001221,-1360.00000000,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (13)
CreateObject(970,791.70001221,-1355.80004883,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (14)
CreateObject(970,791.70001221,-1351.59997559,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (15)
CreateObject(970,791.70001221,-1347.40002441,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (16)
CreateObject(970,791.70001221,-1343.19995117,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (17)
CreateObject(970,791.70001221,-1339.00000000,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (18)
CreateObject(970,791.70001221,-1334.80004883,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb) (20)
CreateObject(970,789.59997559,-1330.40002441,13.10000038,0.00000000,0.00000000,358.00000000); //object(fencesmallb) (21)
CreateObject(970,791.70001221,-1332.59997559,13.10000038,0.00000000,0.00000000,269.99548340); //object(fencesmallb) (22)
währe nett wenn mir einer helfen würde
Danke.
/edit ich weiß eigendl., dass es für den einen oder anderen leicht ist aber ich bin eben noch ein großer anfänger.
MoveObject wenn player InRangeOfPoint ist.
- Sereon
- Geschlossen
- Erledigt
-
-
Also du willst das man diese sachen öffenen kann richtig?
Dann Erstellst du Erstmal ein
new Tor1;
danach gibts du an was Tor1 ist also Bsp:
Tor1=CreateObject(970,791.70001221,-1360.00000000,13.10000038,0.00000000,0.00000000,270.00000000); //object(fencesmallb)
usw...für jedes Tor einfach ein New erstellen und dann da angeben..
Dann gehst du zu OnPlayerCommandText (es sei den du willst mit OCMD scripten) und gibst das ein:
}
if(strcmp("/auf",cmdtext,true)==0)
{
if(!IsPlayerInRangeOfPoint(playerid,10,
791.70001221,-1360.00000000,13.10000038 )) return SendClientMessage(playerid,ROT,"Du bist nicht nah genug am Tor!");
MoveObject(tor,
791.70001221,-1360.00000000,13.10000038 -10,5);
return 1;
}if(strcmp("/zu",cmdtext,true)==0)
{
if(!IsPlayerInRangeOfPoint(playerid,10,791.70001221,-1360.00000000,13.10000038 )) return SendClientMessage(playerid,ROT,"Du bist nicht
nah genug am Tor!");
MoveObject(tor,791.70001221,-1360.00000000,13.10000038 ,5);
return 1;
}[align=left]Die -10 gibt an wie viel das Tor in den Boden gehen soll.. die 5 ist die Geschwindigkeit...
Hoffe ich konnte helfen
[align=left]//Edit einegrückt -
naja eigendlich wollte ich es ohne command... mit command hab ich schon hinbekommen... aber ich würde gerne wissen ob es geht & wie es geht ohne cmd.
Danke trotzdem./edit also ich mein wenn er InRangeOfPoint geht, dass sich das tor denn ohne command öffnet & wenn er verlässt wieder zu geht und auch zu bleibt
-
warte kurz ich rück das noch richtig ein ..
da ist grad en fail
// Edit
also du willst das es sich automatisch öffnet wenn du in der Umgebung bist ??
-
Du machst einen Timer, der jede Sekunde checkt ob jemand in der nähe ist.
in dem public kommt dan z.B. das rein
public GateCheck()
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid ++)
{
if(!IsPlayerConnected(playerid))continue;
{
if(isPlayerInFrakt(playerid,1))
{
if(IsPlayerInRangeOfPoint(playerid,5,253.30000305176, 109.59999847412, 1002.200012207))MoveObject(pditor[0],253.30000305176, 109.59999847412-2, 1002.200012207,3);//pdtür1 innen recht
else MoveObject(pditor[0],253.30000305176, 109.59999847412, 1002.200012207,5); -
Ich würde den Timer nicht auf jede Sekunde einstellen, da das zuviele Ressourcen frisst.
-
Ich würde den Timer nicht auf jede Sekunde einstellen, da das zuviele Ressourcen frisst.Kann man ja individuell auf sich einstellen
-
Danke dir erstmal keine error und keine warnings... denn werd ich's mal ausprobieren.
/edit joar wenn ich im punkt gehe & wieder raus gehe ist das tor für immer weg xD
public rollertor()
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid ++)
{
SetTimerEx("rollertor", 1, 10000,"i",playerid);
{
if(IsPlayerInRangeOfPoint(playerid,10,791.70001221,-1360.00000000,13.10000038))
{
MoveObject(Tor1, 791.70001221,-1360.00000000,13.10000038 -10,5);
}
else
{
MoveObject(Tor1,791.70001221,-1360.00000000,13.10000038 ,5);
}
}
}
}
so siehts aus bei mir. -
warte ich mache es dir gerade
oben im Script
forward GateCheck();
unter OnGameModeInit:
SetTimer("GateCheck",1000,1); Durch deinen Intervall ersetzen
und im Pupblic
public GateCheck()
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid ++)
{
if(!IsPlayerConnected(playerid))continue;
{
if(isPlayerInFrakt(playerid,1))
{
if(IsPlayerInRangeOfPoint(playerid,10,791.70001221,-1360.00000000,13.10000038))MoveObject(Tor1, 791.70001221,-1360.00000000,13.10000038 -10,5);
else
MoveObject(Tor1,791.70001221,-1360.00000000,13.10000038 ,5); }
}
}
} -
hab ich ja alles... blos wenn ich den timer bein OnGame... hinstze bleib ich bei Connect stehen
/edit habs gerade woanders gesehen
Vielleicht so. (ungetestet)
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,10,x,y,z))
{
MoveObject(OBJECT,x,y,z,GESCHWINDIGKEIT);
}
return 1;
}also ich werds nacher ausprobieren
-
breadfish.de
Hat das Thema geschlossen.