Beiträge von Mayo

    Nein, ich meine wenn du z.B. einen Befehl per Taste ausführen willst, kann man ja unter OnPlayerKeyStateChange per OnPlayerCommandText(playerid,"/befehl"); ausführen.
    Dies geht aber nur, wenn der Befehl unter function OnPlayerCommandText liegt.
    Ocmd's haben ein anderes System und sind somit nicht mit der Funktion ausführbar. Sie müssen immer per Taste T /... eingegeben werden. Ich würde sie aber gerne per Doppelklick im Dialog ausführen.
    Dazu braucht man aber eine Funktion für ocmd die genau wie OnPlayerCommandText(playerid,"/befehl"); funktioniert. Nun ist meine Frage, ob es so eine Funktion gibt.

    Hallo,
    ich habe da eine kleine Frage...


    Ich wollte mein Hilfedialog so aufbauen, dass man per Doppelklick den Befehl ausführen kann.
    Ist ja auch alles schön und gut bei den Standartbefehlen.
    Dort gibt es diese Funktion die den Befehl dann ausführt:


    OnPlayerCommandText(playerid,"/befehl");



    Nun baue ich aber lieber auf ocmd auf. Gibt es dort eine gleiche oder ähnliche Funktion?


    Danke sehr. :)


    MfG

    Ich dachte die Überschrift reicht...
    Also ich möchte ein System, dass einem Fraktionsmitglied erlaubt ohne alles ins Auto einzusteigen.
    Wenn aber ein nicht Fraktionsmitglied einsteigen will, ist die Tür "abgeschlossen" und er wird nicht einfach aus dem Auto wieder geworfen.
    Das Fraktionsmitglied kann aber im Auto /flock machen, um dem nicht Fraktionsmitglied die Tür zu öffnen und wieder zu verschliessen.


    //edit
    Wie gesagt, ich möchte es ja selber machen, nur WIE muss ich die Sache angehen? Wie mache ich das genau?

    Guten Tag,
    ich habe momentan ein System, welches so funktioniert, dass der jenige der nicht in der Fraktion ist und ins Fraktionsauto einsteigen will, egal wie, aus dem Auto geworfen wird und ein Text kommt.
    Die sieht so aus:


    Das definierte Auto


    news[0] = CreateVehicle(582,591.50000000,-1299.40002441,14.80000019,16.00000000,7,1,-1); //Newsvan
    SetVehicleNumberPlate(news[0],"NEWS-00");


    Die Funktion, die überprüft, ob er das Auto fahren darf:




    public OnPlayerStateChange(playerid, newstate, oldstate)


    {
    for(new i=0; i<sizeof(news); i++)
    {
    if(GetPlayerVehicleID(playerid)==news[i])
    {
    if(!IstSpielerInFraktion(playerid,6))
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,Rot,"Du darfst das Fahrzeug nicht fahren, da du kein Nachrichten Journalist bist.");
    return 1;
    }
    }
    }
    return 1;
    }


    Nun, da mich dieses System etwas stört, möchte ich auf ein besseres System umsteigen.
    Nun stellt sich mir die Frage, wie ich das mache?
    Könnte mir einer helfen?


    Danke im vor raus :)

    Probier das mal :)


    if(dialogid == DIALOG_CHANGEPASS)
    {
    if(response)
    {
    if(PlayerInfo[playerid][pAdjustable] == 1)
    {
    if(strlen(inputtext) > 3)
    {
    new string22[128], string[128]; //string dazu definiert
    format(string22, 128, "Du hast dein Passwort zu {FF1E00} %s {FFFFFF} geändert", inputtext);
    SendClientMessage(playerid, 0xFFFFFFFF, string22);
    strmid(PlayerInfo[playerid][pKey], inputtext, 0, strlen(inputtext), 255);
    format(string, sizeof(string), "/Accounts/%s.ini", plname);
    PlayerInfo[playerid][pKey] == inputtext;
    return 1;
    }
    else SendClientMessage(playerid, 0xFFFFFFFF, "Dein Passwort muss mindestens 4 Zeichen lang sein.");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Sicherheitslücke");
    }
    }
    }

    Hallo,
    ich habe wieder mal ein Problem.
    Dieser Befehl gibt keine Errors, aber Funktioniert auch nicht.


    if (strcmp(cmdtext, "/auto park", true)==0)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Rot,"Du musst in deinem Fahrzeug sitzen, um es zu parken!");
    new vehicleid = GetPlayerVehicleID(playerid);
    new Autodatei[100],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Autodatei,sizeof(Autodatei),"/Autos/%s_Auto_1.ini",name);
    if(dini_Exists(Autodatei))
    {
    new Float:vx, Float:vy, Float:vz, Float:va;
    GetVehiclePos(vehicleid,vx,vy,vz);
    GetVehicleZAngle(vehicleid,va);
    dini_FloatSet(Autodatei,"posx",vx);
    dini_FloatSet(Autodatei,"posy",vy);
    dini_FloatSet(Autodatei,"posz",vz);
    dini_FloatSet(Autodatei,"posa",va);
    new vehpostext[96];
    format(vehpostext, sizeof(vehpostext), "Die neue Parkposition ist: %f, %f, %f, %f", vx, vy, vz, va);
    SendClientMessage(playerid, 0xFFFFFFFF, vehpostext);
    return 1;
    }
    return 1;
    }


    Kann mir einer erklären warum nicht und ihn korrigieren?


    Danke im Voraus...


    MfG

    Hallo,
    ich komme grade nicht weiter.
    Ich habe diese Dialog hier erstellt:
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    if(IstSpielerAdmin(playerid, 1))
    {
    ShowPlayerDialog(playerid,admm,DIALOG_STYLE_LIST,"Admin Control","Spieler Kicken\nSpieler Bannen\nTeleportieren\nSpieler Geld geben\nSpieler Checken","Okay","Abbrechen");
    return 1;
    }
    return 1;
    }


    Nun will ich die einzelnen Funktionen machen bei OnDialogResponse.
    Dies mach ich so:


    if(response)
    {
    switch(dialogid == 15)
    {
    case 1:
    {
    switch(listitem)
    {
    case 0:
    {
    Kick();
    return 1;
    }
    case 1:
    {
    //...
    return 1;
    }
    case 2:
    {


    return 1;
    }
    case 3:
    {
    //...
    return 1;
    }
    case 4:
    {
    //..
    return 1;
    }
    }
    }
    }
    }


    Aber wie bekomme ich die ID des angeklicken Spielers??
    case 0:
    {
    Kick();//hier?!
    return 1;
    }
    Ich bin am verzweifeln :s


    Danke im Vorraus.
    MfG

    Hallo.
    Ich habe ein Problem. Es gibt meistens nur 1 interior wie z.B. beim BSN.
    Wie mache ich es, dass ich diesen Interior mehrfach benutze ohne das die leute wenn sie am laden 1 rein gehen die leute sehen die am laden 2 rein gehen?
    Mit SetPlayerInterior(playerid,ID); sieht man den Innenraum dann nicht mehr.


    Kann mir einer helfen?:)


    Wäre echt nett.
    Danke :)

    Hallo,
    ich habe ein kleines Problem.
    Ich kenne mich nicht so gut mit sscanf aus und weis nicht weiter.


    Ich weis nicht ob es daran liegt, aber ich denke es.


    ocmd:setcolor(playerid,params[])
    {
    new ID,ID2;
    if(!IsPlayerInAnyVehicle(playerid))return 1;
    if(sscanf(params,"dd",ID,ID2))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /setcolor [Farb ID] [Farb ID]");
    Autos[playerid][GetPlayerVehicleID(playerid)][Farbe1] = ID;
    Autos[playerid][GetPlayerVehicleID(playerid)][Farbe2] = ID2;
    ChangeVehicleColor(GetPlayerVehicleID(playerid),ID,ID2);
    return 1;
    }



    if(sscanf(params,"dd",ID,ID2))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /setcolor [Farb ID] [Farb ID]");
    Das in den "" sollte falsch sein denke ich... Was ist für den befehl richtig?
    Ich habe mir die Tabelle hier angeguckt werde aber trozdem nicht schlau draus.
    http://forum.sa-mp.com/showthread.php?t=120356


    Kann mir wer helfen?
    Danke:)