Lohn setzen per Dialog?

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
  • sa-mp-010.png beide Tests werden wiedergegeben






    Dieser Printf wird nicht ausgegeben.



    if(dialogid == FrakEinstell3)
    {
    SendClientMessage(playerid, Rot, "Test1");
    if(!response) return 1;
    SendClientMessage(playerid, Rot, "Test2");
    new pID,tmp[3];
    tmp[0] = inputtext[0];
    if('0' <= inputtext[1] <= '9') tmp[1] = inputtext[1];
    if('0' <= inputtext[2] <= '9') tmp[2] = inputtext[2];
    pID = strval(tmp);
    printf(" pID = strval(tmp) %i",strval(tmp));
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Nicht mehr on!");
    // SetPVarInt(playerid, "lohn_id",pID);
    new L1[259],L2[259];
    format(L1,sizeof(L1),"%s`s Lohn setzen",SpielerName(pID));
    format(L2,sizeof(L2),"Geben Sie den neuen Lohn für %s ein",SpielerName(pID));
    ShowPlayerDialog(playerid, FrakEinstell4, DIALOG_STYLE_INPUT,L1,L2,"Bestätigen","Abbrechen");
    return 1;
    }

    Mit freundlichen Grüßen,
    Dachdecker

    Einmal editiert, zuletzt von Dachdecker ()

  • ok das bedeutet es liegt an der abspeisung von der zahl.


    Du kannst ja mal das ausklammern und
    tmp="0"; einfügen mal sehen ob es weiter geht oder es mit diesem code testen der müsste eigentlich auch funktionieren


    strdel(inputtext, strfind(inputtext, "\t"), strlen(inputtext));
    pID = strval(inputtext);

  • sa-mp-011.pngjetzt kommt endlich der Dialog wo man etwas eintragen kann


    Muss ich jetzt mit SetPVarInt und GetPVarInt arbeiten um die PlayerID im Input Dialog weiter verwenden zu können?



    //EDIT


    Ich habe jetzt mit SetPVarInt(playerid, "lohn_id",pID); gearbeitet. Es dann im folgenden Dialog(FrakEinstell4) ausgelesen mit new pID = GetPVarInt(playerid,"lohn_id"); und es dann am ende unter der letzten SendClientMessage mit DestroyPVar(playerid, "lohn_id"); gereinigt.


    Lohn wurde dann ingame mit Dialog gesetzt. Und wurde auch angezeigt beim erneuten öffnen des Dialoges.


    Kann es jetzt nach dem ich den PVar Destroyed habe noch zu komplikationen kommen?

    Mit freundlichen Grüßen,
    Dachdecker

    Einmal editiert, zuletzt von Dachdecker ()

  • also du musst nicht mal umbedingt die variable sogar zerstören (dienwird beim ausloggen auch vom server geleert)aber es sollte keine komplikationen geben.


    Also mit meinem Code funktioniert es ?


    Also tmp="0" war ja nur zum testen :).


  • if(dialogid == FrakEinstell3)
    {
    if(!response) return 1;
    new pID,L1[259],L2[259];
    strdel(inputtext, strfind(inputtext, "\t"), strlen(inputtext));
    pID = strval(inputtext);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Nicht mehr on!");
    SetPVarInt(playerid, "lohn_id",pID);
    format(L1,sizeof(L1),"%s`s Lohn setzen",SpielerName(pID));
    format(L2,sizeof(L2),"Geben Sie den neuen Lohn für %s ein",SpielerName(pID));
    ShowPlayerDialog(playerid, FrakEinstell4, DIALOG_STYLE_INPUT,L1,L2,"Bestätigen","Abbrechen");
    return 1;
    }


    Kann doch so bleiben oder?

    Mit freundlichen Grüßen,
    Dachdecker