Beiträge von [FR]Metro

    Beispiel für Laden:

    //OnGameModeInit
    mysql_function_query(SQL_Con,"SELECT * FROM fraktion ",true,"FraktionPublic ","");


    //Irgendwo
    forward FraktionPublic();
    public FraktionPublic()
    {
    new rows, fields, result[32];
    cache_get_data(rows,fields);
    if(rows)
    {
    for(new i=0; i<rows; i++)
    {
    cache_get_field_content(i,"fraktionsname",result),//String
    format(fInfo[i][FraktionName],24,result),
    cache_get_field_content(i,"SpawnX",result),//Float
    fInfo[i][Spawn_X]= floatstr(result),
    cache_get_field_content(i,"Interior",result),//Int.
    fInfo[i][fInterior] = strval(result);
    }
    }
    return 1;
    }


    Beispiel für Speicherung

    stock SaveFraktion()
    {
    new Query[224];
    for(new i; i<75; i++)
    {
    //Ich empfehle dir ein Bool zu benutzen und abzufragen ob es erstellt wurde
    format(Query,sizeof(Query),"UPDATE fraktion SET fraktionsname='%s',SpawnX='%f',Interior='%i' WHERE fraktionsname='%s'",
    fInfo[i][FraktionName],fInfo[i][Spawn_X],fInfo[i][fInterior],fInfo[i][FraktionName]);
    mysql_function_query(dbhandle,Query,false,"","");
    }
    }


    Ich hoffe du machst nicht nur Copy&Pase, schau dir am besten den Code an, und präge dir die Weise zum Laden und Speichern ein. Ich habe dir mal die wichtigsten 3 Variablen angegeben. Ich hoffe es hilft dir weiter. Wenn du weitere Hilfe brauchst, kannst du dich wieder hier melden, oder per PN.


    PS: Für das richtig Einrücken hatte ich keine Lust.

    Ich weiß nicht genau wo das Problem liegt, du beschreibst nämlich nicht wirklich eins.
    Wäre nett wenn du dein Problem beschreibst, denn immer wenn du schreibst: "Das Problem ist ...." kommt anschließend einfach eine Aussage
    und keine Schilderung des Problems. Wenn du dich wieder meldest, helfe ich dir liebend gerne weiter.

    Ich hatte den selben Bug, als ich versucht habe Grid 2 aufzunehmen. Ich habe anschließend Fraps neuinstalliert und es ging danach alles wieder. Versuch es auch am besten mal.

    Ich komme am besten mit dem Editor von Zamaroth klar. Er hat außerdem ein Update von einem User aus dem englischen Forum bekommen, damit man Objecte anzeigen kann, Textdraws gleich Selectable machen kann und außerdem kann man sie auch nun sofort in PlayerTextdraws importieren.

    Ein Stock kannst du als Vereinfachung beim scripten sehen, er hilft dir, das du nicht so viel Schreibarbeit hast.
    Beispiel:
    Ich möchte meinen Spieler speichern, und habe einen ewig langen Query, der ungefähr 50 Zeilen lang ist.
    Ich kann überall diese 50 Zeilen schreiben, oder ich kann Zeilen sparen und es mir leicht machen und den Code einen Stock packen.
    Das würde so aussehen:
    stock BeliebigerName(Parameter, z.B. playerid)
    {
    //Meine 50 Zeilen Code
    return 1;
    }
    Nun kann ich unter OnPlayerDisconecct einfach schreiben: BeliebigerName(playerid); --> jetzt werden meine 50 Zeilen ausgeführt.


    Ähhhm, danke, du hast halt noch vergessen ob der Spieler im Vehicle (Heli) ist, weil dann kann er ja höher als MC sein. Und dann mus man noch beachten, wenn der Spieler ausm Heli springt... Ok; das ist seeehr viel ARBEIT


    Und wenn der Spieler esc drückt bleibt er in der Luft.. wie kann man abfragen ob der spieler das spiel pausiert hat??


    Nein, wenn er eine Geh-Animation ausführt, kann er wohl kaum in einem Helikopter sitzen.

    Achtung!

    Ich habe vergessen zu sagen, abzufragen, ob die Person in einem Interior ist.


    Empfehlung:
    Außerdem würde ich dir empfehlen, in deinem Anticheat-Timer die Position zu speichern und abzufragen ob es zu letzten gespeicherten Position eine große Differenz gibt.

    Eine kleine Absicherung wäre, wenn du die Höhe des MC nimmst, und abfragst ob die Position des Spielers darüber ist. Dann fragst du noch ab ob die CarSurfingID invalid ist und zu guter letzt fragst du ab, ob die Person langsam -, normal -, schnell geht (Natürlich mit Animationen). Es ist natürlich auch möglich mit Map Andreas, aber ich höre sehr oft, das es sehr viele Ressoursen verbraucht, vor allem, wenn du es in einem Spielerdefinieren Timer machst, des alle 5-10 Sekunden aufgerufen wird.


    Wenn du irgendwie hilfe brauchst, bei Anticheat System, kannst du dich per PN melden. (Musst aber zuerst Freundschaftsanfrage schicken)

    @Music4You:
    Was für eine unnütze Schreibarbeit? Den Inhalt des Timers, fügt man eben bei einem Stock unten ein, es wäre sinnvoller und nicht Ressoursenlastig, es ist total paradox was du hier schreibst.

    Variable für geld nutzen, timer laufen lassen, getplayermoney benutzen, fragen obs über 0 ist, kicken bannen was auch immer.


    Für was sinnlos Ressoursen mit einem Timer fressen? Man kann das ganze in einen Stock packen und es hooken und nach dem Geld geben abfragen, ob es den selben Wert hat.