Das kann man nicht Überprüfen soweit ich weiß , soweit ist Sa-mp nicht
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
Also, wenn der Spieler ins Wasser springt, ändert sich ja seine Fortbewegung. Also von Gehen zu Schwimmen. Und wie lautet die ID von Schwimmen, und wo überprüfe ich das? Bei OnPlayerUpdate ?
-
Soweit ich weiß gibt es so einen Status nicht & Animationen kann man glaub ich auch nicht abfragen
-
Ich hab aber auf einen Server schonmal sowas gesehen:
Es war ein Derby, und wer von der Strecke (die war in der Luft) runtergefallen ist, und das Wasser berührt hat, wurde er ausgeschieden.
Wie kann ich sonst überprüfen, ob der Player noch am Schiff ist, und wenn er vom SChiff runterfällt wieder Spawnt?
-
War dann evntl. eine Strecke die eine Zone besaß mit einer Höhen Überprüfung evntl.
-
Okay, wie mache ich diese Höhenüberprüfung? (Pls Link zu einen Tut)
Und noch eine Frage:
Ich habe erfolgreich einen Textdraw erstellt, also wird mir auch richtig angezeigt.
Nun möchte ich, dass der Textdraw im Hintergrund schwarz ist. Zurzeit ist er so grau. Was muss ich ändern? Und wie mach ich das, dass bei "Team A" dahinter eine Variable ausgegeben wird? Also zum Beispiel die Variable: Team_a?
ForumsAdresse = TextDrawCreate(3,435,"Team A: ");
TextDrawLetterSize(ForumsAdresse,0.5,1.3);
TextDrawColor(ForumsAdresse,COLOR_YELLOW);
TextDrawBackgroundColor(ForumsAdresse,COLOR_RED);
TextDrawSetShadow(ForumsAdresse,1);
TextDrawUseBox(ForumsAdresse,1); -
Die Höhe wird von der Z Achse überprüft ,
IsPlayer3DZone(playerid,Float:minx,Float:miny,Float:minz,Float:maxx,Float:maxy,Float:maxz)
{
new Float:pos[3];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
if(pos[0] > minx && pos[0] < maxx && pos[1] > miny && pos[2] < maxy && pos[3] > minz && pos[3] < maxz)return true;
return false;
}Sollte so stimmen der Code, sollte nun eine Zone + Richtige Höhe Checken
-
Hmm... Iergendwie verstehe ich den Code nicht....
Also was gehört wo hin? Und wie mache ich es, wenn er unter dieser Höhenkontrolle ist, dass er wieder am Spawn ist? Also SetPlayerPos, blablabla...
Und wo soll ich /save machen? Denn dann habe ich nur einen Punkt, und nicht ein Rechteck... Oder ist die Höhe gleich, egal wie ich bei X und Y bin?
-
Zone
|max
Y ^
|^
|^
|min>>>>>>>>>> max
|------------------XDer Spieler muss über dem Minimalen Y Wert Sein zudem aber unter dem Maximalen genau das gleiche bei x & z
Das ganze kann man sich hier wie ein Rechteck vorstellen mit der Z Überprüfung ein Quadrat
-
Also so:
IsPlayer3DZone(playerid,92.0053,-2219.0132,10.1945,92.0053,-2219.0132,72.3358)
{
new Float:pos[3];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
if(pos[0] > 92.0053 && pos[0] < 92.0053 && pos[1] > -2219.0132 && pos[2] < -2219.0132 && pos[3] > 10.1945 && pos[3] < 72.3358)return true;
return false;
}Wo gehört nun der Teil hin? Unter onPlayerUpdate? Und wo schreibe ich hin, dass wenn er unter dem Min oder über den Max ist, dass er wieder am Spawn ist? (SetPlayerPos)
-
Ja OnPlayerUpdate oder Timer & Schleife
-
Okay. Bis jetzt sieht es so aus:
IsPlayer3DZone(playerid,92.0053,-2219.0132,10.1945,92.0053,-2219.0132,72.3358)
{
new Float:pos[3];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
if(pos[0] > 92.0053 && pos[0] < 92.0053 && pos[1] > -2219.0132 && pos[2] < -2219.0132 && pos[3] > 10.1945 && pos[3] < 72.3358)return true;
return false;
}Wo gehört nun hin, falls der Player unterhalb Z ist (also im Wasser) dass er weggeportet wird (SetPlayerPos) ?
Und wie ist das mit den Textdraw?
ZitatIch habe erfolgreich einen Textdraw erstellt, also wird mir auch richtig angezeigt.
Nun möchte ich, dass der Textdraw im Hintergrund schwarz ist. Zurzeit ist er so grau. Was muss ich ändern? Und wie mach ich das, dass bei "Team A" dahinter eine Variable ausgegeben wird? Also zum Beispiel die Variable: Team_a?
ForumsAdresse = TextDrawCreate(3,435,"Team A: ");
TextDrawLetterSize(ForumsAdresse,0.5,1.3);
TextDrawColor(ForumsAdresse,COLOR_YELLOW);
TextDrawBackgroundColor(ForumsAdresse,COLOR_RED);
TextDrawSetShadow(ForumsAdresse,1);
TextDrawUseBox(ForumsAdresse,1);Hat jemand eine Lösung?
-
Was hast du da denn gemacht?
IsPlayer3DZone ist eine Funktion die du im Script verwenden kannst. oO
Wie GetPlayerMoney. -
Was soll ich gemacht haben?
Also:
public OnPlayerUpdate(playerid)
{
IsPlayer3DZone(playerid,92.0053,-2219.0132,10.1945,92.0053,-2219.0132,72.3358) // Hier ein Error
{
new Float:pos[3];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
if(pos[0] > 92.0053 && pos[0] < 92.0053 && pos[1] > -2219.0132 && pos[2] < -2219.0132 && pos[3] > 10.1945 && pos[3] < 72.3358)return true; // Der nächste Error
return false;
}
return 1; // Der Warning
}So schaut es jetzt aus, und wie mach ich es, wenn der Spieler unterhalb / oberhalb Z ist, dass er weggeportet wird (SetPlayerPos) ? Also wohin kommt das SetPlayerPos? Und was ist mit dem TextDraw?
PS.: Bekomme da aber 3 Errors:
CodeC:\Users\Patrick\Desktop\Samp server\gamemodes\gungame.pwn(610) : error 017: undefined symbol "IsPlayer3DZone" C:\Users\Patrick\Desktop\Samp server\gamemodes\gungame.pwn(614) : error 032: array index out of bounds (variable "pos") C:\Users\Patrick\Desktop\Samp server\gamemodes\gungame.pwn(617) : warning 225: unreachable code Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 2 Errors.
-
Nein LoL
IsPlayer3DZone lässt du einzeln irgendwo in deinem Script stehen.
Nur nicht in einem Anderen Code.
Dann kannst du das z.b. benutzen.
If(IsPlayerConnected(playerid))
{
if(IsPlayer3DZone(playerid,X,Y,Z))
SendClientMessage(playerid,FARBE,"Du bist in der richtigen Zone");
else
SendClientMessage(playerid,FARBE,"Du bist nicht in der richtigen Zone");
} -
Das ist ein Funktion ...
IsPlayer3DZone(playerid,92.0053,-2219.0132,10.1945,92.0053,-2219.0132,72.3358)
{
new Float:pos[3];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
if(pos[0] > 92.0053 && pos[0] < 92.0053 && pos[1] > -2219.0132 && pos[2] < -2219.0132 && pos[2] > 10.1945 && pos[2] < 72.3358)return true;
return false;
}Sie muss wie eine Öffentliche Klasse ,,public´´ irgendwo im Skript stehen & wird verwendet wie ein Skript Kommando
-
Ja aber ohne veränderte dinger
-
public OnPlayerUpdate(playerid)
{
GameStreamer_OnPlayerUpdate();
/*IsPlayer3DZone(playerid,92.0053,-2219.0132,10.1945,92.0053,-2219.0132,72.3358)
{*/
new Float:pos[3];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
if(pos[0] > 92.0053 && pos[0] < 92.0053 && pos[1] > -2219.0132 && pos[2] < -2219.0132 && pos[3] > 10.1945 && pos[3] < 72.3358)
{
SendClientMessage(playerid,COLOR_RED,"Du bist in der richtigen Zone");
}
else
{
SetPlayerPos(playerid, 91.4494,-2236.6765,13.0705);
}
return true;
//return false;
}
return 1;
}So jetzt? Also es soll überprüft werden, ob der Player unterhalb der Minz ist. (10.1945), wenn Ja, soll er weggeportet werden (SetPlayerPos)
-
nur unterhalb? dann reicht es auch so:
public OnPlayerUpdate(playerid)
{
GameStreamer_OnPlayerUpdate();
new Float:pos[3];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
if(pos[3]<10.1945)
{
SetPlayerPos(playerid, 91.4494,-2236.6765,13.0705);
}
return 1;
} -
Jo aber er möchte es ja in einer bestimmten Zone naja , hab kb weiter zu erklären bin off xD