Dialoge gehen local, sonst nicht.

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


    ich habe für unsere Community gtarl.de ein kleine Eventfilterscript gemacht.
    Bei mir, also local, funkioniert alles wunderbar, nur auf dem Server der Community, d.h. mit der GameMode des Server gibt es irgendwie Probleme mit den Dialogen.


    Eigentlich sollte es so sein, das ich ein Pickup betrete, und sich dadurch ein InputDialog öffnet, auf dass dann noch ein InputDialog folgt. Letztendlich kommt noch ein MSGDialog, was eigentlich egal ist, da es schon vorher zum Bug kommt.


    Nun, auf dem RL-Server öffnet sich, durch betreten das erste Dialog. Dort geb ich jetzt meinen Text ein und drücke weiter. Eigentlich sollte sich dann das zweite Dialog öffnen, was es aber nicht tut. Man bleibt freezed usw.


    Hier mal die etwas geänderten Codes (hab die Lösungen für das Event geändert)


    #define Ende1 500 //hier hatte ich schon 1,2,3 aber ich dachte, dass es evnt. mit der Gamemode zusammenhängen könnte, die auch wahrscheinlich ihr dialoge auf 1,2,3 definiert haben.
    #define Ende2 501
    #define Ende3 502


    if(pickupid == pende)
    {
    if(inside[playerid]==0)
    {
    ShowPlayerDialog(playerid, Ende1, DIALOG_STYLE_INPUT, "Der letzte Test","Addiere die fünf gefundenen Zahlen und gib das Ergebnis hier ein:","Bestätigen","Abbrechen");
    TogglePlayerControllable(playerid,0);
    inside[playerid]=1;
    }
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Ende1)
    {
    if(!response) {SendClientMessage(playerid, 0xC32D2EFF, "[Event] Abgebrochen"); TogglePlayerControllable(playerid,1); inside[playerid]=0; return 1;}
    else
    {
    if(strval(inputtext) == 55)
    {
    ShowPlayerDialog(playerid, Ende2, DIALOG_STYLE_INPUT, "Das war richtig!","Gib nun das gefundene Wort ein, um die Schatzkammer zu öffnen.","Bestätigen", "Abbrechen");
    }
    else
    {
    new str[256];
    format(str,sizeof(str),"Oh nein! Die Zahl ´%d´ ist nicht korrekt. Du wurdest wieder an den Anfang gebracht.",strval(inputtext));
    SendClientMessage(playerid,0xFFF39DFF,str);
    SetPlayerPos(playerid,45.644378, 1484.422485, 12.750000);
    TogglePlayerControllable(playerid,1);
    inside[playerid]=0;
    }
    }
    }

    if(dialogid == Ende2)
    {
    if(!response) {SendClientMessage(playerid, 0xC32D2EFF, "[Event] Abgebrochen"); TogglePlayerControllable(playerid,1);inside[playerid]=0; return 1;}
    else
    {
    if(!strcmp("blutauge",inputtext))
    {
    ShowPlayerDialog(playerid, Ende3, DIALOG_STYLE_MSGBOX, "Geschafft!","Nach Klicken von ´Öffnen´ wird sich das Tor vor dir öffnen. Aber beeile dich, es schließt sich nach 7 Sekunden wieder.","Öffnen", "Abbrechen");
    }
    else
    {
    new str[256];
    format(str,sizeof(str),"Oh nein! Das Wort ´%s´ ist nicht korrekt. Du wurdest wieder an den Anfang gebracht.",inputtext);
    SendClientMessage(playerid,0xFFF39DFF,str);
    SetPlayerPos(playerid,45.644378, 1484.422485, 12.750000);
    TogglePlayerControllable(playerid,1);
    inside[playerid]=0;
    }
    }
    }

    if(dialogid == Ende3)
    {
    if(!response) {SendClientMessage(playerid, 0xC32D2EFF, "[Event] Abgebrochen"); TogglePlayerControllable(playerid,1);inside[playerid]=0; return 1;}
    else
    {
    MoveObject(Tor2,1256.837280, -2028.018188, 56.858845,1.5);
    TogglePlayerControllable(playerid,1);
    inside[playerid]=0;
    Torpos2=1;
    timer1 = SetTimer("Torfunktion",7000,1);
    new Tag, Monat, Jahr, Minute, Stunde, Sekunde, Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    getdate(Jahr, Monat, Tag);
    gettime(Stunde,Minute,Sekunde);
    printf("[Event] %s hat das Labyrinth Event am %02d.%02d.%d um %02d:%02d:%02d geschafft.",Name,Tag,Monat,Jahr,Stunde, Minute, Sekunde);
    }
    }

    return 1;
    }


    wie schon gesagt, nachdem das Dialog vom Pickup gezeigt wurde, schließen sich die Dialoge und man bleibt freezed stehen.



    Ich hoffe ihr wisst mehr als ich und könnt mir helfen xD^^
    Großes Danke im vorraus
    Martin08 :thumbup: :thumbup:


    EDIT: Ich wäre echt dankbar, wenn jemand ne Idee hätte. Ansonsten müsste ich das wieder ausbauen, was ich aber schade ums Event finden würde. :|

    Wenn ich dir geholfen haben sollte, würde ich mich extremst freuen, wenn du dir kurz Zeit nehmen würdest und mir helfen könntest:


    Unterstütze mich bitte hier und vote für mich:


    Ihr müsst nur oben links auf Vote klicken und bestätigen! Vielen Dank dafür

    3 Mal editiert, zuletzt von Martin08 ()