[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Wie kann man bei OnPlayerText machen das der Name nicht wie z.b. Fabi.StaR angezeigt wird sondern Fabi StaR angezeigt wird?


    public OnPlayerText(playerid, text[])
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    new pos = strfind(name, ".");
    if(pos != -1) name[pos] = ' ';
    new str[144];
    format(str, sizeof(str),"{%06x}%s{FFFFFF}: %s",GetPlayerColor(playerid) >>> 8,name,text); //Thx @ Kaliber.
    SendClientMessageToAll(-1, str);
    return 0;
    }


    Getestet und funktioniert.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Macht im Endeffekt keinen Unterschied, da beides den Wert in einen Bool konvertiert...


    mfg. :thumbup:


    hier ja aber es war auf die funktion bezogen


    stock bool:IntToBool(int_value) return bool:int_value;


    wenn du hier 10 eingibst erhältst du als rückgabe wert 10.
    Daher kannst du das mit dem Operator nicht gleichsetzen
    :D

  • Zitat


    Dein Befehl sendet, nachdem er einen Admin gefunden hat, der online ist, einen Dialog aus.
    Du musst den Dialog erst nach der Schleife anzeigen und alle Admins in einer Zeichenkette speichern.


    Und das mache ich wie? Schließlich habe ich den Dialog bereits am Ende plaziert und ob Admins online oder offline sind spielt keine Rolle. Habe ja bei 0 Admins nen komplett anderen Dialog verwendet?

  • format(str, sizeof(str), "{%s}%s{FFFFFF}: %s", HexToStr(GetPlayerColor(playerid)), name, text);


    Du kannst das auch einfach shiften und so machen:


    format(str, sizeof(str),"{%06x}%s{FFFFFF}: %s",GetPlayerColor(playerid) >>> 8,name,text);


    Dann brauchst du diese Funktion nicht :)


    wenn du hier 10 eingibst erhältst du als rückgabe wert 10.
    Daher kannst du das mit dem Operator nicht gleichsetzen


    Tatsache :D Gar nicht darauf geachtet ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Und das mache ich wie? Schließlich habe ich den Dialog bereits am Ende plaziert und ob Admins online oder offline sind spielt keine Rolle. Habe ja bei 0 Admins nen komplett anderen Dialog verwendet?


    Schau mal hier nach, dort ist es ein wenig erklärt ;)
    MAX_PLAYERS - Dialog


    Dort dann iItem abfragen um zu gucken ob überhaupt ein Admin online ist.


  • dcmd_admins(playerid,params[])
    {
    #pragma unused params
    new string[(MAX_PLAYER_NAME + 40) * 10];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if (IsPlayerConnected(i))continue;
    if(AccInfo[i][Level] >= 1 && AccInfo[i][Hide] == 0)
    {
    format(string, sizeof(string), "%sAdmin %s (ID: %i)- Level %d - %s\n",string,PlayerName2(i),i, AccInfo[i][Level],((AccInfo[i][OnDuty])?("Available"):("Busy")));
    }
    }
    if (!string[0])return ShowPlayerDialog(playerid,NO_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins","\n\n\n\nThere are no admins online.","Close","");
    return ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins",string,"Close","");
    }


    Zum einen solltest du ShowPlayerDialog ausserhalb der schleife lassen und du musst natürlich den formatierten string bei einem treffer auch
    beim nächsten treffer noch parat haben entweder nutzt ein extra string wo man den formatierten via strcat anhängt oder formatiert in mit

  • Jeffry:


    Warum geht das nicht?


    Spoiler anzeigen

    public OnPlayerText(playerid, text[])
    {
    if(realchat)
    {
    new str[144],name[MAX_PLAYER_NAME],pos = strfind(name, "."),pos1 = strfind(name, "_");
    GetPlayerName(playerid, name, sizeof(name));
    if(pos != -1) name[pos] = ' ';
    else if(pos1 != -1) name[pos1] = ' ';
    format(str, sizeof(str),"%s sagt: %s",name,text);
    ProxDetector(20.0, playerid, str,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
    return 0;
    }
    return 1;
    }

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint:


  • Dieses Problem besteht leider immer noch -.- . Er soll das pRegDatum "Nicht" updaten. Aber er tut es trotzdem. Und bei pVersuche soll eigentlich 0 stehen, aber dort steht das Jahr und der Monat was ich nicht kapieren kann :pinch: .

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Das ding ist, wenn ich es aus dem Update Befehl raus nehme, wird er erst recht nicht Gespeichert :pinch:

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Wie sieht es damit aus?
    mysql_format(DBHandle, query, sizeof(query),"UPDATE `Accounts` SET `pAlter` = '%d', `pBargeld` = '%d', `pKontoguthaben` = '%d', `pLastLogin` = '%s', `pRegDatum` = '%s', `pVersuche` = '%d', `pLeben` = '%.1f' WHERE `pName` = '%e'",Spieler[playerid][pAlter],Spieler[playerid][pBargeld],Spieler[playerid][pKontoguthaben],query,Spieler[playerid][pRegDatum],Spieler[playerid][pWrongPass], Spieler[playerid][pLeben],Spieler[playerid][pName]);

  • Jeffry:


    Warum geht das nicht?



    public OnPlayerText(playerid, text[])
    {
    if(realchat)
    {
    new str[144],name[MAX_PLAYER_NAME],pos = strfind(name, "."),pos1 = strfind(name, "_");
    GetPlayerName(playerid, name, sizeof(name));
    if(pos != -1) name[pos] = ' ';
    else if(pos1 != -1) name[pos1] = ' ';
    format(str, sizeof(str),"%s sagt: %s",name,text);
    ProxDetector(20.0, playerid, str,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
    return 0;
    }
    return 1;
    }

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint:


  • format(query,sizeof(query),"%02d.%02d.%d - %02d:%02d:%d",Tag,Monat,Jahr,Stunde,Minute,Sekunde);


    mysql_format(DBHandle, query, sizeof(query),"UPDATE `Accounts` SET `pAlter` = '%d', `pBargeld` = '%d', `pKontoguthaben` = '%d', `pLastLogin` = '%s', `pLeben` = '%.1f' WHERE `pName` = '%e'",Spieler[playerid][pAlter],Spieler[playerid][pBargeld],Spieler[playerid][pKontoguthaben],query,Spieler[playerid][pLeben],Spieler[playerid][pName]);


    mysql_tquery(DBHandle, query, "","");


    Eddy
    Ich meinte pRegData = %s und den inhalt welchen du an diesen platzhalter übergibst entfernen.


    geschrieben am handy


    //edit
    Fabi.StaR
    was geht daran nicht wird dir das falsch ausgegeben
    Der Name oder der gesamte string