Auto gate

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
  • Hallo,


    ich habe eine frage und zwar mochte ich das wenn ein spieler skin xy hat und er nahr genug dran ist das dass tor (Gate) arleine ohne befehl aufgeht und nach 5 sek wider zu geht


    währe nett wenn mir einer helfe kann.


    MFG ZPlaygamelp

  • Du könntest einen Globalen Timer erstellen.


    Sprich bei OnGameModeInit SetTimer.... mit ca. 1 Sekunde sprich 1000ms


    Dann Fragst du im erstellen Callback dieses Timers ab, ob ein Spieler in der nähe dieses Objectes/Tor ist.


    Am besten, frägst du aber vorher ab ob er den richtigen Skin hat, da dies bisschen Ressourcenschonender ist, und nicht vorher danach noch Abfragen muss ob der Spieler in der nähe ist.


    Kleines Beispiel:



    OnGameModeInit


    SetTimer("Global",1000,1);



    forward Global();
    public Global()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerSkin(i) == GEWÜNSCHTE ID)
    {
    if(IsPlayerInRangeOfPoint(......
    }
    }
    }


    Wenn dann der Spieler in der nähe ist, dann einfach das Tor mit MoveObjectöffnen
    Und dann das Tor wieder schließen. Wenn sich z.B kein Spieler mehr in der nähe befindet.



    MFG

    MFG

  • ich hbae ein warnung


    C:\Users\Pascal D\Desktop\GTA Server\filterscripts\Gate.pwn(109) : warning 209: function "OnPlayerCommandText" should return a value
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.

  • public OnPlayerCommandText(playerid,cmdtext[])
    {
    //Befehle, etc.
    return 1;//Das fehlte
    }
    Da fehlte ein return 1; bei dir ;)

  • wo denn ?


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/auf", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20.0, -75.80, -352.76, 3.07))
    {
    new p_name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, p_name, MAX_PLAYER_NAME);
    if(GetPlayerSkin(playerid) != 287 && strcmp(p_name, "ZPlayGameLP")) return SendClientMessage(playerid, 0xFF0000FF, "Du bist kein Admin!");
    MoveObject(tGate,-75.80, -352.76, -2.74, 2.0);
    SendClientMessage(playerid, 0x33AA33AA, "Das Admin Tor geht in 5 Sekunden wider zu");
    SetTimer("GateClosetGate",5000,0);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, 0xAA3333AA, "Du bist nicht in der nähe vom Admin Tor");
    return 1;
    }
    }
    }