hi leute ich würde gerne das lvpd nutzen .
leider aber nicht in lv sondern sf. deshalb würde ich gerne die teleporte erstellen (am besten unsichtbar).
kann mir einer vllt erklären wie ich die teleporte erstelle. ich will das , wenn man aus dem lvpd rausgeht an eine bestimmte stelle teleportirert wird.
hoffe ich könntmir helfen
Teleports icons
- ZoD1aC
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
musst halt nur die coords wissen und dann:
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}Also der Code wurde rauskopiert von GF, da ich das schreibe ^^, und dann abfrägst mit:
PlayerToPoint(1.5,playerid,x,y,z);
SetPlayerToPoint(playerid,x1,y1,z1);
SetPlayerInterrior(playerid, int);Prüfen, ob er in der "Zone" ist ( Radius ), einsetzen für die coords x,y,z ( das Komma "," bitte als "." für Kommazahlen wie 125.22,..)
Player hinporten, zu den Coords ( wieder einsetzen für x1,y1,z1)
Interrior einsetzen, wenn man direkt rein/raus geportet werden soll,... ( raus ist immer ID 0, also "normale Welt")So sollte es klappen.
Mfg
Grex -
erstmal danke!
kriege aber 2 errrors
D:\gta server\Psychosandman\gamemodes\prs.pwn(27924) : error 017: undefined symbol "SetPlayerToPoint"
D:\gta server\Psychosandman\gamemodes\prs.pwn(27925) : error 017: undefined symbol "SetPlayerInterrior"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase2 Errors.
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
PlayerToPoint(1.5,playerid,2337.1001,2455.9500,14.9688);
SetPlayerToPoint(playerid,-1605.6716,711.4542,13.8672);
SetPlayerInterrior(playerid, 0);
return 1;
}
}
return 0;
} -
Es heisst SetPlayerInterior und das andere SetPlayerPos(playerid,x,y,z);
-
danke blackfox, jetzt sind keine errors mehr, aber es funktioniert nicht, ich werde nicht teleportet. was ist falsch
-
if (strcmp("/teleme", cmdtext, true, 10) == 0)
{
if(!PlayerToPoint(3.0,playerid,x,y,z))
{
// Nachricht du bist nicht am Enter POint
return 1;
}
SetPlayerInterior(playerid,intid);
SetPlayerPos(playerid,x,y,z);
return 1;
} -
ich würde das aber gerne ohne befehl anzugeben teleporten, sodass wenneiner aus dem lvpd rausgeht er sofort an eine bestimmte stelle teleportiert wird. geht das??
-
dann müsstest du die abfrage in nen Timer packen ohne cmd versteht sich , aber ich würd dir nen Icon empfehlen
also
new Bullen;Bullen = CreatePickup(...);
OnPlayerPickup
if(pickupid = Bullen)
{
// SetPlayerPos or so
} -
ok werde es mal probieren melde mich dann obs geklappt hat oder nicht
-
jo das mit dem Pickup ist besser, da der Timer ansonst jede 10ms oder jede ms gestartet werden muss, auch nicht umbedingt das Beste... außerdem oben hättest du lieber ne else funktion einbauen sollen, und umgekehrt, daher:
...
if(PlayerToPoint(3.0,playerid,x,y,z)
{
SetPlayerPos(palyerid,x,y,z);
SetPlayerInterior(playerid, x.y,z);
}
else
{
// Du bist nicht an der richtigen Stelle
}Mfg
Grex -
leider komme ich nicht weiter , es klappt einfach nicht .
könnte mir vllt jemand das schnell scripten und hier reinstellen und gleich sgen wohin ich das alles reinfügen soll.
bitte bittedas pickup sollte hier sein (1559,23,2337.1001,2455.9500,14.968 )
es soll dann hierhin teleportiert werden -1605.6716,711.4542,13.8672
-
public OnGameModeInit()
new meinpickup;
AddStaticPickup(1239,2,1559,23,2337.1001,2455.9500,14.968);und wenn du dann den GF hast, dann unter
public SetPlayerUnjail()
{
IfPlayerToPoint(3.0,i,1559,23,2337.1001,2455.9500,14.968);
}
So jetzt kommt die Frage, warum bitte unter SetPlayerUnjail ??, naja, da es schon viele Timers gibt, die jede Sekunde getätigt werden, braucht man das Script nicht noch weiter mit so vielen Timern überlasten, daran hab ichs dort dazugehängt, kann man auch überall anders, die jede Sekunde ausgeführt werden.Wenn du kein GF hast, dann kommen wir darauf nochma zurück.
-
jahoo es funktioniert^^
danke dir grex für die hilfe -
breadfish.de
Hat das Thema geschlossen.