Hi kleine Menü Frage

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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 ein Menü erstellt:



    new string[256];
    new Menu:language;



    language = CreateMenu("[Language]", 1, 50.0, 180.0, 200.0, 200.0);


    AddMenuItem(language, 0, "English");
    AddMenuItem(language, 0, "Deutsch");
    AddMenuItem(language, 0, "Le francais");
    AddMenuItem(language, 0, "Espanol");



    public OnPlayerConnect(playerid)
    {
    ShowMenuForPlayer(language, playerid);
    }
    return 1;
    }



    public OnPlayerSelectedMenuRow(playerid, row)
    {


    new Menu:current;
    current = GetPlayerMenu(playerid);
    if(current == language)
    {
    switch(row)
    {
    case 0:
    {
    new name[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s can speak English",(playerid));
    SendClientMessageToAll(COLOR_BLUE,string);
    printf(string);
    }
    case 1:
    {
    new name[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s kann Deutsch",(playerid));
    SendClientMessageToAll(COLOR_ORANGE,string);
    printf(string);


    }
    case 2:
    {
    new name[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "Le francais sait %s",(playerid));
    SendClientMessageToAll(COLOR_YELLOW,string);
    printf(string);


    }
    case 3:
    {
    new name[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s sabe el espanol",(playerid));
    SendClientMessageToAll(COLOR_GREEN,string);
    printf(string);
    }
    }
    }
    return 1;
    }


    So, das Menü funzt es komtm aber ich habe 2 Probleme:
    1. Wie kann ich machen das wenn einer sich eine Sprache wählt und dann im Chat redet (z.b er holt Deutsch) so aussieht: [D]Spielername: blablabla
    Das vor dem Spielername ein [D] Steht und bei English so: [ENG]Spielername: bei Fränzösisch zo [FR] und bei Spanisch so [ES]
    2. Wie kann ich amchen das wenn ein Spielr eine Sprahce wählt eine MEldung an alle kommt Luka hat die Sprahce Deutsch gwählt z.b?


    MfG ~Luka~


    DANKE für jede HILFE :thumbup:

  • Du ich der Maggi meinte ich soll nen Befehl machen ^^ hier is er:
    if(strcmp(cmdtext, "/language", true) == 0)
    {
    new variable[50];
    variable = getstrspc(cmdtext, 1);
    new sprache = strval(variable);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    new eng[50],ger[50];


    if(!strlen(variable))
    return SendClientMessage(playerid, COLOR_RED, "Usage: /language 1 for German else an other (ka zahl^^) for english man");
    if(!IsNumeric(variable))
    return SendClientMessage(playerid, COLOR_RED, "Usage: /language 1 for German else an other (ka zahl^^) for english man");

    if(sprache==1)
    {
    format(ger, 50, "[GER]%s",name);
    SetPlayerName(playerid,ger);
    SendClientMessage(playerid, COLOR_WHITE, "Du hast die Deutsche Sprache gewählt");
    }
    else
    {
    format(eng, 50, "[ENG]%s",name);
    SetPlayerName(playerid,eng);
    SendClientMessage(playerid, COLOR_WHITE, "You choose the english language");
    }
    return 1;
    }

    Müsste eigentlich richtig sein error frei aber sonst nicht weiter getestet.

  • Hi,
    und wie kann ich das sofort über das Menü machen das wenn man im Menü English oder German wählt es sofort schon da ist? Für englishc und german reicht es schon die naderen sprahcne nehme ich raus^^


    MfG


  • new string[256];
    new Menu:language;



    language = CreateMenu("[Language]", 1, 50.0, 180.0, 200.0, 200.0);


    AddMenuItem(language, 0, "English");
    AddMenuItem(language, 0, "Deutsch");
    AddMenuItem(language, 0, "Le francais");
    AddMenuItem(language, 0, "Espanol");



    public OnPlayerConnect(playerid)
    {
    ShowMenuForPlayer(language, playerid);
    }
    return 1;
    }



    public OnPlayerSelectedMenuRow(playerid, row)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    new eng[50],ger[50],esp[50],fr[50];


    new Menu:current;
    current = GetPlayerMenu(playerid);
    if(current == language)
    {
    switch(row)
    {
    case 0:
    {
    new string[100];
    format(string, sizeof(string), "%s can speak English",PlayerName(playerid));
    SendClientMessageToAll(COLOR_BLUE,string);
    printf(string);
    format(eng, 50, "[ENG]%s",name);
    SetPlayerName(playerid,eng);
    SendClientMessage(playerid, COLOR_WHITE, "You choose the english language");



    }
    case 1:
    {
    new string[100];
    format(string, sizeof(string), "%s kann Deutsch",(playerid));
    SendClientMessageToAll(COLOR_ORANGE,string);
    printf(string);
    format(ger, 50, "[GER]%s",name);
    SetPlayerName(playerid,ger);
    SendClientMessage(playerid, COLOR_WHITE, "Du hast die Deutsche Sprache gewählt");



    }
    case 2:
    {
    new string[100];
    format(string, sizeof(string), "Le francais sait %s",(playerid)); // Öh Öh "%s peut parler français" wird sonst peinlich ;-) (google überetzter is meistens dreck)
    SendClientMessageToAll(COLOR_YELLOW,string);
    printf(string);
    format(fr, 50, "[FR]%s",name);
    SetPlayerName(playerid,ger);
    SendClientMessage(playerid, COLOR_WHITE, "Tu as choisi français");


    }
    case 3:
    {
    new string[100];
    format(string, sizeof(string), "%s sabe el espanol",PlayerName(playerid));
    SendClientMessageToAll(COLOR_GREEN,string);
    printf(string);
    format(ger, 50, "[ESP]%s",name);
    SetPlayerName(playerid,esp);
    SendClientMessage(playerid, COLOR_WHITE, "KA^^");
    }
    }
    }
    return 1;
    }


    Kuddelmuddel müsste so stimmen MFG Chriss
    #edit AAA Ich krieg die kriese wie oft sagte ich dir du sollst 1 Variable nicht für tausend verschiedene dinge verwenden!!! Änder das!

    2 Mal editiert, zuletzt von Chriss ()