Befehle in OCMD und Dialog Funktioniert nicht.

  • Befehle in OCMD und Dialog Funktioniert nicht.

    1. Anliegen:

    Könnte mir jemand diese 2 Befehle in OCMD umschreiben?

    [pwn]public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/pckaufen", cmdtext, true, 10) == 0)
    {
    if(GetPlayerMoney(playerid) < 0)
    return SendClientMessage(playerid, 0xAFAFAFAA,"Du hast nicht genug Geld.");

    new email[32];
    format(email,32,Local,Player(playerid));

    if(dini_Exists(email))
    return SendClientMessage(playerid, 0xAFAFAFAA,"Sie haben nun einen Computer.");

    dini_Create(email);

    for(new i=0;i<sizeof(Emails);i++)
    dini_Set(email,Emails,"Leer");

    GameTextForPlayer(playerid, "Kosten: 2.000€", 5000, 1);
    GivePlayerMoney(playerid, -2000);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, 0xAFAFAFAA, "Sie können nun eine /email schreiben.");

    return 1;
    }
    if(strcmp("/email", cmdtext, true, 10) == 0) //ocmd:email(playerid,params[])
    {
    new email[32];
    format(email,32,Local,Player(playerid));

    if(!dini_Exists(email))
    return SendClientMessage(playerid, 0xAFAFAFAA,"Sie haben keinen Computer.");

    new listitems[] = "Posteingang\nSenden\nLöschen";
    ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "meine Emails: ", listitems,"Auswählen","Verlassen");

    return 1;
    }
    return 0;
    }[/pwn]

    2. Und im Befehl /email wird der Dialog nicht geöffnet:

    [pwn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 225)
    {
    if(!response)
    return 0;
    else
    {
    new str[128], email[32], string[1024];
    format(email,32,Local,Player(playerid));
    switch (listitem)
    {
    case 0:
    {
    for(new i=0;i<sizeof(Emails);i++)
    {
    format(str,128,"{C2A2DA}%d - %s\n",strval(Emails[i]),dini_Get(email,Emails[i]));
    strcat(string, str);
    }
    ShowPlayerDialog(playerid, 226, DIALOG_STYLE_LIST, "Posteingang: ", string,"Auswählen","Zurück");
    }
    case 1: ShowPlayerDialog(playerid, 227,DIALOG_STYLE_INPUT,"E-mail","Name des Empfänger:","Senden","Zurück");
    case 2: ShowPlayerDialog(playerid, 228,DIALOG_STYLE_INPUT,"E-mail","Anzahl der Mails:","Löschen","Zurück");
    }
    }
    }
    else if(dialogid == 226)//Lesen
    {
    if(!response)
    {
    new listitems[] = "Posteingang\nSenden\nLöschen";
    ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "Meine Emails: ", listitems,"Auswählen","Verlassen");
    }
    else
    MeineEmails(playerid,listitem);
    }
    else if(dialogid == 227)//Senden (Empfänger)
    {
    if(!response)
    {
    new listitems[] = "Posteingang\nSenden\nLöschen";
    ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "Meine Emails: ", listitems,"Auswählen","Abbrechen");
    }
    else
    {
    new file[64];
    format(file, sizeof(file), Players,inputtext);
    if(dini_Exists(file))
    {
    new giveid = ReturnUser(inputtext);
    format(file,32,Local,Player(giveid));

    if(!dini_Exists(file))
    return SendClientMessage(playerid, 0xAA3333AA,"[FEHLER] Spieler hat keinen Computer.");

    new str[128];
    format(str,128,"Sie sind dabei, eine Email zu senden an %s. Geben sie die Nachricht ein.", inputtext);
    SendClientMessage(playerid, 0xFFD700AA,str);
    format(Empfaenger[playerid],32,inputtext);
    return ShowPlayerDialog(playerid,229,DIALOG_STYLE_INPUT,"E-mail","Geben Sie eine Nachricht ein:","Senden","Zurück");
    }
    else
    SendClientMessage(playerid,0xAA3333AA,"[FEHLER] Dieser Benutzer existiert nicht.");
    }
    }
    else if(dialogid == 228)//Löschen
    {
    if(!response)
    {
    new listitems[] = "Posteingang\nSenden\nLöschen";
    ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "Meine Emails: ", listitems,"Auswählen","Abbrechen");
    }
    else
    {
    new n;
    n = strval(inputtext);

    new email[32];
    format(email,32,Local,Player(playerid));
    dini_Set(email,Emails[n-1],"Leer");
    }
    }
    else if(dialogid == 229)//Senden (Meldung)
    {
    if(response)
    {
    SendClientMessage(playerid,0xFFD700AA,"Email erfolgreich versendet.");
    SendeEmail(playerid,inputtext);
    }
    }
    else if(dialogid == 230)//Anzeigen von Email
    {
    if(response)
    {
    new listitems[] = "Posteingang\nSenden\nLöschen";
    ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "Meine Emails: ", listitems,"Auswählen","Abbrechen");
    }
    }
    return 1;
    }[/pwn]

  • [BlaZZeR]BirD schrieb:

    Warum sollten wir dir die Befehle in OCMD schreiben? dies ist ein Hilfe Forum und kein vorscript Forum
    Es war eine stinknormale Frage.
    Ich komme mit OCMD nicht klar, und brauche nun 2 Befehle in OCMD, weil ich dort nicht weiter weiß, deshalb benötige ich eure/deine Hilfe, damit ich dies mir festigen kann.
    Ich denke wir wissen beide, dass ich weiß was dies für ein Forum ist. :D

  • Warum hastn du das so?
    [pwn]new listitems[] = "Posteingang\nSenden\nLöschen";
    ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "meine Emails: ", listitems,"Auswählen","Verlassen");[/pwn]
    geht doch auch so (der Dialog brauch ja kein %s, %i usw)
    [pwn]ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "meine Emails: ", "Posteingang\nSenden\nLöschen","Auswählen","Verlassen");[/pwn]
  • Also zum 2.:

    [pwn]
    new listitems[] = "Posteingang\nSenden\nLöschen";
    ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "meine Emails: ", listitems,"Auswählen","Verlassen");
    [/pwn]

    zu

    [pwn]
    new listitems[65];
    formate(listitem, sizeof(listitem), "Posteingang\nSenden\nLöschen");
    ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "meine Emails: ", listitems,"Auswählen","Verlassen");
    [/pwn]

    wobei das mitd er Variable meiner Meinung nach, da du da nichts dynamisch erzeugst ehe nebensächlich ist,
    ich würde die liste besser direkt rein machen:
    [pwn]
    ShowPlayerDialog(playerid, 225, DIALOG_STYLE_LIST, "meine Emails: ", "Posteingang\nSenden\nLöschen","Auswählen","Verlassen");
    [/pwn]

    Zu deiner OCMD Sache:
    OCMD - Das wohl übersichtlichste!
    dann müsste das probblemlos zu machen sein,
    wie [BlaZZeR]BirD unter mit schon schrieb,
    bei uns soll man was lernen und nicht alles stumpflos vorgekaut bekommen ;)
    Gruß,
    Dennis