Dialog funktioniert 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 hab mich mal an einem kleinen Script versucht, jedoch scheitert dies schon beim Ersten Dialog.
    Folgender Code:
    ocmd:startjob(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,3,-1061.1031,-1205.3881,129.7565)) {
    ShowPlayerDialog(playerid,DLG_JOB,DIALOG_STYLE_LIST,"job","Nummer 1\nNummer 2","Auswählen","Schließen");
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    switch(dialogid) {
    case DLG_JOB: {
    if(response) {
    switch(listitem) {
    case 0: {
    new rand = random(sizeof Cp);
    SetPlayerCheckpoint(playerid,Cp[rand][0],Cp[rand][1],Cp[rand][2],1);
    SendClientMessage(playerid,0x33CCFFAA,"1 klappt");
    mCP[playerid] = 1;
    K[playerid] = 1;
    SetPlayerSkin(playerid,158);
    }
    case 1: {
    for(new i;i<sizeof frCars;i++) {
    if(inFrUse[fCar[i]] != -1)continue;
    if(i>sizeof frCars)return SendClientMessage(playerid,0xFF6347AA,"belegt");
    SetPlayerCheckpoint(playerid,frCars[i][0],frCars[i][1],frCars[i][2],5);
    inFrUse[i] = playerid;
    return SendClientMessage(playerid,0x33CCFFAA,"2 klappt");
    }
    }
    }
    }
    }
    return 1;
    }


    Wenn ich nun /startjob eingeben, bekomme ich den Dialog zwar angezeigt, jedoch nichts weiteres wenn ich etwas anklicke (auswähle).
    Warum?


    @Jeffry :D


    lg
    Deagle

  • Was wird dir so im Server Log geprintet?
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    printf("OnDialogResponse");
    switch(dialogid)
    {
    case DLG_JOB:
    {
    printf("DLG_JOB");
    if(response)
    {
    printf("response");
    switch(listitem)
    {
    case 0:
    {
    printf("0");
    new rand = random(sizeof Cp);
    SetPlayerCheckpoint(playerid,Cp[rand][0],Cp[rand][1],Cp[rand][2],1);
    SendClientMessage(playerid,0x33CCFFAA,"1 klappt");
    mCP[playerid] = 1;
    K[playerid] = 1;
    SetPlayerSkin(playerid,158);
    return 1;
    }
    case 1:
    {
    printf("1");
    for(new i;i<sizeof frCars;i++)
    {
    if(inFrUse[fCar[i]] != -1)continue;
    SetPlayerCheckpoint(playerid,frCars[i][0],frCars[i][1],frCars[i][2],5);
    inFrUse[i] = playerid;
    return SendClientMessage(playerid,0x33CCFFAA,"2 klappt");
    }
    return SendClientMessage(playerid,0xFF6347AA,"belegt");
    }
    }
    }
    }
    }
    return 0;
    }

  • Ist ja komisch.
    Was wird dir so ausgegeben?
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    printf("OnDialogResponse");
    printf("dialogid: %d == %d DLG_JOB", dialogid, DLG_JOB);
    if(dialogid == DLG_JOB)
    {
    printf("DLG_JOB");
    if(response)
    {
    printf("response");
    switch(listitem)
    {
    case 0:
    {
    printf("0");
    new rand = random(sizeof Cp);
    SetPlayerCheckpoint(playerid,Cp[rand][0],Cp[rand][1],Cp[rand][2],1);
    SendClientMessage(playerid,0x33CCFFAA,"1 klappt");
    mCP[playerid] = 1;
    K[playerid] = 1;
    SetPlayerSkin(playerid,158);
    return 1;
    }
    case 1:
    {
    printf("1");
    for(new i;i<sizeof frCars;i++)
    {
    if(inFrUse[fCar[i]] != -1)continue;
    SetPlayerCheckpoint(playerid,frCars[i][0],frCars[i][1],frCars[i][2],5);
    inFrUse[i] = playerid;
    return SendClientMessage(playerid,0x33CCFFAA,"2 klappt");
    }
    return SendClientMessage(playerid,0xFF6347AA,"belegt");
    }
    }
    }
    }
    return 0;
    }