Hallo!
Ich suche ein Script, wo es möglich ist, die Distanz zu allen Objekte der Art 1251 zu berechnen.
Sollte eine Distanz unter 30 Metern so soll das Objekt um -2 Meter in der Z-Koordinate versetzt werden.
Ist das möglich mit PAWN?
GZ
Hallo!
Ich suche ein Script, wo es möglich ist, die Distanz zu allen Objekte der Art 1251 zu berechnen.
Sollte eine Distanz unter 30 Metern so soll das Objekt um -2 Meter in der Z-Koordinate versetzt werden.
Ist das möglich mit PAWN?
GZ
Klar ist das möglich, mit ein bisschen Mathe wirst du es hinbekommen. Du musst mit den Koordinaten ein bisschen rechnen.
Meinst du sowas?
stock IsPlayerInRangeOfObject(playerid, object, Float:distance) //by Templer
{
new Float:X, Float:Y, Float:Z;
if(!IsValidObject(object)) return false;
GetObjectPos(object, X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, distance, X, Y, Z)) return object;
return false;
}
Wenn du jetzt von meinem IsPlayerInRangeOfObject dann kommt es halt darauf an, ob du es als Funktion verwendest die in anderen Scripts über CallRemoteFunction oder SetTimer(Ex) aufgerufen werden oder du es einfach unter a_samp.inc als stock einfügst und es du dann auch in jedem Script hast
Da hätte aber glaube ich auch eine IsPlayerInRangeOfPoint Abfrage gereicht.
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1563) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1564) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1565) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1568) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1602) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1610) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1620) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1634) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1648) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1660) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1672) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1684) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1696) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1709) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1722) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1734) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1746) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1758) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1770) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1782) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1794) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1806) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1818) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1831) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1845) : error 079: inconsistent return types (array & non-array)
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1860) : error 079: inconsistent return types (array & non-array)
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
26 Errors.
if (strcmp("/sperreweg", cmdtext, true) == 0)
{
if(Spieler[playerid][team] == 1 Spieler[playerid][team] == 3 Spieler[playerid][team] == 4 Spieler[playerid][pAdmin] >= 1)
{
if(IsPlayerInRangeOfPoint(playerid, 7.0, X, Y, Z)) return object;
{
DestroyObjectToStream(Sperre);
}
else
{
SendClientMessage(playerid, rot," Du bist kein Beamter");
}
else
{
SendClientMessage(playerid, rot,"Du bist zu weit weg");
}
return 1;
}
@ Flip Super erklärt, jetzt haste es geschafft das ein Typ deine Variante so ausprobiert und siehe da, wirklich n1
@ TeamSpirit Bitte neues Thema aufmachen und dein Problem genauer Schildern... Viel genauer, Danke..
else
{
SendClientMessage(playerid, rot,"Du bist zu weit weg");
}
Über dem else eine ' } '
Alles anzeigenMeinst du sowas?
stock IsPlayerInRangeOfObject(playerid, object, Float:distance) //by Templer
{
new Float:X, Float:Y, Float:Z;
if(!IsValidObject(object)) return false;
GetObjectPos(object, X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, distance, X, Y, Z)) return object;
return false;
}
Ich habe dazu noch eine Rückfrage! Soweit ich das verstanden habe, ist das o.g. Script für 1 Objekt, aber ich möchte es ja für alle Objekte der ID 1251 funktioniert. Oder habe ich da etwas missverstanden`?
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(1517) : warning 203: symbol is never used: "Color"
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(2491) : error 017: undefined symbol "X"
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(2491) : error 017: undefined symbol "object"
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(2495) : error 029: invalid expression, assumed zero
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(3593) : warning 203: symbol is never used: "strtok"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
Sollte funktionieren.
Kann fehler enthalten!
stock getDistanceToObject(playerid, objectid, Float:Distance)
{
new Float:X,Float:Y,Float:z;
GetObjectPos(objectid,X,Y,Z);
if(IsPlayerInRangeOfPoint(playerid, 30.0,X,Y,Z)
{
if(objectid == 1251/*objektID*/)
{
SetObjectPos(objectid,X,Y,Z-2);
}
}
return 1;
}
@TeamSpirit
Wo hast du Scripten gelernt?
War das nur ein Crashkurs?
Deine errors sind selbsterklärend wen man ein bisschen english kentnisse hätte.
if (strcmp("/sperreweg", cmdtext, true) == 0)
{
if(Spieler[playerid][team] == 1 Spieler[playerid][team] == 3 Spieler[playerid][team] == 4 Spieler[playerid][pAdmin] >= 1)
{
new Float:X,Float:Y,Float:Z;
GetObjectPos(Sperre, X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 7.0, X, Y, Z)) return Sperre;
{
{
DestroyObjectToStream(Sperre);
}
else
{
SendClientMessage(playerid, rot," Du bist kein Beamter");
}
}
else
}
SendClientMessage(playerid, rot,"Du bist zu weit weg");
}
return 1;
}
da hab ich was falschg xDDD weis ber net was
Sollte funktionieren.
Kann fehler enthalten!
Ungetestet!
if (strcmp("/sperreweg", cmdtext, true) == 0)
{
if(Spieler[playerid][team] == 1 || Spieler[playerid][team] == 3 || Spieler[playerid][team] == 4 || Spieler[playerid][pAdmin] >= 1)
{
new Float:X,Float:Y,Float:Z;
GetObjectPos(Sperre, X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 7.0, X, Y, Z)) { return Sperre; }
/*{
DestroyObjectToStream(Sperre); Weis nicht wohin damit.
}*/
else
{
SendClientMessage(playerid, rot,"Du bist zu weit weg");
}
}
else
{
SendClientMessage(playerid, rot," Du bist kein Beamter");
}
return 1;
}
@ Flip Super erklärt, jetzt haste es geschafft das ein Typ deine Variante so ausprobiert und siehe da, wirklich n1
Keine Ahnung was du gerade meinst.
der selbe fehler beim ersten else
C:\Users\BCEX\Desktop\PAWN r8.0\gamemodes\Selfmade.pwn(2489) : error 029: invalid expression, assumed zero
wenn ich die /**/ weg mache es gehört ja dahin wenn er z.B dzu den Berufen gehört und an der stelle steht dann soll diese geschehen
Kann mir jmd noch bei meinem Problem helfen?
Danke.
2 Posts über dir.
stock getDistanceToObject(playerid, objectid, Float:Distance)
{
new Float:X,Float:Y,Float:z;
GetObjectPos(objectid,X,Y,Z);
if(IsPlayerInRangeOfPoint(playerid, 30.0,X,Y,Z)
{
if(objectid == 1251/*objektID*/)
{
SetObjectPos(objectid,X,Y,Z-2);
}
}
return 1;
}
why muss man denn noch die objectid mit angeben? oO
Mach doch direkt in der funktio ne schleife^^
Oda versteh ich was falsch?
Wo genau füge ich das ein - habe noch nie mit stock gearbeitet - sorry. Vielen Dank erstmal für die Hilfe.