Beiträge von UncleSub

    Das sollte so nicht stimmen. Wie oben schon mehrmals erwähnt, musst du das PlayerWeapon Array global definieren. Du solltest dir also erstmal den Unterschied zwischen globalen und lokalen Variablen klar machen.


    Globale Variablen:
    Sie stehen außerhalb von irgendwelchen Funktionen, vorzugsweise ganz Oben im Script.
    Sie können in allen Funktionen benutzt werden.


    Lokale Variablen:
    Sie stehen in einer Funktion, oder in einem Teil einer Funktion (auch if, for, while,...).
    Sie können nur in dem Teil, in dem die Variable deklariert wurde benutzt werden. Außerdem werden sie nach Beendigung der (Teil-) Funktion automatisch gelöscht.


    Mfg,
    UncleSub


    //Edit:
    Außerdem geht das


    GivePlayerWeapon(playerid, PlayerWeapon[playerid][..][0], PlayerWeapon[playerid][..][1]); // Stimmt das?


    nicht.


    Du musst die Waffen in einer Schleife (z.B. for Schleife) speichern und laden / geben.

    Das sogenannte "learning by doing".

    Kann ich nur empfehlen. Klingt zwar nicht viel Versprechend, ist es aber.



    Ich habe mir damals alle MrMonat Tutorials angeguckt, wobei ich ehrlich gesagt nichts verstanden habe und nur abgeschrieben habe.


    --> Deshalb fang ein Gamemode an und Scripte einfach. Egal wie scheiße das Gamemode wird, nicht aufgeben und weiter probieren. Irgendwann kommt das Verstehen von ganz alleine :D


    (Ich habe bestimmt 20 Gamemodes angefangen und alle verworfen)

    Wenn es Lokale Variablen sind, werden sie automatisch, nachdem die Funktion oder der Teil einer Funktion (z.B. if Statements, Schleifen) ausgeführt wurde, gelöscht.


    Globale Variablen würde ich wie oben beschrieben auf 0 setzen, die Memory Nutzung sollte dann sehr gering sein.


    Wenn du Ahnung vom Werk hast und DRINGEND Variablen löschen willst, könntest du Y_Less malloc Include verwenden. (NUR WENN DU AHNUNG HAST)


    Mfg

    Du musst eine Schleife (z.B. for Schleife) machen, die alle Fahrzeuge durchgeht (MAX_VEHICLES). In dieser Schleife musst du dann abfragen, ob sich ein Fahrzeug beim Tow Truck befindet. Dies machst du, indem du die Position des Spielers mit jeder Position der Fahrzeuge in der Schleife vergleichen.


    Könnte so aussehen:


    if((floatabs(PLAYERPOSX-VEHICLEAUSSCHLEIFEX)<7.0)&&(floatabs(PLAYERPOSY-VEHICLEAUSSCHLEIFEY)<7.0)&&(floatabs(PLAYERPOSZ-VEHICLEAUSSCHLEIFEZ)<7.0)&&(VEHICLEAUSSCHLEIFE!=GetPlayerVehicleID(playerid)))



    Wenn dies zutrifft, nutzt du AttachTrailerToVehicle, um das Fahrzeug anzuhängen.


    Falls du noch Fragen hast, immer her damit.


    Mfg,
    UncleSub

    WinRar benutzt die AES-128 Verschlüsselung. AES ist sehr sicher, je nach dem, wie lang und ausgefallen dein Passwort ist.
    Das Passwort zu knacken dauert dementsprechend, je nach Passwort,Sekunden - Minuten - Stunden - Jahre.


    Bsp.:



    Aus der 7Zip Hilfe


    Mfg,
    UncleSub

    if(sscanf(params,"ud",params)) return SendClientMessage(playerid, ROT, "Benutzung: /cuff [ID]");


    Zu


    if(sscanf(params,"u",params)) return SendClientMessage(playerid, ROT, "Benutzung: /cuff [ID]");


    Ändern.


    Mfg,
    UncleSub

    Ich weiß nicht, ob dein Problem noch besteht, aber so wie ich den Code sehe sollte es noch nicht klappen. Ich kommentier dir mal weshalb es wahrscheinlich nicht klappt:


    for(new id; id < MAX_FCARS; id++)
    {
    new str[520];
    format(str,sizeof str,"SELECT * FROM `fraccars`"); //Musst das gar nicht formatieren, da keine Parameter eingefügt werden müssen
    mysql_query(str); //Es wird 250 mal ein query (so viele cars sind wahrscheinlich nicht in der datenbank) ausgeführt und immer alles von fraccars geladen.
    mysql_store_result();
    mysql_fetch_row(str); //Es wir immer nur die erste Zeile "gefetcht"
    sscanf(str,"p<|>{i}ddffffs[12]dd",FCarInfo[id][fFrak],FCarInfo[id][fModel],FCarInfo[id][fX],FCarInfo[id][fY],
    FCarInfo[id][fZ],FCarInfo[id][fR],FCarInfo[id][fPlate],FCarInfo[id][fC1],FCarInfo[id][fC2]);
    mysql_free_result();
    //////
    new dad = CreateVehicle(FCarInfo[id][fModel],FCarInfo[id][fX],FCarInfo[id][fY],FCarInfo[id][fZ],FCarInfo[id][fR],FCarInfo[id][fC1],FCarInfo[id][fC2],-1);
    SetVehicleNumberPlate(dad,FCarInfo[id][fPlate]);
    printf("||>>|| F-Car Sys ||<<|| Frak %d Model %d Pos: %f,%f,%f,%f Plate: %s Color: %d, %d wurde geladen",FCarInfo[id][fFrak],FCarInfo[id][fModel],FCarInfo[id][fX],FCarInfo[id][fY],
    FCarInfo[id][fZ],FCarInfo[id][fR],FCarInfo[id][fPlate],FCarInfo[id][fC1],FCarInfo[id][fC2]);
    }


    Du solltest das ganze nicht mit einer for Schleife angehen. Ich empfehel dir eine while Schleife. Mit dieser Methode wird auch nur ein Query ausgeführt, weshalb das ganze auch noch Ressourcenschonend ist.
    Bsp.:



    new str[520], car_count = 1;
    mysql_query("SELECT * FROM `fraccars`");
    mysql_store_result();
    while(mysql_fetch_row(str))
    {
    sscanf(str,"p<|>{i}ddffffs[12]dd",FCarInfo[car_count][fFrak],FCarInfo[car_count][fModel],FCarInfo[car_count][fX],FCarInfo[car_count][fY],
    FCarInfo[car_count][fZ],FCarInfo[car_count][fR],FCarInfo[car_count][fPlate],FCarInfo[car_count][fC1],FCarInfo[car_count][fC2]);
    new dad = CreateVehicle(FCarInfo[car_count][fModel],FCarInfo[car_count][fX],FCarInfo[car_count][fY],FCarInfo[car_count][fZ],FCarInfo[car_count][fR],FCarInfo[car_count][fC1],FCarInfo[car_count][fC2],-1);
    SetVehicleNumberPlate(dad,FCarInfo[car_count][fPlate]);
    printf("||>>|| F-Car Sys ||<<|| Frak %d Model %d Pos: %f,%f,%f,%f Plate: %s Color: %d, %d wurde geladen",FCarInfo[car_count][fFrak],FCarInfo[car_count][fModel],FCarInfo[car_count][fX],FCarInfo[car_count][fY],
    FCarInfo[car_count][fZ],FCarInfo[car_count][fR],FCarInfo[car_count][fPlate],FCarInfo[car_count][fC1],FCarInfo[car_count][fC2]);
    car_count++;
    }
    mysql_free_result();


    Mfg,
    UncleSub


    #define SetPlayerPosA(%0,%1,%2,%3,%4) SetPlayerPos(%0,%1,%2,%3); SetPlayerFacingAngle(%0,%4)


    Versuch es mal so
    Die Klammern waren unnötig und du hast am ende von FacingAngle auch noch ein Semikolon, obwohl es bei SetPlayerPosA nicht war ;)


    Danke hat funktioniert. Das mit den Klammern hatte ich auch mal ohne, aber ich hab einfach mal ein paar Sachen ausprobiert. War wohl das Semikolon.


    Danke.

    Hallo zusammen,


    ich habe mich mal mit dem Pre-Processor auseinander gesetzt und wollte ein kleines Makro basteln. Leider kommt es dabei zu errors.


    Hier das Makro:



    #define SetPlayerPosA(%0, %1, %2, %3, %4) SetPlayerPos((%0), (%1), (%2), (%3)); \
    SetPlayerFacingAngle((%0), (%4));


    Ich hatte das ganze auch schon mal so, hat aber auch nichts gebracht.:



    #define SetPlayerPosA(%0, %1, %2, %3, %4) { SetPlayerPos((%0), (%1), (%2), (%3)); SetPlayerFacingAngle((%0), (%4));}


    Es kommt zu folgenden Errors:



    Weiß jemand weiter?


    Mfg,
    UncleSub