[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
  • Code
    new PropertyOwner[MAX_PROPERTIES];
    new nstr[64];
    
    
    for(new i;i<sizeof(Property);i++)
    {
    format(nstr, sizeof(nstr), "%s", dini_Get(path, "Owner"));
    PropertyOwner[i] = nstr;
    }

    Hier der Code

    SA:MP in 2020?

  • Danke, geht. Bin nur gewohnt dort auch ein [MAX_PLAYER_NAME] einzubauen da es bei vorherigen funktionen eigentlich immer geklappt hat ^^
    Heute bin ich extremst müde, keine Ahnung ^^

    SA:MP in 2020?

  • Leute Ich mache gerade ein Carsystem, jedoch hab ich wahrscheinlich hier ein Fehler:
    Der Server findet den Spieler in der Datenbank nicht mehr. --> Ich muss mich immer neu Registrieren.


    if(!PlayerInfo[playerid][pLoggedIn])
    {
    new query[128];
    new query2[128];
    mysql_format(handle, query, sizeof(query), "SELECT id FROM users WHERE name = '%e'", PlayerInfo[playerid][pName]);
    format(query2, sizeof(query2), "SELECT * FROM user_fahrzeuge WHERE besitzer='%d'", PlayerInfo[playerid][p_id]);
    mysql_pquery(handle, query2, "OnUserLoadCars", "d", playerid);
    //Das Query wird abgesendet und die playerid an OnUserCheck übergeben
    mysql_pquery(handle, query, "OnUserCheck", "d", playerid);
    }


    Wenn ich das was hier mit dem Carsystem zutun hat entferne, findet er wieder mein Account in der Datenbank.


    Wie kann ich das richtig schreiben?

  • Du meinst beim Login findet er den Spieler nicht mehr? Ist der Spieler denn in der Datenbank noch vorhanden? Der Code oben wird doch wahrscheinlich erst nach dem Login ausgeführt oder?

    ist schon erledigt danke


    //edit:


    Ich möchte jetzt bei den Autos auch die Farbe Speichern, hab ich auch gemacht aber jetzt Speichert er keine Autos in die Datenbank wenn ich welche Erzeuge.


    saveCarToDB(playerid,carid)
    {
    new query[128];
    format(query,sizeof(query),"INSERT INTO user_fahrzeuge (besitzer,model,x,y,z,r,farbe1,farbe2) VALUES ('%i','%i','%f','%f','%f','%f','%i','%i')",PlayerInfo[playerid][p_id],CarInfo[carid][model],CarInfo[carid][c_x], CarInfo[carid][c_y], CarInfo[carid][c_z], CarInfo[carid][c_r],CarInfo[carid][farbe1],CarInfo[carid][farbe2]);
    mysql_pquery(handle, query);
    return 1;
    }
    createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r,Color1,Color2)
    {
    for(new i=0; i<sizeof(CarInfo); i++)
    {
    if(CarInfo[i][id_x]!=0)continue;
    CarInfo[i][besitzer]=PlayerInfo[playerid][p_id];
    CarInfo[i][c_x]=x;
    CarInfo[i][c_y]=y;
    CarInfo[i][c_z]=z;
    CarInfo[i][c_r]=r;
    CarInfo[i][model]=modelid;
    CarInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,Color1,Color2,-1);
    CarInfo[i][db_id] = cache_insert_id();
    new string[128];
    format(string,sizeof(string),"Das Auto CarInfo[%i] wurde erstellt.",i);
    SendClientMessageToAll(CL_SERVER,string);
    saveCarToDB(playerid,i);
    return 1;
    }
    return 1;
    }


    Bitte um Hilfe.

  • Bitte einmal einfügen und dann die Ausgabe aus der Konsole bzw. der server_log.txt kopieren und hier senden.



    Mit freundlichen Grüßen
    German_ScripterHD

  • moin ich habe ein problem.
    Ich versuche grade meine adminhilfe auf Dialoge umzustellen.
    Nehme dafür die Msgbox und \n damit die befehle mit beschreibung eine zeile haben.
    Mein problem ist das ich immer den error inputtext too long (after substitutions) bekomme. Verwende schon fomat dafür.
    Bei anderen server geht das ja auch.


    if (sSpieler [plsyerid][adminlevel] ==level;
    {
    Switch sspieler plsyerid adminlevel (sollte klar sein)
    Fornat(define, sizeof (define)," bestimmt um die 400 zeichen sollte aber nicht das problem sein");
    Showplayerdialig (plsyerid,define,style msgbox,"mein string aus fornat","fertig","");return 1;
    }


    War jetzt mit handy deswegen etwas falsch aber denke verständlich.

  • Was genau meinst du?
    Prinzipiell erfolgt die Abfrage und Speicherung immer anhand eines oder mehrerer Primary Keys.

    Wollte so Punkte einstellen , jedoch speichern sie sich nicht
    `Coins` int(10) NOT NULL,`pUpgradePoints` int(6) NOT NULL,


    Sie werden in der Dtanebank erstellt doch InGame speichern sie sich irgendwie nicht



    Code
    cache_get_field_content(0,"Coins",result);
    	    Spieler[playerid][pCoins] = strval(result);
    
    
    	    cache_get_field_content(0,"pUpgradePoints",result);
    	    Spieler[playerid][pUpgradePoints] = strval(result);
  • Das kannst du auch innerhalb von switch-case nutzen.

    und wie muss das aussehen?
    die format mit komma hintereinander einbauen?
    bekomme da nur errors, hab das momentan so, auch weil ich mit handy ein bisschen vorgearbeitet hab



    dcmd_ahelp(playerid,params[])
    {
    #pragma unused params
    new ahelp1[600],ahelp2[600];
    if(sSpieler[playerid][Adminlevel] == 0) return SendClientMessage(playerid,FehlerRot,"Du hast nicht die benötigten Rechte, um diesen Befehl auszuführen!");
    switch(sSpieler[playerid][Adminlevel])
    {
    case 1:
    {
    format(ahelp1,sizeof(ahelp1),"{ff8b00}/a - Adminchat\n{ff8b00}/cnnn - Globale Ankündigung (Textdeaw)\n{ff8b00}/cnn - Globale Ankündigung\n{ff8b00}/clearchat - Chat löschen\n");
    format(ahelp,sizeof (ahelp1),"{ff8b00}/amodus - Adminmodus aktiveren/Deaktivieren\n{ff8b00}/goto - Zu Spieler Teleportieren\n{ff8b00}/tome - Spieler zu sich Teleportieren\n",ahelp1);
    format(ahelp1,sizeof (ahelp1),"{ff8b00}/mute - Spieler im Chat muten\n{ff8b00}/unmute - Spieler im Chat unmuten\n{ff8b00}/admingoto - Zu wichtigen Orten Teleportieren",ahelp1);
    }
    case 2:
    {
    format(ahelp2,sizeof(ahelp2),"{ff8b00}/ban - Bannt einen Spieler vom Server\n{ff8b00}/kick - Kickt einen Spieler vom Server\n{ff8b00}/sethp - HP eines Spielers ändern\n{ff8b00}/veh - Fahrzeug Spawnen\n{ff8b00}/freeze - Freezed einen Spieler\n");
    format(ahelp2,sizeof (ahelp2),"{ff8b00}/unfreeze - Unfreezed einen Spieler\n{ff8b00}/ahelp - Adminhilfe\n{ff8b00}/a - Adminchat\n{ff8b00}/cnnn - Globale Ankündigung (Textdraw)\n{ff8b00}/cnn - Globale Ankündigung\n{ff8b00}/clearchat - Chat löschen\n{ff8b00}/amodus - Adminmodus Aktivieren/Deaktivieren\n{ff8b00}/goto - Zu Spieler Teleportieren\n",ahelp2);
    format (ahelp2,sizeof (ahelp2),"{ff8b00}/tome - Spieler zu sich Teleportieren\n{ff8b00}/mute - Spieler im Chat muten\n{ff8b00}/unmute - Spieler im Chat unmuten\n{ff8b00}/admingoto - Zu wichtigen Orten Teleportieren",ahelp2);
    }
    ShowPlayerDialog(playerid,ADMINHELP1,DIALOG_STYLE_MSGBOX,"Adminhilfe",ahelp1,"Fertig","");
    ShowPlayerDialog(playerid,ADMINHELP1,DIALOG_STYLE_MSGBOX,"Adminhilfe",ahelp2,"Fertig","");
    }
    return 1;
    }

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