[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
  • Skin setzrn hab ich bereits aber wo muss ich da was schreiben das es in Mysql abgespeichert wird?


    Edit: Die Skin ID beim Registrieren ist immer 0 obwohl esn andererSkin ist

    Mysql Log schon geschaut?


    Hast du dir die Daten ausgeben die eingetragen werden inder DB bei der Regestrierung?


    Wäre mal eine Option uns das mal zu zeigen und den Log dazu.

  • [12/13/18 18:32:32] [DEBUG] created new resultset '0x5a4e50'
    [12/13/18 18:32:32] [DEBUG] fetched MySQL result '0x0'
    [12/13/18 18:32:32] [DEBUG] CCallback::Execute(amx=0x275ac88, index=14, num_params=1)
    [12/13/18 18:32:32] [INFO] Executing callback 'OnUserRegister' with 1 parameter...
    [12/13/18 18:32:32] [DEBUG] processing internal specifier 'c'
    [12/13/18 18:32:32] [DEBUG] pushed value '0' onto AMX stack
    [12/13/18 18:32:32] [DEBUG] executing AMX callback with index '14'
    [12/13/18 18:32:32] [DEBUG] cache_insert_id() (C:\Users\...\Documents\meinserver\ARP2.0\pawno\include\../include/core/publics.inc:74)
    [12/13/18 18:32:32] [DEBUG] cache_insert_id: return value: '34' (C:\Users\...\Documents\meinserver\ARP2.0\pawno\include\../include/core/publics.inc:74)
    [12/13/18 18:32:32] [DEBUG] AMX callback executed with error '0'
    [12/13/18 18:32:32] [INFO] Callback successfully executed.


    Dasist ein Teil des Logs.


    Wie meinst du mit ausgeben?

  • aber wo muss ich da was schreiben das es in Mysql abgespeichert wird?

    In dein Query unter SaveUserStats. Einfach neben das Level usw setzen.


    Wenn GetPlayerSkin 0 ist, dann wurde der Skin noch nicht gesetzt.


    Versuchs dann unter OnPlayerSpawn o.ä.

    ast2ufdyxkb1.png


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

  • aveUserStats sieht so aus.

    stock SaveUserStats(playerid){ if(!SpielerDaten[playerid][pEingeloggt]) return 1; Ansonsten speichere sie new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE accounts SET Level = '%d', Geld = '%d', Skin = '%d' WHERE id = '%d'", SpielerDaten[playerid][pLevel],SpielerDaten[playerid][pGeld],SpielerDaten[playerid][pSkin],SpielerDaten[playerid][p_id]); /*mysql_format(handle, query, sizeof(query), "UPDATE users SET Admin = '%d' WHERE id = '%d'", PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][p_id]);*/ Das Query wird abgesendet mysql_pquery(handle, query); return 1;}

    GetPlayerskin wohin?


    Onplayerspawn sieht so aus

    public OnPlayerSpawn(playerid)
    {
    SetPlayerColor(playerid, WEISS);
    SetPlayerSkin(playerid, 187);
    return 1;
    }

  • Mein FS speichert irgendwie nichts in der MySQL Datenbank ab ^



    Der Stock der die Sachen ladet

    mysql_format(handle, query, sizeof(query), "SELECT * FROM `clothes` WHERE `holder` = '%s'", GetName(playerid));
    mysql_pquery(handle, query, "OnClothesLoad", "i", playerid);


    Nachdem kaufen

    mysql_format(handle, query, sizeof(query), "INSERT INTO `clothes` (`holder`, `model`, `bone, `offestx, `offesty, `offestz, `rotx, `roty, `rotz, `scalex, `scaley, `scalez) VALUES ('%s', %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f)", PlayerName[playerid], model, bone, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ);
    mysql_pquery(handle, query, "OnFinishPurchase", "id", playerid, index);



     ClothesInfo[playerid][index][cID] = cache_insert_id();


    Hier noch beim Laden ist glaube Fehlerfrei ^

    cache_get_value_name_int(i, "0", ClothesInfo[playerid][i][cID]);
    cache_get_value_name_int(i, "2", ClothesInfo[playerid][i][cModelID]);
    cache_get_value_name_int(i, "3", ClothesInfo[playerid][i][cBoneID]);
    cache_get_value_name_float(i, "4", ClothesInfo[playerid][i][cOffsetX]);
    cache_get_value_name_float(i, "5", ClothesInfo[playerid][i][cOffsetY]);
    cache_get_value_name_float(i, "6", ClothesInfo[playerid][i][cOffsetZ]);
    cache_get_value_name_float(i, "7", ClothesInfo[playerid][i][cRotX]);
    cache_get_value_name_float(i, "8", ClothesInfo[playerid][i][cRotY]);
    cache_get_value_name_float(i, "9", ClothesInfo[playerid][i][cRotZ]);
    cache_get_value_name_float(i, "10", ClothesInfo[playerid][i][cScaleX]);
    cache_get_value_name_float(i, "11", ClothesInfo[playerid][i][cScaleY]);
    cache_get_value_name_float(i, "12", ClothesInfo[playerid][i][cScaleZ]);
    ClothesInfo[playerid][i][cOn] = true;

  • Mein FS speichert irgendwie nichts in der MySQL Datenbank ab ^

    1. Was sagt der MySQL Log?


    2.

    cache_get_value_name_int(i, "2", ClothesInfo[playerid][i][cModelID]);

    Das ist falsch in die Mitte muss der Name der Spalte.


    Also so schreiben:


    cache_get_value_name_int(i, "model", ClothesInfo[playerid][i][cModelID]);


    Also musste bei allen ändern ^^

    ast2ufdyxkb1.png


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

  • [20:05:05] [ERROR] CConnection::CConnection - establishing connection to MySQL database failed: #1045 'Access denied for user 'MAKAROV68'@'94.134.xx.xxx' (using password: YES)'
    [20:05:05] [ERROR] CConnection::CConnection - establishing connection to MySQL database failed: #1045 'Access denied for user 'MAKAROV68'@'94.134.xx.xxx' (using password: YES)'
    [20:05:05] [ERROR] CConnection::CConnection - establishing connection to MySQL database failed: #1045 'Access denied for user 'MAKAROV68'@'94.134.xx.xxx' (using password: YES)'
    [20:05:05] [ERROR] CConnection::CConnection - establishing connection to MySQL database failed: #1045 'Access denied for user 'MAKAROV68'@'94.134.xx.xxx' (using password: YES)'


    der nimmt komischerweise meine ip adresse als host obwohl ich meine mysql server adresse angegeben hab

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • @Allrounder18
    stock SaveUserStats(playerid){ if(!SpielerDaten[playerid][pEingeloggt]) return 1; Ansonsten speichere sie new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE accounts SET Level = '%d', Geld = '%d', Skin = '%d' WHERE id = '%d'", SpielerDaten[playerid][pLevel],SpielerDaten[playerid][pGeld],GetPlayerSkin(playerid),SpielerDaten[playerid][p_id]); /*mysql_format(handle, query, sizeof(query), "UPDATE users SET Admin = '%d' WHERE id = '%d'", PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][p_id]);*/ Das Query wird abgesendet mysql_pquery(handle, query); return 1;}

  • Kurze Frage was mache ich falsch es wird alles mit 0 ms ausgegeben?
    Wen ich den Server Hochfahre werden mir die ms angezeigt wielange er braucht?

  • @Allrounder18
    stock SaveUserStats(playerid){ if(!SpielerDaten[playerid][pEingeloggt]) return 1; Ansonsten speichere sie new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE accounts SET Level = '%d', Geld = '%d', Skin = '%d' WHERE id = '%d'", SpielerDaten[playerid][pLevel],SpielerDaten[playerid][pGeld],GetPlayerSkin(playerid),SpielerDaten[playerid][p_id]); /*mysql_format(handle, query, sizeof(query), "UPDATE users SET Admin = '%d' WHERE id = '%d'", PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][p_id]);*/ Das Query wird abgesendet mysql_pquery(handle, query); return 1;}

    Danke, habs.


    Jedoch hab ich n weiteres Problem.


    Wenn ich Rang 5bin kann ich niemandmehr Aen Rang geben obwohl es doch so eingestellt ist. Woran kann das liegen?



    ocmd:makeadmin(playerid, params[])
    {
    //if(SpielerDaten[playerid][pEingeloggt] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new pID, adminid, string[128];
    if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] >= 5 && SpielerDaten[playerid][pAdmin] == 7)
    {
    if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makeadmin [SpielerID/Name] [Teamrang]");
    if(adminid < 2)return SendClientMessage(playerid, GRAU, "Du kannst nur ab Rang 2 vergeben.");
    if(adminid < 2)return SendClientMessage(playerid, GRAU, "Du kannst nur ab Rang 2 vergeben.");
    if(IsPlayerNPC(pID))return 1;
    if(IsPlayerNPC(pID))return 1;
    //if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    //if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    if(adminid == 0){
    format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
    SendClientMessage(pID, BLAU, string);
    //format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
    //SendClientMessage(pID, string);
    SpielerDaten[pID][pAdmin] = 0;
    SaveUserStats(pID);
    return 1;
    }
    if(adminid < 1 || adminid > 7)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
    SpielerDaten[pID][pAdmin] = adminid;
    format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "* %s %s hat dir den Teamrang %s gegeben",SpielerDaten[playerid][pName], GetAdminRangName(pID));
    SendClientMessage(pID, BLAU, string);
    //format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
    //SendClientMessage(pID, string);
    //SpawnPlayerEx(pID);
    SaveUserStats(pID);
    return 1;
    }
    else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    return 1;
    }

  • SpielerDaten[playerid][pAdmin] >= 5 && SpielerDaten[playerid][pAdmin] == 7

    Wie soll jemand einen Rang größer 5 aber gleich 7 haben? Das geht nur, wenn er 7 ist :D


    Lösche das mit dem == 7



    Kurze Frage was mache ich falsch es wird alles mit 0 ms ausgegeben?

    Da machst du nix falsch...das ist so, dir werden nur Millisekunden angezeigt, aber dein Server brauch für das Ausführen nur Mikrosekunden :D

    ast2ufdyxkb1.png


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

  • Danke, hat geklappt.


    Was muss hier einbauen damit man den Chat mit $ und § nicht nutzen kann wenn man kein Admin ist?
    Wenn ich kein Admin bin kommt ich hab zu enig rechte und es wird zB. $Text ausgegeben.


    public OnPlayerText(playerid, text[]){ new message[128]; if(text[0] == '$') { if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 2)return SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl."); if(!text[1]) return SendClientMessage(playerid, ROT,"$ [Text]"),0; format(message, sizeof(message), "(([Adminchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]); return SendClientMessageToAll(ROT,message),0; } new message1[128]; if(text[0] == '§') { if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 1)return SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl."); if(!text[1]) return SendClientMessage(playerid, ROT,"§ [Text]"),0; format(message1, sizeof(message1), "(([Helferchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]); return SendClientMessageToAll(HGREEN,message1),0; } format(message, sizeof(message), "{969696}%s sagt: {FFFFFF}%s", SpielerDaten[playerid][pName], text); return ProxDetector(7.0, playerid, message, WEISS,WEISS,WEISS,WEISS,WEISS),0;}

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