/Enter Befehl [FRAGE]

  • Abend liebe Leser


    Ich bin grad so nebenher am Scripten und möchte aktuell den Befehl /Enter scripten.
    Jedoch habe ich das problem, dass ich diesen Befehl von überall eingeben kann und werde dann in mein Interior Telepotiert.
    Warum, weis ich leider nicht. Normalerweise sollte es nur im Radius von 3metern gehen.


    Könnt ihr mir bitte weiterhelfen ?


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/enter",cmdtext,true))
    {
    if(!IsPlayerInRangeOfPoint(playerid, 3.0,739.0507,-1417.6555,13.5234))
    Create3DTextLabel("Test",0x33CCFFAA,739.0507,-1417.6555,13.5234,30.0,0,0);
    SetPlayerPos(playerid, 203.777999,-48.492397,1001.804687);
    SetPlayerInterior(playerid, 1);
    return 1;
    }
    return 0;
    }

  • Code
    public OnPlayerCommandText(playerid, cmdtext[]) {
         if(!strcmp("/enter",cmdtext,true)) {
              if(IsPlayerInRangeOfPoint(playerid, 3.0, 739.0507, -1417.6555, 13.5234)) {
                   SetPlayerPos(playerid, 203.777999,-48.492397,1001.804687);
                   SetPlayerInterior(playerid, 1);
                   return 1;
              }
         }
         return 0;
    }

    So dürfte es funktionieren :)
    Du hast das Gegenteil abgeprüft, würde theoretisch auch gehen, wenn du dahinter irgendwas returnst, aber du willst ja sicher mehrere "Dinge" über enter betretbar machen.


    Kannst du mir erklären wofür du das "Create3DTextLabel("Test",0x33CCFFAA,739.0507,-1417.6555,13.5234,30.0,0,0);" an der Stelle brauchst?
    Würde das eher im OnGameModeInit() festlegen.

  • Code
    public OnPlayerCommandText(playerid, cmdtext[]) {
         if(!strcmp("/enter",cmdtext,true)) {
              if(IsPlayerInRangeOfPoint(playerid, 3.0, 739.0507, -1417.6555, 13.5234)) {
                   SetPlayerPos(playerid, 203.777999,-48.492397,1001.804687);
                   SetPlayerInterior(playerid, 1);
                   return 1;
              }
         }
         return 0;
    }

    So dürfte es funktionieren :)
    Du hast das Gegenteil abgeprüft, würde theoretisch auch gehen, wenn du dahinter irgendwas returnst, aber du willst ja sicher mehrere "Dinge" über enter betretbar machen.


    Kannst du mir erklären wofür du das "Create3DTextLabel("Test",0x33CCFFAA,739.0507,-1417.6555,13.5234,30.0,0,0);" an der Stelle brauchst?
    Würde das eher im OnGameModeInit() festlegen.

    Danke, hat funktioniert :)


    Würde es auch bei "OnGameModelnit()" festlegen, aber es wird mir einfach kein 3DTextLabel angezeigt, ich weis nicht warum