RPNamen setzten klappt 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
  • Hallo liebe Scripter,
    Ich habe da so ein kleines Problem...
    Undzwar wenn ich mich registriere muss ich einen RPNamen eingeben, aber wenn ich das eingebe und Enter drücke bzw. auf Weiter, dann gehts nicht weiter...



    case DIALOG_REGSTEP4:
    {
    new altgstring[350];
    format(altgstring,sizeof(altgstring),"Damit dein Account weiter vervollständigt ist, brauchen wir noch dein RolePlay Namen.");
    if(strlen(inputtext) < 1)
    {
    ShowPlayerDialog(playerid,DIALOG_REGSTEP4,DIALOG_STYLE_INPUT,"{007DFF}"SERV_NAME" | Account erstellen 4/5",altgstring,"Weiter","");
    } else {
    new rpstring[128], rpname[128];
    if(strlen(inputtext) < 8 || strlen(inputtext) > 32)
    {
    if(strfind(inputtext, "_", true) != -1)
    {
    format(rpname,sizeof(rpname),"%s",inputtext);
    SpielerInfo[playerid][sRPName] = rpname;
    mysql_SetString("accounts", "RpName", rpname, "Name", GetName(playerid));
    format(rpstring,sizeof(rpstring),"{FFFFFF}Dein Roleplay Name ist also {007DFF}%s{FFFFFF}.\nDamit dein Account weiter vervollständigt ist, brauchen wir noch dein Geschlecht.",rpname);
    ShowPlayerDialog(playerid,DIALOG_REGSTEP5,DIALOG_STYLE_INPUT,"{007DFF}"SERV_NAME" | Account erstellen 5/5",altgstring,"Männlich","Weiblich");
    } else {
    format(rpstring,sizeof(rpstring),"Damit dein Account weiter vervollständigt ist, brauchen wir noch dein RolePlay Namen.");
    ShowPlayerDialog(playerid,DIALOG_REGSTEP4,DIALOG_STYLE_INPUT,"{007DFF}"SERV_NAME" | Account erstellen 4/5",altgstring,"Weiter","");
    }
    }
    }
    }

    Und bei mir kommt noch ein error... (24351) : error 006: must be assigned to an array


    MfG Kevin_Jr


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

  • Hard_Base das wird nicht funktionieren.
    Du kannst nicht mit sizeof die Länge von einem Array aus einem Enum bekommen.
    format(SpielerInfo[playerid][sRPName],MAX_PLAYER_NAME,"%s",inputtext);
    Kommt natürlich drauf an, wie groß sRPName ist, das müsste man ggf. Bei MAX_PLAYER_NAME anpassen.

  • In dem Code waren noch weitaus mehr Fehler als der Syntaxfehler drin.
    1) rpstring formatiert und altgstring ausgegeben
    2) strlen Abfrage ob zwischen 8 und 32 falsch herum
    3) Eine Möglichkeit, dass gar nichts mehr passiert
    4) Unnötige if-Abfrage (doppelter Code) und zu viele Variablen


    So muss es aussehen:
    case DIALOG_REGSTEP4:
    {
    new altgstring[350];
    if(strlen(inputtext) >= 8 && strlen(inputtext) <= 32)
    {
    if(strfind(inputtext, "_", true) != -1)
    {
    format(SpielerInfo[playerid][sRPName], MAX_PLAYER_NAME, inputtext);
    mysql_SetString("accounts", "RpName", SpielerInfo[playerid][sRPName], "Name", GetName(playerid));
    format(altgstring,sizeof(altgstring),"{FFFFFF}Dein Roleplay Name ist also {007DFF}%s{FFFFFF}.\nDamit dein Account weiter vervollständigt ist, brauchen wir noch dein Geschlecht.",SpielerInfo[playerid][sRPName]);
    ShowPlayerDialog(playerid,DIALOG_REGSTEP5,DIALOG_STYLE_INPUT,"{007DFF}"SERV_NAME" | Account erstellen 5/5",altgstring,"Männlich","Weiblich");
    return 1;
    }
    }
    format(altgstring,sizeof(altgstring),"Damit dein Account weiter vervollständigt ist, brauchen wir noch dein RolePlay Namen.");
    ShowPlayerDialog(playerid,DIALOG_REGSTEP4,DIALOG_STYLE_INPUT,"{007DFF}"SERV_NAME" | Account erstellen 4/5",altgstring,"Weiter","");
    return 1;
    }

  • Ok, danke für die hilfreichen Beiträge hier, ich probiere es mal aus und werden dann den Text bearbeiten, ob es klappt oder nicht.


    Es hat gut geklappt. Danke nochmal!


    Noch eine Frage, wie zeige ich das an wenn der Spieler Connectet?


    Ich habe das mal so geschrieben unter OnPlayerConnect.


    format(string,sizeof(string),"%s",SpielerInfo[playerid][sRPName]); Create3DTextLabel(string,COLOR_WHITE,30.0,40.0,50.0,40.0,0);


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

    Einmal editiert, zuletzt von Kevin_CaruZo ()

  • Beim Login, nachdem sRPName geladen ist:
    format(string,sizeof(string),"%s",SpielerInfo[playerid][sRPName]);
    SpielerInfo[playerid][pLabel] = Create3DTextLabel(string,COLOR_WHITE,30.0,40.0,50.0,40.0,0);


    OnPlayerSpawn:
    Attach3DTextLabelToPlayer(SpielerInfo[playerid][pLabel], playerid, 0.0, 0.0, 0.7);


    Im enum zu SpielerInfo:
    Text3D:pLabel,


    Und beim Disconnect löschen.
    Delete3DTextLabel(SpielerInfo[playerid][pLabel]);

  • Danke für die schnelle Antwort, ich werde es mal ausprobieren, ich melde mich wieder wennees funktioniert oder nicht.


    Es hat leider nicht geklappt. Der Name wird nicht angezeigt....


    Und als ich das ins Chat einfügen wollte steht da kein Name:


    new rpname = SpielerInfo[playerid][sRPName]; if(GetPVarInt(playerid,"CopMaske") == 1){format(textgstring,sizeof(textgstring),"Maskierter sagt: %s",text);} else {format(textgstring,sizeof(textgstring),"%s sagt: %s",rpname,text);}



    Ich habe das vor dem Bot gemacht und er hatte auf einmal übersich den Create3Dtextlabel von LSPD eingang.


    MfG


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

    Einmal editiert, zuletzt von Kevin_CaruZo ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Sry :)


    new rpname = SpielerInfo[playerid][sRPName];
    if(GetPVarInt(playerid,"CopMaske") == 1){format(textgstring,sizeof(textgstring),"Maskierter sagt: %s",text);}
    else {format(textgstring,sizeof(textgstring),"%s sagt: %s",rpname,text);}


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

  • Ok habe gerade LoadAccount gefunden ^^


    Habs eingefügt.


    stock LoadAccount(playerid){
    if(IsPlayerNPC(playerid) || GetPVarInt(playerid,"LoggedIn") == 0)return 0;
    new var[256], string[256];
    format(string, sizeof(string),"SELECT * FROM `accounts` WHERE `Name` = '%s'", GetName(playerid));
    mysql_query(string);
    mysql_store_result();
    while(mysql_fetch_row_format(string,"|")){
    mysql_get_field("RpName",var); SpielerInfo[playerid][sRPName] = floatstr(var);


    Ist einteil davon ^^


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

  • 1. Habe ich das problem das der Name oben nicht steht.


    2. Und im Chat steht nur der 1. Buchstabe vom Namen.



    Hier OnPlayerconnect:


    if(!mysql_num_rows()){
    mysql_free_result();
    SendClientMessage(playerid, COLOR_RED, "["#WHITELIST_TAG"]{FFFFFF} Du stehst leider nicht auf der Whitelist und darfst den Server nicht betreten");
    Kick(playerid);
    return 1;
    }
    else{mysql_free_result();}
    SendClientMessage(playerid,COLOR_BLUE,"Die Verbindung zum Gameserver wird hergestellt...");
    format(string,sizeof(string),"%s",SpielerInfo[playerid][sRPName]);
    SpielerInfo[playerid][pLabel] = Create3DTextLabel(string,COLOR_WHITE,30.0,40.0,50.0,40.0,0);


    Chat:

    new rpname = SpielerInfo[playerid][sRPName];
    if(GetPVarInt(playerid,"CopMaske") == 1){format(textgstring,sizeof(textgstring),"Maskierter sagt: %s",text);}
    else {format(textgstring,sizeof(textgstring),"%s sagt: %s",rpname,text);}


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen