[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
  • Hi, ich habe Diesen Fehler hier error 035: argument type mismatch (argument 3)


    Hier ist der Code
    stock CreateNewHouse(Float:x,Float:y,Float:z,level,preis,interior,maxmieter)
    {
    new query[240];
    AktuelleHaus ++;
    mysql_format(db,query,"INSERT INTO `hauser` (hPreis,hLevel,hInterior,hMieter,hMaxMieter,hLock,hRent,hWaffenschrank,hKasse,hHeal,hBesitzer) VALUES ('%i','%i','%i','0','%i','0','0','0','0','0','Frei')",
    preis,level,interior,maxmieter);
    mysql_tquery(db,query,"OnHouseCreate","ifffiiii",AktuelleHaus,x,y,z,level,preis,interior,maxmieter);
    return AktuelleHaus;
    }


    Ich finde den Fehler nicht :/

  • Code
    mysql_format(db,query, sizeof(query),"INSERT INTO `hauser` (hPreis,hLevel,hInterior,hMieter,hMaxMieter,hLock,hRent,hWaffenschrank,hKasse,hHeal,hBesitzer) VALUES ('%i','%i','%i','0','%i','0','0','0','0','0','Frei')",
        preis,level,interior,maxmieter);
  • Moin Leute!
    Ich bin dabei mein Teleport System zu schreiben, Speichern klappt Problemlos, aber das Laden nicht irgendwie.
    Sobald ich den Befehl eingebe, sagt er mir, das keine Teleports vorhanden sei, obwohl in der Datenbank drei Einträge gibt.



    Der Befehl:
    ocmd:ateleport(playerid, params[])
    {
    if(!IstSpielerEinAdmin(playerid,2))return SendClientMessage(playerid, FARBE_WEISS, "[{FF0000}FEHLER{FFFFFF}]: Du hast nicht die Rechte diesen Befehl zu benutzen!");
    if(!sInfo[playerid][sEingeloggt])return SendClientMessage(playerid, FARBE_WEISS, "[{FF0000}FEHLER{FFFFFF}]: Du bist nicht eingeloggt!");
    new buffer[512];
    for(new i; i < MAX_TELEPORTS; i++)
    {
    if(TeleInfo[i][set] == true)
    {
    format(buffer, sizeof(buffer), "{FFFFFF}%s%s\n", buffer, TeleInfo[i][tName]);
    }
    }
    if(strlen(buffer) == 0)return SendClientMessage(playerid, FARBE_WEISS, "[{FF0000}FEHLER{FFFFFF}]: Es sind derzeit keine Teleports vorhanden!");
    ShowPlayerDialog(playerid, DIALOG_TELEPORTS, DIALOG_STYLE_LIST, "{FFFFFF}Teleports", buffer, "Porten", "Abbrechen");
    return 1;
    }


    Die Funktion zum Laden:
    forward LoadTeleports();
    public LoadTeleports()
    {
    if(cache_get_row_count(MySQL_Handle))
    {
    for(new i,y=cache_get_row_count(MySQL_Handle);i<y;i++)
    {
    TeleInfo[i][tX] = cache_get_field_content_float(i, "tX", MySQL_Handle);
    TeleInfo[i][tY] = cache_get_field_content_float(i, "tY", MySQL_Handle);
    TeleInfo[i][tZ] = cache_get_field_content_float(i, "tZ", MySQL_Handle);
    TeleInfo[i][tInterior] = cache_get_field_content_int(i, "tInterior", MySQL_Handle);
    TeleInfo[i][tVWorld] = cache_get_field_content_int(i, "tVWorld", MySQL_Handle);
    cache_get_field_content(i, "tName", TeleInfo[i][tName], MySQL_Handle, 32);
    TeleInfo[i][set] = true;
    }
    }
    printf("Aktuele Teleports: %i/%i", cache_get_row_count(MySQL_Handle), MAX_TELEPORTS);
    return 1;
    }


    Hoffe einer kann mir Helfen, wäre sehr Dankbar!

    Mit freundlichen Grüßen, BlvckAir :thumbup:

  • Hi, ich habe mir ein kleines FilterScript erstellt womit ich in der server_log.txt die Befehle printe die auf meinem Server ausgeführt werden.
    Nun möchte ich das aber in einer seperaten Datei abspeichern, dennoch genau wie in dem folgenden Code ohne Zugriff auf das Gamemode zu haben (sprich nicht in jedem Befehl irgendeine Zeile hinzufügen damit der Befehl geloggt wird).


    Gibt es eine Möglichkeit alle Befehle die ausgeführt werden in einer seperaten Datei abzuspeichern? Aktueller Code schaut so aus, taucht aber wie gesagt nur in der server_log auf.



    public OnPlayerCommandText(playerid, cmdtext[])
    {




    new playername[24];
    GetPlayerName(playerid, playername, 24);
    printf("[CMD LOG]: Command %s(%d): %s", playername, playerid, cmdtext);
    return 0;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Moin Leute!
    Ich bin dabei mein Teleport System zu schreiben, Speichern klappt Problemlos, aber das Laden nicht irgendwie.
    Sobald ich den Befehl eingebe, sagt er mir, das keine Teleports vorhanden sei, obwohl in der Datenbank drei Einträge gibt.


    Der Befehl:ocmd:ateleport(playerid, params[]){if(!IstSpielerEinAdmin(playerid,2))return SendClientMessage(playerid, FARBE_WEISS, "[{FF0000}FEHLER{FFFFFF}]: Du hast nicht die Rechte diesen Befehl zu benutzen!");if(!sInfo[playerid][sEingeloggt])return SendClientMessage(playerid, FARBE_WEISS, "[{FF0000}FEHLER{FFFFFF}]: Du bist nicht eingeloggt!");new buffer[512];for(new i; i < MAX_TELEPORTS; i++){if(TeleInfo[i][set] == true){format(buffer, sizeof(buffer), "{FFFFFF}%s%s\n", buffer, TeleInfo[i][tName]);}}if(strlen(buffer) == 0)return SendClientMessage(playerid, FARBE_WEISS, "[{FF0000}FEHLER{FFFFFF}]: Es sind derzeit keine Teleports vorhanden!");ShowPlayerDialog(playerid, DIALOG_TELEPORTS, DIALOG_STYLE_LIST, "{FFFFFF}Teleports", buffer, "Porten", "Abbrechen");return 1;}Die Funktion zum Laden:forward LoadTeleports();public LoadTeleports(){if(cache_get_row_count(MySQL_Handle)){for(new i,y=cache_get_row_count(MySQL_Handle);i<y;i++){TeleInfo[i][tX] = cache_get_field_content_float(i, "tX", MySQL_Handle);TeleInfo[i][tY] = cache_get_field_content_float(i, "tY", MySQL_Handle);TeleInfo[i][tZ] = cache_get_field_content_float(i, "tZ", MySQL_Handle);TeleInfo[i][tInterior] = cache_get_field_content_int(i, "tInterior", MySQL_Handle);TeleInfo[i][tVWorld] = cache_get_field_content_int(i, "tVWorld", MySQL_Handle);cache_get_field_content(i, "tName", TeleInfo[i][tName], MySQL_Handle, 32);TeleInfo[i][set] = true;}}printf("Aktuele Teleports: %i/%i", cache_get_row_count(MySQL_Handle), MAX_TELEPORTS);return 1;}


    Hoffe einer kann mir Helfen, wäre sehr Dankbar!

    Von wo holst du diesen MYSQL_Handler her?
    Du gehts nämlich durch die Rows dieses Handlers durch.


    Hi, ich habe mir ein kleines FilterScript erstellt womit ich in der server_log.txt die Befehle printe die auf meinem Server ausgeführt werden.
    Nun möchte ich das aber in einer seperaten Datei abspeichern, dennoch genau wie in dem folgenden Code ohne Zugriff auf das Gamemode zu haben (sprich nicht in jedem Befehl irgendeine Zeile hinzufügen damit der Befehl geloggt wird).


    Gibt es eine Möglichkeit alle Befehle die ausgeführt werden in einer seperaten Datei abzuspeichern? Aktueller Code schaut so aus, taucht aber wie gesagt nur in der server_log auf.


    public OnPlayerCommandText(playerid, cmdtext[]){ new playername[24]; GetPlayerName(playerid, playername, 24); printf("[CMD LOG]: Command %s(%d): %s", playername, playerid, cmdtext); return 0;}

    Du kannst es z.b so machen:

    Code
    new File:log = fopen("command_log.txt", io_append);
    fwrite(log, "Hier was du loggen willst also zb. cmdtext"); //anpassen
    fwrite(log, "\n");
    fclose(log);

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • @TheBlueFireKing


    Kriege folgende Errors


    #include <dini>




    public OnPlayerCommandText(playerid, cmdtext[])
    {


    new File:log = fopen("command_log.txt", io_append);
    new playername[24];
    GetPlayerName(playerid, playername, 24);
    fwrite(log, "([CMD LOG]: Command %s(%d): %s", playername, playerid, cmdtext);
    fwrite(log, "\n");
    fclose(log);
    /*
    new playername[24];
    GetPlayerName(playerid, playername, 24);
    printf("[CMD LOG]: Command %s(%d): %s", playername, playerid, cmdtext);
    return 0;
    */
    }



    logcmds.pwn(34) : warning 202: number of arguments does not match definition
    logcmds.pwn(34) : warning 202: number of arguments does not match definition
    logcmds.pwn(34) : warning 202: number of arguments does not match definition


    Mit freundlichen Grüßen
    JustMe.77 8)

    • Offizieller Beitrag

    Du musst den String erst formatieren also so:

    new File:log = fopen("command_log.txt", io_append);
    new playername[24], logstring[256];
    GetPlayerName(playerid, playername, 24);
    format(logstring, sizeof(logstring), "[CMD LOG]: Command %s(%d): %s", playername, playerid, cmdtext);
    fwrite(log, logstring);
    fwrite(log, "\n");
    fclose(log);

  • Hey,


    ich will die Skins für jeden Rank im Skript definieren. Dies hab ich auch geschafft doch es scheitert immoment in der Anwendung.


    static const f_skins[][] = { //Es geht nach Ranks
    {"301","284","265","266","267","280","280","281","281","286","283","283"},//LSPD
    {"302","303","282","282","282","310","311","285","288","288"},//LVPD
    };


    Die erste reihe ist für das LSPD dann kommt das LVPD.
    Ich möchte das Verbinden mit meinem Makeleader befehl:


    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,4) || !IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,""#error_farbe"Keine Berechtigung");
    new pID, fraction, string[128];
    if(sscanf(params,"ui",pID,fraction))return SendClientMessage(playerid,-1,"Tippe: /makeleader [spieler] [fraktion]");
    if(fraction<0||fraction>15)return SendClientMessage(playerid,-1,""#error_farbe"Bitte gültigen Fraktion angeben.");
    PlayerInfo[pID][pFraction] = fraction;
    if(fraction == 2){ PlayerInfo[pID][pFrank] = 10; } else { PlayerInfo[pID][pFrank] = 12; }
    SetPlayerSkin(pID, f_skins[PlayerInfo[pID][pFrank]]);
    SaveUserStats(pID);
    format(string, sizeof(string),""#info_farbe"%s hat dich zum Leader der Fraktion %s gemacht.",PlayerInfo[playerid][pName],f_name[PlayerInfo[pID][pFraction]]);
    SendClientMessage(pID,-1,string);
    format(string, sizeof(string),""#success_farbe"Du hast erfolgreich %s zum Leader der Fraktion %s gemacht.",PlayerInfo[pID][pName],f_name[PlayerInfo[pID][pFraction]]);
    SendClientMessage(playerid,-1,string);
    format(string, sizeof(string) ,"%s hat %s zum Leader der Fraktion %s gemacht.",PlayerInfo[playerid][pName],PlayerInfo[pID][pName],f_name[PlayerInfo[pID][pFraction]]);
    Log("AdminLog",string);
    return 1;
    }

  • Ergo so?

    Was? Ich sagte OHNE "
    ...wtf
    So:


    C
    static const f_skins[][]  = { //Es geht nach Ranks		     
    
    
        {301,284,265,266,267,280,280,281,281,286,283,283},//LSPD
        {302,303,282,282,282,310,311,285,288,288}//LVPD
    };

    ast2ufdyxkb1.png


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

  • Er setzt sie ab und zu, doch bei mir buggt grad alles.


    Hier deklariere hier alles:
    static const f_name[][] = {"Zivilist","Los Santos Police Department","Las Venturas Police Department","San Andreas Medical Department","Ordnungsamt","News Reporter","Hitman","Grove Street","Ballas","Yakuza","Triaden","S.F. Rifa","Präsident","Transport GmbH","Vagos"};
    static const a_rang[][] = {"User","Supporter","Moderator","Administrator","Master Administrator","Projektleiter"};
    static const f_rang[][][] = {
    {"Trainee","Police Officer","Detective","Sergeant","Lieutenant","Captain","Commander","Deputy Chief of Police","Assistant Chief of Police","Chief of Police"}, //SAPD
    {"Trainee","Police Officer I","Police Officer II","Sergeant","Lieutenant","Captain","Deputy Chief","Assistant Sheriff","Undersheriff","Sheriff"}};
    static const f_skins[][] = { //Es geht nach Ranks
    {0,0,0,0,0,0,0,0,0,0},//Zivi
    {301,284,265,266,267,280,281,286,283,283},//LSPD
    {302,303,282,282,282,310,311,285,288,288}};
    Und hier mein Befehl makeleader:
    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,4) || !IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,""#error_farbe"Keine Berechtigung");
    new pID, fraction, string[128];
    if(sscanf(params,"ui",pID,fraction))return SendClientMessage(playerid,-1,"Tippe: /makeleader [spieler] [fraktion]");
    if(fraction<0||fraction>15)return SendClientMessage(playerid,-1,""#error_farbe"Bitte gültigen Fraktion angeben.");
    PlayerInfo[pID][pFraction] = fraction;
    PlayerInfo[pID][pFrank] = 10;
    SetPlayerSkin(pID, f_skins[PlayerInfo[pID][pFraction]][PlayerInfo[pID][pFrank]]);
    SaveUserStats(pID);
    format(string, sizeof(string),""#info_farbe"%s hat dich zum Leader der Fraktion %s gemacht.",PlayerInfo[playerid][pName],f_name[PlayerInfo[pID][pFraction]]);
    SendClientMessage(pID,-1,string);
    format(string, sizeof(string),""#success_farbe"Du hast erfolgreich %s zum Leader der Fraktion %s gemacht.",PlayerInfo[pID][pName],f_name[PlayerInfo[pID][pFraction]]);
    SendClientMessage(playerid,-1,string);
    format(string, sizeof(string) ,"%s hat %s zum Leader der Fraktion %s gemacht.",PlayerInfo[playerid][pName],PlayerInfo[pID][pName],f_name[PlayerInfo[pID][pFraction]]);
    Log("AdminLog",string);
    return 1;
    }


    Ich hab keine Warnings/Errors

  • wie kann ich von der 2 Strecke die sizeof auslesen ?
    Welche Strecke habe ich unter Route gespeichert

  • wie kann ich von der 2 Strecke die sizeof auslesen ?Welche Strecke habe ich unter Route gespeichert

    Du kannst in sizeof die Dimensionen mit angeben (glaub ich zumindest).
    Quasi:

    Code
    sizeof(fscp_streacke1) //Gesamt
    sizeof(fscp_streacke1[]) //Erste Dimension
    sizeof(fscp_streacke1[][]) //Zweite Dimension
    sizeof(fscp_streacke1[][][]) //Dritte Dimension

    @The Sensei
    Was genau geht denn nicht / nur ab und zu?

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen