[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
  • Hey habe grade im Script noch Mysql R39-3
    und will es auf Mysql R41-4 Updaten habe nun Folgende Fehler :


    Fehlermeldung:

    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(3605) : warning 213: tag mismatch
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(3615) : warning 213: tag mismatch
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(3634) : error 017: undefined symbol "LOG_ALL"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4153) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4154) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4155) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4156) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4157) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4158) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4159) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4160) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4161) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4162) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4163) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4164) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4165) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4166) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4167) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4168) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4169) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4170) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4171) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4172) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4173) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4174) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4175) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4176) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4262) : warning 213: tag mismatch
    C:\Users\Admin\Desktop\SAMP-2018by Aerox\gamemodes\rp.pwn(4456) : error 017: undefined symbol "mysql_function_query"



    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase




    26 Errors.



    Code wo die Fehler sind:



    //________________________________________________Allgemeine MYSQL Abfragen_______________________________//
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_Business",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_Business",_SQL_BUSINESS,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_hauser",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_hauser",_SQL_HOUSE_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_parteien",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_parteien",_SQL_PARTEI_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_fraktionen",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_fraktionen",_SQL_FRAKTION_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_ctfsystem",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_ctfsystem",_SQL_CTF_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_produktion_load",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_produktion_load",_SQL_WP_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_zeitung",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_zeitung",_SQL_LOAD_ZEITUNG,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_event",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_event",_SQL_LOAD_EVENT,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_drogen",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_drogen",_SQL_DRUG_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_hausbau",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_hausbau",_SQL_GRUNDSTUCK_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_hausbauobj",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_hausbauobj",_SQL_GRUNDSTUCK_OBJ_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_werbung",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_werbung",_SQL_WERBUNG,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_wahlen",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_wahlen",_SQL_PARTEI_WAHLEN,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_staat",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_staat",_SQL_STAAT_SYSTEM,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_SprayTag",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_SprayTag",_SQL_LOAD_SPRAYTAG,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_fraktionsfahrzeuge",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_fraktionsfahrzeuge",_SQL_FVEH_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_C4",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_C4",_SQL_C4_LOAD,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_firmagrundstuck",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_firmagrundstuck",_SQL_LOAD_FIRMEN_GEBIETE,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_firmenautos",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_firmenautos",_SQL_LOAD_FIRMEN_VEHS,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_tikis",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_tikis",_SQL_LOAD_TIKI,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_hufeisen",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_hufeisen",_SQL_LOAD_HUF,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_wanteds",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_wanteds",_SQL_LOAD_WANTED,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_firmen",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_firmen",_SQL_LOAD_FIRMEN,0,MYSQLVerbindung);
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_blitzer",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_blitzer",_SQL_LOAD_BLITZER,0,MYSQLVerbindung);


    @Jeffry @Kaliber


    Mfg. Aerox :)

  • Moin


    ich bin langsam am verzweifeln...


    Ich möchte gerne abfragen ob der Tank leer ist vom Auto... Der sagt mir die ganze zeit, dass der Tank leer ist obwohl laut DB 5.00 Liter drinne stehen. Der Tank wird auch in die Variable (siehe OnPlayerCarsLoad) geladen...



    Nun versuche ich mein Motor Befehl wie folgt zu gestalten:

    mein Stock GetVehicleID (für cID):



    Code
    getCarID(playerid){
    	new vID = GetPlayerVehicleID(playerid);
    	for(new i = 0; i < sizeof(cInfo); i++){
    	    if(cInfo[i][id_x] != vID) continue;
    	    return cInfo[i][id_x];
    	}
    	return 0;
    }

    //EDIT habe eine Lösung gefunden, aber muss ich wirklich jedes mal, wenn ich auf die Info von dem Fahrzeug in dem man sitzt, zugreifen will, muss ich dann echt jedes mal die Schleife machen?:



    Einmal editiert, zuletzt von XonarZ ()

  • muss ich wirklich jedes mal, wenn ich auf die Info von dem Fahrzeug in dem man sitzt, zugreifen will, muss ich dann echt jedes mal die Schleife machen?:

    Nein, du müsstest den stock so schreiben:
    getCarID(playerid){
    new vID = GetPlayerVehicleID(playerid);
    for(new i = 0; i < sizeof(cInfo); i++){
    if(cInfo[i][id_x] == vID) return i;
    }
    return INVALID_VEHICLE_ID;
    }


    Dann wird dir der richtige Index zurück gegeben.
    Beachte, dass du dort wo du den stock nutzt auch abfrägst, ob der Wert nicht INVALID_VEHICLE_ID ist, bevor du es in einem Array-Index nutzt, sonst kommt es zu Fehlern, da du das Array dann sprengst.


    PS:
    Bitte beachte zukünftig, dass dieser Thread für kleine Scriptingfragen gedacht ist, und nicht für solch große Codes.

  • Code
    ocmd:pn(playerid,params[])
    {
    	new pID,text[128];
    	if(sscanf(params,"is[128]",pID,text))return SendClientMessage(playerid,COLOR_RED, "INFO: /pn [playerid] [text]");
    	SendClientMessage(pID,COLOR_YELLOW,text);
    	return 1;
    }

    Ich möchte jetzt das dort auch der Absender steht.
    Kann mir bitte wer sagen wie ich es so schreibe?

  • Das kannst du mit format machen:
    ocmd:pn(playerid,params[])
    {
    new pID,text[128],string[145],name[MAX_PLAYER_NAME];
    if(sscanf(params,"is[128]",pID,text))return SendClientMessage(playerid,COLOR_RED, "INFO: /pn [playerid] [text]");
    GetPlayerName(pID, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "%s (%d): %s", name, playerid, text);
    SendClientMessage(pID,COLOR_YELLOW,string);
    return 1;
    }

  • Hallo,


    Ich habe vor ein Navi System zu machen. Es sollte so sein das es Dynamisch im Script oben Erstellt werden kann (Kategorie und dann der Ort). Ich möchte nicht mit etlichen Dialogen Arbeiten.
    Nur ich wüsste gerade nicht wie ich das Anfangen soll.


    MfG Basti

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich habe mir eine Funktion UpdateSpectate gemacht, um den Spectate Status immer zu aktualisieren, wenn sich der Status von einem Spieler ändert, aber sobald dieser stirbt oder ein Interior betritt bewegt sich die Kamera einfach nicht zu der Person hin. Der Gametext, wenn die Person tot ist wird übrigens auch warum auch immer nicht angezeigt. Die Variable pSpecID verändert sich nicht, ist also die richtige.

    UpdateSpectate(playerid)
    {
    new target = pInfo[playerid][pSpecID];
    if(pInfo[playerid][pSpecID] == -1) return 0;
    if(pInfo[target][pSpecing]) return 0;
    if(GetPlayerState(target) == PLAYER_STATE_WASTED) return GameTextForPlayer(playerid, "Warte einen Moment...", 1500, 6);

    SetPlayerInterior(playerid, GetPlayerInterior(target));
    SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(target));
    TogglePlayerSpectating(playerid, 1);



    if(IsPlayerInAnyVehicle(target)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(target));
    else PlayerSpectatePlayer(playerid, target);



    return 1;
    }

    Ich führe die Funktion bei OnPlayerDeath, bei OnPlayerInteriorChange, OnPlayerSpawn, OnPlayerEnterVehicle, OnPlayerExitVehicle und bei OnPlayerStateChange aus.
    Überall so:

    foreach(new i : Player)
    {
    if(pInfo[i][pSpecID] == playerid)
    {
    UpdateSpectate(i);
    }
    }


    Es funktioniert aber einfach nicht, woran liegt das?

  • Hey, ist glaube ich keine Scripting Frage, aber hat was damit zutun.
    Ich will einen Sound auf einer Seite hochladen bekannt ist Kiwi6 aber da wird meine Datei nicht angezeigt, kann man das woanders hochladen?
    Oder kann man um einen Sound abzuspielen auch andere Links einfügen nicht unbedingt die direct links?


    @LeonMrBonnie
    Das Problem gab es schon öfter, habe auf Servern gespielt diese konnten auch nicht im Interior spectaten oder wenn der Spieler tot war
    Ich glaube das man dagegen nichts machen kann (?)


    Korrigiert mich einer wenn ich falsch liege.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

    Einmal editiert, zuletzt von Jameso ()

  • Moin,


    ich habe mir das Include https://forum.sa-mp.com/showthread.php?t=404367 nun mal angeschaut. Ich habe auch die Warnings entfernt die man durch dieses Include erhält.


    Nun ist es so, dass ich einen Timer Starte, sobald der Motor an geschaltet wird:

    Code
    SetTimerEx("setKiloMeter", 1000, true, "ii", playerid, vID);


    ganz oben bei meinen forwards hab ich natürlich auch den Forward:


    Code
    forward setKiloMeter(playerid, vehicleid);

    Die Funktion setKiloMeter sieht wie folgt aus:


    Code
    public setKiloMeter(playerid, vehicleid){
        printf("%d",GetKilometers(GetPlayerVehicleID(playerid)));
        ResetMetersTraveled(vehicleid); //ZEILE 738
    	return 1;
    }

    Nun bekomme ich allerdings beim Compilen immer folgenden Fehler:



    Code
    ...selfmade.pwn(738) : error 036: empty statement

    Zeile 738 habe ich Markiert


    //EDIT //EDIT ENTFERNT DA DOPPELT


    MfG
    XonarZ

    Einmal editiert, zuletzt von XonarZ ()

  • Code
    public OnPlayerConnect(playerid)
    {
    	InterpolateCameraPos(playerid, //...);
    	InterpolateCameraLookAt(playerid, //...);

    Irgendwie ist die Kamera immer noch an der selben stelle wie am Anfang irgendwie am Wasser, ist wahrscheinlich Standard so.
    Also mir fehlt was habe so etwas nie gemacht, wird auch nicht im Filterscript erklärt


    Wie beende ich die Kamera am ende dann nach dem Login z.B einfach
    SetCameraBehindPlayer(playerid); ?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • SetCameraBehindPlayer(playerid);



    Ist die Funktion nicht da das sich das dann wiederholt? oder wie kann man sowas wiederholen lassen?
    Falls man z.b ein Spieler im Krankenhaus spawnen lässt und dann solle eine Kamarafahrt sein. aber das ding ist die ist ja dann schnell vorbei auch wen man die z.b langsam fahren lassen würde?