Gate Befehl - Hilfe

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 liebes SA-MP.DE Forum,
    ich brauche hilfe bei diesem Befehl, und zwar ich will die ganzen gates auf meine Server / Script so Scripten, das diese mit der Taste " H " aufgehen, allso praktisch wenn ich die Taste H Drücke, und dann vor dem Tor stehe geht das tor auf.


    Und hier der Befehel, nur ich weiß nicht wie ich das mache das das tor mit der Taste " H " aufgeht, würde mich freuen wenn mir da jemand helfen würde.



    if(strcmp(cmd,"/fbitor",true) == 0)
    {
    if(IsACop(playerid))
    {
    if(fbitorvar == 0)
    {
    MoveObject(fbitor, 1501.50000000,-1617.69995117,3.90000038, 2.5);
    SendClientMessage(playerid, COLOR_GREEN, "Tor geöffnet");
    PlaySoundForPlayer(playerid,1035);
    SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
    fbitorvar = 1;
    }
    else
    {
    MoveObject(fbitor,1501.50000000,-1617.69995117,9.60000038, 2.5);
    SendClientMessage(playerid, COLOR_RED, "Tor geschlossen");
    PlaySoundForPlayer(playerid,1035);
    SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
    fbitorvar = 0;
    }
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist kein Beamter");
    return 1;
    }



    mfg: RaZ3r
    Freue mich auf Antworten

    signaturjohnparker.jpg

    Einmal editiert, zuletzt von John Parker () aus folgendem Grund: edit: text


  • Wie wäre es wenn du ganz einfach OnPlayerCommandText beim dem drücken der taste aufrufst

  • OnPlayerCommandText(playerid,"");


    ist die lösung den rest kannst ja selbst machen mit der taste bietet sich es an wenn du printf bein OnPlayerKeyStateChange
    benutzt und die newkeys printen lässt dann hast du von den tasten den wert

  • kann man das nicht irgend wie in diesen befehl hier mit einbinden ?


    if(strcmp(cmd,"/fbitor",true) == 0)
    {
    if(IsACop(playerid))
    {
    if(fbitorvar == 0)
    {
    MoveObject(fbitor, 1501.50000000,-1617.69995117,3.90000038, 2.5);
    SendClientMessage(playerid, COLOR_GREEN, "Tor geöffnet");
    PlaySoundForPlayer(playerid,1035);
    SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
    fbitorvar = 1;
    }
    else
    {
    MoveObject(fbitor,1501.50000000,-1617.69995117,9.60000038, 2.5);
    SendClientMessage(playerid, COLOR_RED, "Tor geschlossen");
    PlaySoundForPlayer(playerid,1035);
    SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
    fbitorvar = 0;
    }
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist kein Beamter");
    return 1;
    }


    mfg: RaZ3r
    ??

    signaturjohnparker.jpg

    Einmal editiert, zuletzt von John Parker () aus folgendem Grund: edit


  • if(newkeys == DEINE_TASTE)
    {
    OnPlayerCommandText(playerid, "DEINBEFEHL");
    }


    und wo soll ich das nun genau hinpacken ?
    ober den Befhel:


    if(strcmp(cmd,"/fbitor",true) == 0)
    {
    if(IsACop(playerid))
    {
    if(fbitorvar == 0)
    {
    MoveObject(fbitor, 1501.50000000,-1617.69995117,3.90000038, 2.5);
    SendClientMessage(playerid, COLOR_GREEN, "Tor geöffnet");
    PlaySoundForPlayer(playerid,1035);
    SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
    fbitorvar = 1;
    }
    else
    {
    MoveObject(fbitor,1501.50000000,-1617.69995117,9.60000038, 2.5);
    SendClientMessage(playerid, COLOR_RED, "Tor geschlossen");
    PlaySoundForPlayer(playerid,1035);
    SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
    fbitorvar = 0;
    }
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist kein Beamter");
    return 1;
    }


    oder einfach austauschen ?



    /edit:


    Und was meinst du mit:
    if(newkeys == DEINE_TASTE)


    Dort wo steht DEINE_TASTE einfach H hinschreiben oder muss ich da auch was beachten ?

  • OnPlayerKeyStateChange
    Ich weiß so im Kopf aber gerade garnicht ob die Taste H in SA-MP für nen Tastenbefehl verwendbar ist.


    allso ich habs schonmals aufn server gesehen das wenn man die Taste " H " allso hupe drückt das das tor aufgeht :)


    P.s ich habs jetzt so gemacht:


    if(newkeys == H)
    {
    OnPlayerCommandText(playerid, "/fbitor");
    }
    if(strcmp(cmd,"/fbitor",true) == 0)
    {
    if(IsACop(playerid))
    {
    if(fbitorvar == 0)
    {
    MoveObject(fbitor, 1501.50000000,-1617.69995117,3.90000038, 2.5);
    SendClientMessage(playerid, COLOR_GREEN, "Tor geöffnet");
    PlaySoundForPlayer(playerid,1035);
    SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
    fbitorvar = 1;
    }
    else
    {
    MoveObject(fbitor,1501.50000000,-1617.69995117,9.60000038, 2.5);
    SendClientMessage(playerid, COLOR_RED, "Tor geschlossen");
    PlaySoundForPlayer(playerid,1035);
    SetTimerEx("PlaySoundForPlayer",2000,0,"id",playerid,1036);
    fbitorvar = 0;
    }
    }
    else SendClientMessage(playerid,COLOR_RED," Du bist kein Beamter");
    return 1;
    }


    is das richtig ?

  • Nein der Tastenbefehl kommt in OnPlayerKeyStateChange und der Befehl unter OnPLayerCommandText.
    Und für H musst du die ID oder die definierte Bezeichnung nehmen und nicht einfach "H" eintragen.
    DIe Bezeichnungen findest du in der a_samp Include.

    RFT

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ok das müsste nun Richtig sein:
    if(newkeys == DEINE_TASTE)
    {
    OnPlayerCommandText(playerid, "DEINBEFEHL");
    }


    So ich suche jetzt die H in der a_samp include...
    aber ich finde sie nicht, hat jemand den Tastenbefehl oder weiß dieser jemand ?...


    //edit:


    habe nur diese hier gefunden:
    // Keys
    #define KEY_ACTION (1)
    #define KEY_CROUCH (2)
    #define KEY_FIRE (4)
    #define KEY_SPRINT (8)
    #define KEY_SECONDARY_ATTACK (16)
    #define KEY_JUMP (32)
    #define KEY_LOOK_RIGHT (64)
    #define KEY_HANDBRAKE (128)
    #define KEY_LOOK_LEFT (256)
    #define KEY_SUBMISSION (512)
    #define KEY_LOOK_BEHIND (512)
    #define KEY_WALK (1024)
    #define KEY_ANALOG_UP (2048)
    #define KEY_ANALOG_DOWN (4096)
    #define KEY_ANALOG_LEFT (8192)
    #define KEY_ANALOG_RIGHT (16384)
    #define KEY_YES (65536)
    #define KEY_NO (131072)
    #define KEY_CTRL_BACK (262144)


    #define KEY_UP (-128)
    #define KEY_DOWN (128)
    #define KEY_LEFT (-128)
    #define KEY_RIGHT (128)

  • if(newkeys == KEY_CTRL_BACK)
    {
    OnPlayerCommandText(playerid, "/fbitor");
    }



    Das funktioniert nun aber nur wenn ich nicht im auto sitzt funktionier es, wenn ich H drücke und sitzt im auto geht es nicht..
    kann ich das auch irgend wie machen, das wenn ich im auto sitze und H drücke das es dann funktioniert ?


    Würde mich auf hilfe freuen.
    mfg: RaZ3r

    signaturjohnparker.jpg

    Einmal editiert, zuletzt von John Parker () aus folgendem Grund: edit

  • Ok,
    erstmals danke...


    so hat es funktioniert:
    if(newkeys == KEY_CROUCH)
    {
    OnPlayerCommandText(playerid, "/fbitor");
    }


    Danke somit hat sich das Thema erledigt...
    aber hätte noch eine frage und zwar wie kann ich es so machen mit dem befehl das ich mehrere befehle hinzufüge?


    So oder:
    if(newkeys == KEY_CROUCH)
    {
    OnPlayerCommandText(playerid, "/fbitor") || "/Befehl") || "/Befehl");
    }


    oder wie genau funkt das ? ^^