[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
  • Dann muss ich für denen Player einen Timer setzen oder?


    Wie ressourcenhungrig ist eigentlich so ein Timer? ich brüchte ja 100Stk bei 100 Spielern. Bei SetWorldTime brauche ich nur einen (da geht die minute ja nicht?)

  • Neuer Fehler..

    Code
    error 035: argument type mismatch (argument 1)
    Code
    Die Zeile gibt den Fehler
    
    format(showList,sizeof(showList),"{FFFFFF}%s Leader: %s (%s{FFFFFF})\n",GetFraktion(fName),SpielerInfo[playerid][sName],((!OnlineByName(sName))?("{F6000F}Offline"):("{00EE14}Online")));
  • Hallo,

    ich habe ein Problem, dass zerstörte deklarierte Vehicles ersetzt werden durch neu erstellte. Dies ist dann ein Problem, wenn man irgendwo Vehicleid abfragen hat...

    Uns ist das die Tage aufgefallen und da von uns keiner Erfahrungen damit gemacht hat frage ich mal hier :D


    Die Ursache ist mir nicht ganz klar, ich hoffe man kann mich aufklären warum das so ist und was ich dagegen machen kann.

    Mache ich das so, dann tritt dieser "Bug" auf, vertausche ich aber die 2 Zeilen, sodass ich erst das Fahrzeug erstelle und anschließend es lösche klappt es (wahrscheinlich würde es dann wieder Bugs geben mit neu erstellen Fahrzeugen danach).

    Code
                        DestroyVehicle(Biz6Vehicle[i]);
                        ErsetztesVehicle[playerid] = CreateVehicle(FVVehTypes1[i][FVT1Model], //...


    Steige ich mit dieser Variante in das neue Fahrzeug, kommt er trotzdem durch diesen Code.

    Code
                if((newstate == PLAYER_STATE_DRIVER) || (newstate == PLAYER_STATE_PASSENGER))
                {
                    for(new i; i<sizeof(Biz6Vehicle); i++)
                    {
                        if(vehicleid == Biz6Vehicle[i])
                        {
                            ShowPlayerDialog(playerid,DialogID,DIALOG_STYLE_MSGBOX,"Fahrzeug ersetzten???","??","Ja","Nein");
                        }
                    }
                }

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

  • Dann muss ich für denen Player einen Timer setzen oder?


    Wie ressourcenhungrig ist eigentlich so ein Timer? ich brüchte ja 100Stk bei 100 Spielern. Bei SetWorldTime brauche ich nur einen (da geht die minute ja nicht?)

    Nicht ganz du machst einen Globalen Timer und gehst dann mit einer for schleife durch alle Spieler die gerade auf den Server sind, somit sparst du andere Timer.

    und wenn du jetzt den Timer einmal alle Minute updatest sollte das doch gehen oder? Sowie den Spielern beim Connect die Uhrzeit einmal setzen, die du einfach in einer globalen Variable speicherst und beim Timer Aufruf setzt.



    Sry wegen dem langen Zitieren aber Foren und ich ka. wie man das kürzt :D

    Also, nach dem DestroyVehicle(BizVehicle[i]);

    fügst du noch das hinzu:

    Code
    DestroyVehicle(Biz6Vehicle[i]);
    Biz6Vehicle[i] = INVALID_VEHICLE_ID;
    ErsetztesVehicle[playerid] = CreateVehicle(FVVehTypes1[i][FVT1Model],//

    Grund, du hast ja bestimmt Biz6Vehicle[I] = CreateVeh... erstellt somit behält er die Vehicle id auch wenn du sie Destroyst, denn DestroyVehicle cleart nicht dein Biz6Vehicle[i], somit musst du danach der Variable eine Invalid id geben oder -1 setzen ist eig. egal :D

    Somit sollte es dann gehen eig. ^^

    Einmal editiert, zuletzt von Mogly1 ()

  • Neuer Fehler..

    Code
    error 035: argument type mismatch (argument 1)
    Code
    Die Zeile gibt den Fehler
    
    format(showList,sizeof(showList),"{FFFFFF}%s Leader: %s (%s{FFFFFF})\n",GetFraktion(fName),SpielerInfo[playerid][sName],((!OnlineByName(sName))?("{F6000F}Offline"):("{00EE14}Online")));

    Kaliber wo bist du mein guter?

  • würde gerne einen timer mit einfügen das Mann für paar Sekunden gefreezt wird und ein Text erscheint Map wird geladen und nach denn paar Sekunden Mann wieder entfreezt wird

    Code
    else if (IsPlayerInRangeOfPoint(playerid,4.0,2807.8452,-1174.0934,1025.5703))// Atzen Exit
            {
                  if(PlayerInfo[playerid][pLeader] == 17 || PlayerInfo[playerid][pMember] == 17 || IsACop(playerid))
                {
                     SetPlayerPos(playerid,1642.9802,2322.6882,10.8203);
                    SetPlayerFacingAngle(playerid,82.9910);
                    SetPlayerInterior(playerid,0);
                    SetPlayerVirtualWorld(playerid,0);
                }
            }

    Mit freundlichen Grüßen

    Markus001

    • Offizieller Beitrag

    würde gerne einen timer mit einfügen das Mann für paar Sekunden gefreezt wird und ein Text erscheint Map wird geladen und nach denn paar Sekunden Mann wieder entfreezt wird

    Das könntest du mit einem TimerEx und nem GameText lösen, sieht bsp. so aus:


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

    if(Spieler[playerid][pAdmin] < 1 || Spieler[playerid][pOverWatch] > 0) return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN);


    Hey,


    Ich möchte das OverWatsch und Admin den befehl ausführen könn aber das geht leider nicht jemand ne ahnung?

  • C
    if(!Spieler[playerid][pAdmin] && !Spieler[playerid][pOverWatch]) return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN);

    ast2ufdyxkb1.png


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

  • etwas gegen AirBreak

    Ja, ähnlich wie beim Flyhack, kannst du einfach die Position speichern von dem Spieler.


    Legt er in einer gewissen Zeit (nur X, Y) Koordinate betrachten eine große Strecke zurück -> Airbreak.


    (SetPlayerPos muss natürlich berücksichtigt werden, als Ausnahme bzw Aktualisierung der Position).



    Ein gutes Anti-Cheat zu entwickeln ist so mit das Anspruchsvollste, was man in GTA schreiben kann xD

    ast2ufdyxkb1.png


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

  • Wenn ich mich recht entsinne, kann man ergänzend die Player/Vehicle Velocity betrachten, da diese beim AirBreak nicht / gering? verändert wird. Kann aber sein, dass das mittlerweile auch manipuliert wird...

  • da diese beim AirBreak nicht / gering? verändert wird

    Da hast du recht, die ist auf 0.


    Wobei man da nur bei der Vehicle-Velocity sicher sein kann. Die Player-Velocity spackt rum xD

    ast2ufdyxkb1.png


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

  • Beitrag von Dr. Frauenarzt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Unnötig -.- ().
  • Guten Abend,



    Kurze frage warum wird vehAbgeschleppt und vehAbgeschleppt nicht für das Jenige Fahrzeug nicht gespeichert?

    Habe schon geprüft aber wird iwie nicht übernommen in der Datenbank.

  • Habe schon geprüft aber wird iwie nicht übernommen in der Datenbank.

    Was hast du denn geprüft? :D


    Hast du print-Debugging betrieben?


    Wird denn alles gesetzt?


    Wie sieht das Query aus, was sagt der MySQL-Log?


    Oh man oh man oh man, meeeehr Infos 🙈

    ast2ufdyxkb1.png


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

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