[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
  • Tjoaa, offensichtlich sind die Felder leer :D


    Zeig mal, wie dein Query aussieht und in welchem Callback (public Function) die Funktion steht :)


    //Edit:
    In dem Query musst du schon selecten, was du abfragen willst :)


    In dem Sinne:



    SQL
    SELECT `name`, `ip`, `admin`, `reason` FROM account_ban WHERE name = '%e'

    Du selectest nur die ID, die du am Ende nicht einmal benötigst ^^

    ast2ufdyxkb1.png


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

  • Wenn ich /agivelicense mache bleibt es in der Datenbank trotzdem noch auf 0 was mache ich falsch selbst nach einem Disconnect:


    ocmd:agivelicense(playerid,params[])
    {
    new pID, licname[20];
    if(!isAdmin(playerid, 3))return SendClientMessage(playerid,DUNKELROT,"Dein Adminlevel ist zu Niedrig!");
    if(sscanf(params,"us",pID,licname))return SendClientMessage(playerid,GELB,"[INFO]: /givelicense [ID] [Auto, Motorrad, Boot, Flug, Waffen, Alle]");
    if(strcmp(licname,"Auto",true)==0)
    {
    PlayerInfo[playerid][pCarlic]=1;
    SaveUserStats(playerid);
    }
    else if(strcmp(licname,"Motorrad",true)==0)
    {
    PlayerInfo[playerid][pBikelic]=1;
    SaveUserStats(playerid);
    }
    else if(strcmp(licname,"Boot",true)==0)
    {
    PlayerInfo[playerid][pBoatlic]=1;
    SaveUserStats(playerid);
    }
    else if(strcmp(licname,"Flug",true)==0)
    {
    PlayerInfo[playerid][pFlylic]=1;
    SaveUserStats(playerid);
    }
    else if(strcmp(licname,"Waffen",true)==0)
    {
    PlayerInfo[playerid][pWaffenlic]=1;
    SaveUserStats(playerid);
    }
    else if(strcmp(licname,"Alle",true)==0)
    {
    PlayerInfo[playerid][pCarlic]=1;
    PlayerInfo[playerid][pBikelic]=1;
    PlayerInfo[playerid][pBoatlic]=1;
    PlayerInfo[playerid][pFlylic]=1;
    PlayerInfo[playerid][pWaffenlic]=1;
    SaveUserStats(playerid);
    }
    else SendClientMessage(playerid,GELB,"[INFO]: /agivelicense [ID] [Auto, Motorrad, Boot, Flug, Waffen, Alle]");
    return 1;
    }

  • Beitrag von MGPK-1323 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Es kommt aus irgendeinem Grund immer SERVER: Unknown Command


    ocmd:veh(playerid,params[])
    {
    if(!isAdmin(playerid, 3))return SendClientMessage(playerid,DUNKELROT,"Dein Adminlevel ist zu Niedrig!");
    new mID, pID;
    if(sscanf(params,"ui",pID,mID))return SendClientMessage(playerid,DUNKELROT,"[INFO] /veh [playerid] [modelid]");
    if(mID<=400 ||mID>611)return SendClientMessage(playerid,DUNKELROT,"Ungültige Model ID!");
    new Float:xc,Float:yc,Float:zc,Float:rc;
    GetPlayerPos(playerid,xc,yc,zc);
    GetPlayerFacingAngle(playerid,rc);
    createPlayerCar(pID,mID,xc,yc,zc,rc);
    return 1;
    }
    Aber wenn ich z.B /veh [SPIELERID] [FahrzeugID] eingebe kommt Ungültige Model ID!


    aber anders rum SERVER: Unknown Command

  • Aber wenn ich z.B /veh [SPIELERID] [FahrzeugID] eingebe kommt Ungültige Model ID!

    Nutzt du das sscanf Plugin oder nur die Funktion im Code?
    Und was genau gibst du ein? Liegt die ModelID (!) zwischen 400 und 611?


    Versuche es eventuell mal testweise so:
    if(sscanf(params,"ii",pID,mID))return SendClientMessage(playerid,DUNKELROT,"[INFO] /veh [playerid] [modelid]");


    Falls das nicht hilft, poste bitte die createPlayerCar Funktion.

  • @Jeffry mit dem if(sscanf(params,"ii",pID,mID))return SendClientMessage(playerid,DUNKELROT,"[INFO] /veh [playerid] [modelid]");
    hat es funktioniert danke dir



    /edit habe ein weiteres Problem:


    Ingame sieht es so aus:
    http://prntscr.com/gongh5


    und so sieht meine Datenbank aus:
    http://prntscr.com/gonh6x


    so sieht mein pDataEnum aus:


    enum pDataEnum
    {
    p_id,
    bool:pLoggedIn,
    pName[MAX_PLAYER_NAME],
    pLevel,
    pMoney,
    pKills,
    pDeaths,
    pAlevel,
    pFraktion,
    pRank,
    pPerso,
    pSpawnchange,
    pPayday,
    pXP,
    pXPMax,
    pCarlic,
    pBikelic,
    pFlylic,
    pWaffenlic,
    pBoatlic,
    pDrugs,
    pStartbonus,
    pMats,
    pMatpacks,
    pBusfahrer,
    pLandwirt,
    pStrassenfeger,
    pDrogendealer,
    pHure,
    pWaffendealer
    }


    und so sieht mein gesamter /set code aus:


    ocmd:set(playerid,params[])
    {
    if(!isAdmin(playerid, 3))return SendClientMessage(playerid,DUNKELROT,"Dein Adminlevel ist zu Niedrig!");
    new pID,string[128],cmd[30],menge;
    if(sscanf(params,"usi",pID,cmd,menge))
    {
    SendClientMessage(playerid,GELB,"[INFO]: /set [playerid/Name][Aktion] [Menge/Betrag]");
    return SendClientMessage(playerid,GRAU,"[Bank/Level/Skin/Geld/Respektpunkte/Drogen/Mats]");
    }
    if(strcmp(cmd,"Level",true) == 0)
    {
    if(!isAdmin(playerid, 3))return SendClientMessage(playerid,DUNKELROT,"Dein Adminlevel ist zu Niedrig!");
    if(menge<1||menge>100)return SendClientMessage(playerid,GELB,"/set Level [playerid/Name][Level 1-100]");
    format(string,sizeof(string),"AdmCmd: Der Admin %s (ID:%i) hat dein Level auf %i gesetzt.",SpielerName(playerid),playerid,menge);
    SendClientMessage(pID,HELLBLAU,string);
    format(string,sizeof(string),"AdmCmd: Du hast dem Spieler %s (ID:%i) das Level auf %i gesetzt.",SpielerName(pID),pID,menge);
    SendClientMessage(playerid,HELLBLAU,string);
    SetPlayerLevel(pID,menge);


    SaveUserStats(pID);
    }
    if(strcmp(cmd,"Skin",true) == 0)
    {
    if(menge<1||menge>311)return SendClientMessage(playerid,GELB,"/set Skin [playerid/Name][1-311]");
    SetPlayerSkin(pID,menge);
    format(string,sizeof(string),"AdmCmd: Der Admin %s (ID: %i) hat dir den Skin %i zugewiesen.",SpielerName(playerid),playerid,menge);
    SendClientMessage(pID,HELLBLAU,string);
    format(string,sizeof(string),"AdmCmd: Du hast dem Spieler %s (ID:%i) den Skin %i zugewiesen.",SpielerName(pID),pID,menge);
    SendClientMessage(playerid,HELLBLAU,string);
    SaveUserStats(pID);
    }
    if(strcmp(cmd,"Geld",true) == 0)
    {
    if(menge<1||90000000)return SendClientMessage(playerid,GELB,"/set Geld [playerid/Name][1-90000000]");
    ResetPlayerMoney(pID);
    GivePlayerMoney(pID, menge);
    PlayerInfo[pID][pMoney] = menge;
    format(string, sizeof(string), "AdmCmd: %s hat dein Geld auf $%i gesetzt.", SpielerName(playerid), menge);
    SendClientMessage(pID, HELLBLAU, string);
    format(string, sizeof(string), "AdmCmd: Du hast %s den Geldbetrag auf $%i gesetzt.", SpielerName(pID), menge);
    SendClientMessage(playerid, HELLBLAU, string);
    SaveUserStats(pID);
    }
    if(strcmp(cmd,"Drogen",true) == 0)
    {
    PlayerInfo[pID][pDrugs] += menge;
    format(string,sizeof(string),"AdmCmd: Der Admin %s (ID:%i) hat dir deine Drogen auf %i gesetzt.",SpielerName(playerid),playerid,menge);
    SendClientMessage(pID,HELLBLAU,string);
    format(string,sizeof(string),"AdmCmd: Du hast dem Spieler %s (ID:%i) die Drogen auf %i gesetzt.",SpielerName(pID),pID,menge);
    SendClientMessage(playerid,HELLBLAU,string);
    SaveUserStats(pID);
    }
    if(strcmp(cmd,"Mats",true) == 0)
    {
    PlayerInfo[pID][pMats] = menge;
    format(string,sizeof(string),"AdmCmd: Der Admin %s (ID:%i) hat dir deine Mats auf %i gesetzt.",SpielerName(playerid),playerid,menge);
    SendClientMessage(pID,HELLBLAU,string);
    format(string,sizeof(string),"AdmCmd: Du hast dem Spieler %s (ID:%i) die Mats auf %i gesetzt.",SpielerName(pID),pID,menge);
    SendClientMessage(playerid,HELLBLAU,string);
    SaveUserStats(pID);
    }
    return 1;
    }


    und da wäre noch etwas wenn ich /set 0 Geld [menge] angebe sieht so aus:


    http://prntscr.com/gonhtq


    kommt halt immer diese Nachricht die im Chat auf dem Screenshot ist.


    Mfg.

    Einmal editiert, zuletzt von KinGRaPTiiC ()

    • Offizieller Beitrag

    /edit habe ein weiteres Problem:


    Ingame sieht es so aus:
    prntscr.com/gongh5


    und so sieht meine Datenbank aus:
    prntscr.com/gonh6x

    Speicherst du die Drogen denn bei SaveUserStats auch in die Datenbank?


    Weiterhin ist dein Drogenbefehl ein wenig komisch.
    Du schreibst in der Nachricht, dass die Drogen gesetzt werden format(string,sizeof(string),"AdmCmd: Der Admin %s (ID:%i) hat dir deine Drogen auf %i gesetzt.",SpielerName(playerid),playerid,menge);, du addiest die Menge allerdings zu der derzeitigen Menge hinzu: PlayerInfo[pID][pDrugs] += menge;


    Richtig wäre es so: PlayerInfo[pID][pDrugs] = menge;

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


    stock SaveUserStats(playerid)
    {
    if(!PlayerInfo[playerid][pLoggedIn]) return 1;
    new query[350];
    mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d',\
    alevel = '%d', fraktion = '%d', rank = '%d', perso = '%d', spawnchange = '%d', payday = '%d', xp = '%d', xpmax = '%d',\
    carlic = '%d', bikelic = '%d',flylic = '%d',waffenlic = '%d',boatlic = '%d',drugs = '%d',mats = '%d',drogendealer = '%d',\
    waffendealer = '%d',busfahrer = '%d',landwirt = '%d',hure = '%d',straßenfeger = '%d',matpacks = '%d', startbonus = '%d',\
    WHERE id = '%d'",
    PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths],
    PlayerInfo[playerid][pAlevel], PlayerInfo[playerid][pFraktion], PlayerInfo[playerid][pRank], PlayerInfo[playerid][pPerso],PlayerInfo[playerid][pSpawnchange],
    PlayerInfo[playerid][pPayday],PlayerInfo[playerid][pXP],PlayerInfo[playerid][pXPMax],PlayerInfo[playerid][pCarlic],PlayerInfo[playerid][pBikelic],PlayerInfo[playerid][pFlylic],PlayerInfo[playerid][pWaffenlic],PlayerInfo[playerid][pBoatlic],
    PlayerInfo[playerid][pDrugs], PlayerInfo[playerid][pMats],PlayerInfo[playerid][pDrogendealer],PlayerInfo[playerid][pWaffendealer],PlayerInfo[playerid][pBusfahrer],
    PlayerInfo[playerid][pLandwirt],PlayerInfo[playerid][pHure],PlayerInfo[playerid][pStrassenfeger],PlayerInfo[playerid][pMatpacks],PlayerInfo[playerid][pStartbonus],
    PlayerInfo[playerid][p_id]);
    mysql_pquery(handle, query);
    return 1;
    }


    und das ist bei logs unter errors:


    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'ffraktionsname' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fdrugs' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fmats' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'ffraktionsname' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fdrugs' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fmats' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'ffraktionsname' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fdrugs' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fmats' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'ffraktionsname' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fdrugs' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fmats' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: invalid reference passed
    [15:47:33] [plugins/mysql] cache_get_value_name_int: invalid reference passed
    [15:47:33] [plugins/mysql] cache_get_value_name_int: invalid reference passed
    [15:47:33] [plugins/mysql] cache_get_value_name_int: invalid reference passed
    [15:47:33] [plugins/mysql] cache_get_value_name_int: invalid reference passed
    [15:47:33] [plugins/mysql] cache_get_value_name_int: invalid reference passed
    [15:48:40] [plugins/mysql] mysql_format: destination size '350' is too small
    [15:48:40] [plugins/mysql] error #1065 while executing query "": Query was empty
    [15:49:47] [plugins/mysql] mysql_format: destination size '350' is too small
    [15:49:47] [plugins/mysql] error #1065 while executing query "": Query was empty
    [15:49:55] [plugins/mysql] mysql_format: destination size '350' is too small
    [15:49:56] [plugins/mysql] error #1065 while executing query "": Query was empty

    • Offizieller Beitrag

    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'ffraktionsname' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fdrugs' not found
    [15:47:33] [plugins/mysql] cache_get_value_name_int: field 'fmats' not found

    Du müsstest mal in deiner Mysql-Tabelle die drei Spalten hinzufügen (ffraktionsname fdrugs fmats)
    Weiterhin sagt folgendes:

    [15:49:55] [plugins/mysql] mysql_format: destination size '350' is too small
    [15:49:56] [plugins/mysql] error #1065 while executing query "": Query was empty

    Das die new query[350]; zu klein ist, du müsstest den Wert hochsetzten, danach sollte es gehen


  • Hallo, Ich habe das Problem wen ich mit der Fraktion ID 13 /open mache Passiert nichts was mache ich falsch?

  • Hallo, Ich habe das Problem wen ich mit der Fraktion ID 13 /open mache Passiert nichts was mache ich falsch?

  • Beim IsPlayerConnected hat das ! gefehlt.
    Und die Abfrage auf Fraktion 13 war falsch herum, die habe ich negiert:
    ocmd:open(playerid, params[])
    {
    if(!IsPlayerConnected(playerid)) return 1;
    if(IsPlayerInRangeOfPoint(playerid, 2.0, 2495.2378,-1690.5319,14.7656)) //Grove Street Eingang
    {
    if(PlayerInfo[playerid][pMember] != 13 && PlayerInfo[playerid][pLeader] != 13) return GameTextForPlayer(playerid, "~r~Du hast keinen~n~Schluessel.", 5000, 6);
    if(gGroveDoor == 0)
    {
    gGroveDoor = 1;
    GameTextForPlayer(playerid, "~r~Abgeschlossen", 3000, 6);
    }
    else if(gGroveDoor == 1)
    {
    gGroveDoor = 0;
    GameTextForPlayer(playerid, "~g~Aufgeschlossen", 3000, 6);
    }
    }
    else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2807.619873,-1171.899902,1025.570312)) //Grove Street Ausgang
    {
    if(PlayerInfo[playerid][pMember] != 13 && PlayerInfo[playerid][pLeader] != 13) return GameTextForPlayer(playerid, "~r~Du hast keinen~n~Schluessel.", 5000, 6);
    if(gGroveDoor == 0)
    {
    gGroveDoor = 1;
    GameTextForPlayer(playerid, "~r~Abgeschlossen", 3000, 6);
    }
    else if(gGroveDoor == 1)
    {
    gGroveDoor = 0;
    GameTextForPlayer(playerid, "~g~Aufgeschlossen", 3000, 6);
    }
    }
    return 1;
    }

  • Egal was für Befehle ich InGame schicke, es kommt nichts. Ich habe keinerlei Errors/Warnings .


  • Langsam Nervt es mich.....
    Raus komme ich aber Rein komme ich nicht mehr was das -.-?


    @Jeffry

  • Hey ich habe mal eine Frage und zwar möchte ich ein Dice und einen Diceinvite befehl erstellen und ich verstehe unter anderem nicht wie ich eine zufällige zahl von 1-6 mache und wie ich es mache das wenn die person /diceinvite [ID] [Preis] [Runden 1-3] eingebe das der andere Spieler ein Dialog bekommt wodrin er sieht um Wieviel und wieviele runden


    PS ich habe noch nicht angefangen aufgrund da ich halt nicht weiß wie man eine random zahl generieren lässt.


    mfg