Hi leute könnt ihr mir Helfen bei Ports
Spieler können nicht rein gehn nur meiche
das ist die Code
public Ports(playerid)
{
if(IsPlayerConnected(playerid))
if (PlayerToPoint(1, playerid, 1555.1205, -1675.6710, 16.1953)) // PD Eingang // if (PlayerToPoint(Radius, playerid, Float:X, Float:Y, Float:Z)) // Wo der Spieler Stehen soll
{
SetPlayerInterior(playerid, 6);
SetPlayerPos(playerid, 246.7840, 63.9002, 1003.6406); // Wo der Spieler hin kommen soll
SetPlayerFacingAngle(playerid, 0.0);
}
else if (PlayerToPoint(1, playerid, 246.7282, 62.7136, 1003.6406)) // PD Ausgang
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, 1552.4490, -1674.9897, 16.1953);
SetPlayerFacingAngle(playerid, 90.0);
}
return 1;
}
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
-
-
Vergrößere mal die Zahl 1 zu 5.0 und wenn es dann immernoch nicht ght dann IsPlayerConnected rausnehmen.
-
ok ich werds es probier Dnake für die antowrt
//EDIT : Leider geht es nicht kann bitte mir Helfen ich verlieree spieler
-
mach das mal so mit PlayerToPointStripped kA obs was bringt
public ports(playerid)
{
new Float:cx, Float:cy, Float:cz;
GetPlayerPos(playerid, cx, cy, cz);
if (PlayerToPointStripped(2.0, playerid,246.647018,62.875095,1003.640625, cx,cy,cz))
{
GameTextForPlayer(playerid, "~w~Los_Santos",1000,1);
SetPlayerPos(playerid,1552.775512,-1675.934448,16.195312);
SetPlayerInterior(playerid,0);
//LSPD exit
}
else if (PlayerToPointStripped(2.0, playerid,1555.204956,-1675.686767,16.195312, cx,cy,cz))
{
GameTextForPlayer(playerid, "~w~L.s.p.d",1000,1);
SetPlayerPos(playerid,246.302017,65.773712,1003.640625);
SetPlayerInterior(playerid,6);
//LSPD entrance
} -
ich habe 3 Errors bekommen
C:\Users\Phyton\Desktop\scriptfiles\SERVER\gamemodes\rpg.pwn(28901) : error 017: undefined symbol "PlayerToPointStripped"
C:\Users\Phyton\Desktop\scriptfiles\SERVER\gamemodes\rpg.pwn(28908) : error 017: undefined symbol "PlayerToPointStripped"
C:\Users\Phyton\Desktop\scriptfiles\SERVER\gamemodes\rpg.pwn(28945) : error 029: invalid expression, assumed zero
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase3 Errors.
-
fersuch mal das bei forwards einfügen forward PlayerToPointStripped(Float:radi, playerid, Float:x, Float:y, Float:z, Float:curx, Float:cury, Float:curz);
und das iwo ins script:
public PlayerToPointStripped(Float:radi, playerid, Float:x, Float:y, Float:z, Float:curx, Float:cury, Float:curz)
{
if(IsPlayerConnected(playerid))
{
new Float:tempposx, Float:tempposy, Float:tempposz;
tempposx = (curx -x);
tempposy = (cury -y);
tempposz = (curz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) return 1;
}
return 0;
} -
wie wird denn deine Funktion Ports(playerid) aufgerufen?
-
ja wenn man an einer bestimmten stelle steht
-
ne ich meine wo wird deine funktion ports(playerid) aufgerufen
-
er meint mit was es aufgerufen wird mit nem Timer oder wie meint er
-
also ich habe so gemacht
forward Ports(playerid);unter OnGamemodeint
SetTimer("Ports", 1000, 1);
und das da ganz unten eingefügt
public Ports(playerid)
{
new Float:cx, Float:cy, Float:cz;
GetPlayerPos(playerid, cx, cy, cz);
if (PlayerToPointStripped(2.0, playerid,246.647018,62.875095,1003.640625, cx,cy,cz))
{
GameTextForPlayer(playerid, "~w~Los_Santos",1000,1);
SetPlayerPos(playerid,1552.775512,-1675.934448,16.195312);
SetPlayerInterior(playerid,0);
//LSPD exit
}
else if (PlayerToPointStripped(2.0, playerid,1555.204956,-1675.686767,16.195312, cx,cy,cz))
{
GameTextForPlayer(playerid, "~w~L.s.p.d",1000,1);
SetPlayerPos(playerid,246.302017,65.773712,1003.640625);
SetPlayerInterior(playerid,6);
//LSPD entrance
}
return 1;
} -
mach den Timer mal unter Ongamemode init ganz nach oben und dann statt eine sekunden so
100 also weniger als ne sekunde
//edit wieso hast du das geändert du kannst auch PlayerToPoint behalten daran liegt es sicher nicht
-
also, du musst das so ändern:
public Ports()
{
for(new playerid; playerid<MAX_PLAYERS;playerid++)
{
new Float:cx, Float:cy, Float:cz;
GetPlayerPos(playerid, cx, cy, cz);
if (PlayerToPointStripped(2.0, playerid,246.647018,62.875095,1003.640625, cx,cy,cz))
{
GameTextForPlayer(playerid, "~w~Los_Santos",1000,1);
SetPlayerPos(playerid,1552.775512,-1675.934448,16.195312);
SetPlayerInterior(playerid,0);
//LSPD exit
}
else if (PlayerToPointStripped(2.0, playerid,1555.204956,-1675.686767,16.195312, cx,cy,cz))
{
GameTextForPlayer(playerid, "~w~L.s.p.d",1000,1);
SetPlayerPos(playerid,246.302017,65.773712,1003.640625);
SetPlayerInterior(playerid,6);
//LSPD entrance
}
}
return 1;
}sonst isses nur für den spieler mit der ID 0 gültig....
deswegen geht es warscheinlich bei dir wenn du es alleine testest aber bei anderen nichtEDIT: natürlich auch net forward ports(playerid); auf forward ports(); umändern vergessen
-
oder du nimmst das obere und machst es mit SetTimerEx geht auch
-
da hast dann 200 timer laufen lol
-
wieso ich glaube due weißt nicht wie ich das meine
-
aso wie denn^^
mit setteimerex gibt man ja nur eine playerid durch,also würde es wieder nur für die ID 0
also wenn es unter gamemodeinit steht. -
Leute ich habe fast alles ausprobiert weiß es nicht warum das nicht geht Vll geht das bei GF ?
können sie mir bitte erklären per Icq oder in Forum , ah ja geht das bei euch ?
ich habe heute in server 20 spieler gehabt jezt sind fast alle weg jezt sind nur 16 -
das problem sollte eigentlich mit dem beitrag von mir (siehe oben) gelöst sein.
hast es schon getestet?
-
JuuuuuHuuu es hat Funzt Danke euch für eure Hilfe
wie kann ich jezt andere z.b bsn usw machen ?
das ist von BSN
public Bsn(playerid)
{if (PlayerToPoint(1, playerid, 1198.8156,-918.5995,43.1227)) // PD Eingang // if (PlayerToPoint(Radius, playerid, Float:X, Float:Y, Float:Z)) // Wo der Spieler Stehen soll
{
SetPlayerInterior(playerid, 10);
SetPlayerPos(playerid, 363.4130,-74.5787,1001.5078); // Wo der Spieler hin kommen soll
SetPlayerFacingAngle(playerid, 0.0);
}
else if (PlayerToPoint(1, playerid, 363.4130,-74.5787,1001.5078)) // PD Ausgang
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, 1198.8156,-918.5995,43.1227);
SetPlayerFacingAngle(playerid, 90.0);
}
return 1;
}public Ports()
{
for(new playerid; playerid<MAX_PLAYERS;playerid++)
{
new Float:cx, Float:cy, Float:cz;
GetPlayerPos(playerid, cx, cy, cz);
if (PlayerToPointStripped(2.0, playerid,246.647018,62.875095,1003.640625, cx,cy,cz))
{
GameTextForPlayer(playerid, "~w~Los_Santos",1000,1);
SetPlayerPos(playerid,1552.775512,-1675.934448,16.195312);
SetPlayerInterior(playerid,0);
//LSPD exit
}
else if (PlayerToPointStripped(2.0, playerid,1555.204956,-1675.686767,16.195312, cx,cy,cz))
{
GameTextForPlayer(playerid, "~w~L.s.p.d",1000,1);
SetPlayerPos(playerid,246.302017,65.773712,1003.640625);
SetPlayerInterior(playerid,6);
//LSPD entrance
}
}
return 1;
}//EDIT : hab fehler gemacht