[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
  • Hier z.B.
    TDEditor_TD[25] = TextDrawCreate(168.999969, 374.905029, "Login");
    TextDrawLetterSize(TDEditor_TD[25], 0.247333, 0.957036);
    TextDrawAlignment(TDEditor_TD[25], 1);
    TextDrawColor(TDEditor_TD[25], -1);
    TextDrawSetShadow(TDEditor_TD[25], 0);
    TextDrawSetOutline(TDEditor_TD[25], 1);
    TextDrawBackgroundColor(TDEditor_TD[25], 255);
    TextDrawFont(TDEditor_TD[25], 1);
    TextDrawSetProportional(TDEditor_TD[25], 1);
    TextDrawSetShadow(TDEditor_TD[25], 0);

  • Du musst die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/PlayerTextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.


    Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
    Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.

  • Ich mache gerade einen Holzfäller Job.
    Jetzt habe ich das Problem, dass ich nicht weiß,
    wie ich das am besten mache wenn der Baum gefallen ist.


    Setzt man dann einen Timer, wann der wieder aufgestellt/created wird, oder wie macht man das am besten ?

  • MYSQL - LOG


    Hey, bin gerade dabei bisschen mysql anzuschauen und hab das jetzt mal alles so gemacht, sprich:
    User angelegt + DB..


    Jetzt bekomm ich wenn ich den Server starte eine MYSQL - LOG, wo nicht sein sollte. Der Fehler kommt 4x


    SQL
    [21:27:29] [ERROR] CMySQLConnection::Connect - (error #1045) Access denied for user 'samp'@'localhost' (using password: YES)


    Der Zugang wird verweigert für samp@localhost. Aber wie kann ich das ändern?


    Gruß

  • Nimm den root Benutzer ohne Passwort:
    #define db_host "127.0.0.1"
    #define db_user "root"
    #define db_pass ""
    #define db_db "DATENBANKNAME"


    Das ist in 99% aller Fälle standardmäßig so eingestellt.
    Dein user "samp" wird nicht die richtigen Berechtigungen haben, das ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.
    Deshalb benutze, wie ich oben geschrieben habe, den root - User ohne Passwort, der hat ALLE Berechtigungen. Dem kannst du später auch, je nach Client, ein Passwort geben.

  • Warum dieser Warning:
    warning 219: local variable "modelid" shadows a variable at a preceding level


    Code:


    public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)

  • Die genannte Variable wird in dem aktuellen Scope bzw. in einem höheren Scope mit dem gleichen Namen schon mal deklariert sein.

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Was mache ich falsch ? Wenn ich das Falsche Passwort verwende, dann geht die Passwort eingabe Leiste weg und ich kann weder mich einloggen noch irgendwas.. Wollte auch so einstellen, das man bei dem 3. Mal Falsches Passwort gekickt wird.. (Aber da mein erstes Problem nicht Funktioniert kann ich das mit dem kicken vergessen..)


    PS: Verwende das MySQL Plugin von BlueG r39


    case DIALOG_LOGIN:
    {
    new stringlogin[256],oi = CheckPlayerOfflineInfo(playerid);
    if(response == 0)return Kick(playerid);
    else
    {
    StopAudioStreamForPlayer(playerid);
    PlayAudioStreamForPlayer(playerid,ServerSounds[15],0.0,0.0,0.0);
    if(oi != -1)
    {
    new time = OfflineInfo[oi][Odeletetime] - gettime();
    format(stringlogin,sizeof(stringlogin),"{C9C9C9}Willkommen zurück "#SERVERFARBE"%s {C9C9C9}!\n{C9C9C9}Dein Account ist registriert.\nBitte Logge dich mit deinem entsprechendem Passwort ein.\nDu kannst dich erst in %i:%02d Minuten wieder einloggen.\n\n"#SERVERFARBE"** "#SERVERNAME" **{C9C9C9}",SpielerName(playerid),time/60,time%60);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Login",stringlogin,"Login","Abbrechen");
    return 1;
    }
    if(!strcmp(password, mysql_ReturnPasswort(Spieler[playerid][pPassword]), true)) return SendClientMessage(playerid,WEISS,"Falsches Passwort, bitte gebe dein Passwort erneut ein!");
    if(!strlen(inputtext))
    {
    format(stringlogin,sizeof(stringlogin),"{C9C9C9}Willkommen zurück "#SERVERFARBE"%s {C9C9C9}!\n{C9C9C9}Dein Account ist registriert.\nBitte Logge dich mit deinem entsprechendem Passwort ein.\n\n"#SERVERFARBE"** "#SERVERNAME" **{C9C9C9}",SpielerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Login",stringlogin,"Login","Abbrechen");
    return 1;
    }
    format(stringlogin,sizeof(stringlogin),"SELECT * FROM "#SQLTAG"_account_main WHERE Name='%s' AND Passwort='%s' LIMIT 1",SpielerName(playerid),inputtext);
    mysql_function_query(MySqlConnection,stringlogin,true,"LoadAccount","i",playerid);
    }
    return 1;
    }

  • Huhu,


    ich habe ein Problem. Hier wollte ich das Passwort vorerst in ein PVar speichern und es später direkt in den Query geben.
    Nebenbei bekomme ich bei der Eingabe des Passworts diese Punkte nicht gesetzt, die dort kommen sollten.
    new string[128],stringpunkte[64],len = strlen(inputtext);
    for(new i;i<len;i++)
    {
    stringpunkte[i] = '.';
    }
    PlayerTextDrawSetString(playerid,LoginPasswort[playerid],stringpunkte);
    format(string,sizeof(string),"md5('%s')",inputtext);
    SetPVarString(playerid,"Passwort",string);


    Jeffry

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