GTAvision.com - Forum - Grand Theft Auto News, Downloads, Community and more...

Position: Grand Theft Auto: San Andreas » Multiplayer » DM Timer » Druckansicht
Netrox, 21.08.2008, 16:38
hey,
Ich hab nen DM Script gescriptet, habe aber noch folgendes Problem:
Ich will, dass wenn der Spieler im DM ist, die DM Zone nicht verlassen kann.
Das soll in Form von einem Timer sein, der dann überprüft, ob sich der Spieler innerhalb der
Kordinaten befindet.

Wie lass ich den Timer überprüfen (wenn der Spieler im DM ist) ob er sich innerhalb der Kordinaten
befindet? ( Min. X, Y, Z & Max X, Y, Z)

Falls der Spieler sich dann ausserhalb der Kordinaten befindet, soll er zurück zum DM Spawn
teleportiert werden.

Kein SetPlayerWorldBounds!

Wäre für Hilfe sehr dankbar :-)
Recycler, 21.08.2008, 17:33
Code:
1
2
3
4
5
6
7
IsPlayerInCube(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy, Float:minz, Float:maxz)
{
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid, pX, pY, pZ);
if (pX >= minx && pX <= maxx && pY >= miny && pY <= maxy && pZ >= minz && pZ <= maxz) return 1;
return 0;
}


Das machste z.B. dann so:

Code:
1
if (!IsPlayerInCube(playerid, ...)) SetPlayerToDM(playerid);


MfG
Recycler
Netrox, 21.08.2008, 17:48
thx für die schnelle antwort, aber wo muss das obere hin?
dödel, 21.08.2008, 17:55
Haus einfach unten in einer leere stelle :-O
D.h. in keine andere Funktion, sondern frei stehen lassen.
Netrox, 21.08.2008, 19:39
Wie kann ich das jetzt in nem Timer einbauen?
Soll ja nur für Spieler aktiv sein, die im DM sind.
Recycler, 21.08.2008, 19:54
Einen normalen Timer setzen, überprüfen ob der Spieler im DM ist (machste einfach sowas wie
PlayerDM[MAX_PLAYERS] und dann auf 1 bzw. 0 setzen wenn der Spieler per Command den DM Bereich
betritt bzw. verlässt) und wenn die Variable immernoch auf true steht obwohl der Spieler nicht mehr
im DM ist ihn wieder dahin setzen :D

MfG
Recycler
Netrox, 21.08.2008, 20:06
wie muss das denn im Timer aussehen?
Code:
1
2
3
4
5
6
7
8
9
10
   if (IsPlayerInDM[playerid] == 1)
   {
       if (!IsPlayerInCube(playerid, ....);
       {
        SetPlayerPos(playerid, ...);
      SetPlayerFacingAngle(playerid, ...);
                SendClientMessage(playerid, ROT, "Du darfst die DM Zone nicht verlassen!");
      }
      return 1;
   }


?
Recycler, 21.08.2008, 20:46
Genau richtig :D

MfG
Recycler

EDIT: Wobei, return 1; kannste dir sparen.
Netrox, 21.08.2008, 21:05
Code:

1
2
3
4
5
6
7
8
9
10
G:\GERMAN~1\GAMEMO~1\GxFBeta.pwn(1746) : error 017: undefined symbol "playerid"
G:\GERMAN~1\GAMEMO~1\GxFBeta.pwn(1748) : error 017: undefined symbol "IsPlayerInCube"
G:\GERMAN~1\GAMEMO~1\GxFBeta.pwn(1748) : error 001: expected token: ")", but found ";"
G:\GERMAN~1\GAMEMO~1\GxFBeta.pwn(1748) : error 036: empty statement
G:\GERMAN~1\GAMEMO~1\GxFBeta.pwn(1748) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.


:shock:
Recycler, 21.08.2008, 21:15
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (new i; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
if (IsPlayerInDM[i] == 1)
    {
        if (!IsPlayerInCube(i, hier die koordinaten minx...maxz der DM area rein);
        {
          SetPlayerPos(i, DM-tele);
        SetPlayerFacingAngle(i, DM-angle);
                SendClientMessage(i, ROT, "Du darfst die DM Zone nicht verlassen!");
        }
    }
}
}
}


Und die IsPlayerInCube Funktion irgendwo hinsetzen, aber ein "stock" vor dem Funktionsnamen
vergessen!

MfG
Recycler
Netrox, 21.08.2008, 21:25
okay thx.

aber ich hab immer noch 2 errors

Code:

1
2
3
4
5
6
G:\GERMAN~1\GAMEMO~1\GxFBeta.pwn(1751) : error 001: expected token: ")", but found ";"
G:\GERMAN~1\GAMEMO~1\GxFBeta.pwn(1751) : error 036: empty statement
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.


Liegt an dieser Zeile:

Code:
1
if (!IsPlayerInCube(i, -1467.6251, -1245.4882, 485.1076, 522.0527, 1.1974, 40.3334);


was hab ich da falsch gemacht?
Recycler, 21.08.2008, 21:27
Eine Klammer fehlt :D

Und natürlich auch kein ;

Hab die Fehler zwar in meinem Post, das war aber auch nur zur Orientierung kein Copy-Paste Element.

MfG
Recycler
Netrox, 21.08.2008, 21:38
jaa danke, klappt ^^ :-) :-)
Recycler, 22.08.2008, 14:21
Gern geschehen.

MfG
Recycler
GTAvision.com :: Forumregeln :: FAQ :: Impressum :: Kontakt :: RDRvision.com :: LANOIREvision.com :: MaxPayneVision.com
NetVisionWork.NET
.: © 2006-2014 by GTAvision.com :.

Rockstar GamesTake-Two Interactive Deutschland

Free Grand Theft Auto Downloads