Beiträge von TehEbil

    Hmm, ich wüsste nicht, was ich als Referenz vorzeigen könnte.


    Habe z.B. ein komplettes GF-Script geschrieben, das in mysql.
    GF teils nachgebaut, nur halt nicht so ressourcenverschwenderich.


    Ansonsten müsste man mir einfach vertrauen, Geld u. Script sollte ja durch Mittelsmann ausgewechselt werden.

    Nunja, da gibt es eigentlich nicht viel zu sagen.


    Bitte nicht wg. meiner wenigen Posts vorurteilen, ich denke, dass ich sonst alles 'in pawn' drauf habe.


    Bezahlung vorerst nur per PSC, bitte nur kleine Scriptideen. Für größere Projekte bin ich nicht gerade so motiviert.


    Einfach hier im Forum eine PN schreiben mit Idee u. Bezahlung, evtl. andere Kontaktmöglichkeiten.


    Vorhanden ist:
    Teamspeak (3) u. MSN, im Notfall würde aber auch Skype gehen.


    MfG


    //Edit:
    Nunja, mal doch ein paar Informationen:
    Ich beherrsche MySQL, verwende sscanf u. ZCMD, achte auf Sauberkeit u. optimierendes Scripten.


    Geschrieben habe ich z.B. ein komplettes Gangfightsystem (inkl. Fraktionen, Adminsystem, halt ein eigenes Gamemode), natürlich kein Godfather editiert... Meiner Meinung nach ist das einfach nur ein langsames, verbuggtes Müllscript (viel zu langsam), dessen Grundidee jedoch wiederrum nicht schlecht ist.


    Eine Art Bankrob, Remake of Autohändler des GF, etc.


    //Edit2:
    Referenz:
    [ FILTERSCRIPT ] 2 von sich abhängige Berufe


    Zur Veranschaulichung meines Scriptstils.

    Moin,


    ich bin nun total verwirrt und hänge immer bei vergleichen von arrays o.ä. fest.


    Wie bereits in einem anderen Thread erwähnt arbeite ich an einer Toplist, und steige später auf mysql über.


    Aber dennoch, zuvor will ich dieses Problem lösen, da ich es sehr oft habe und es dann entweder irgendwie doof umgehe, oder meine Ideen ganz außenvor lasse:


    Hier mal mein Code, mit vielen, ausgeklammerten & vergeblichen Versuchen:



    new string3[64], Sibbih[128], Sippih[10][128]; // Create the string to store the read text in
    new File:example = fopen("/Top10.ini", io_read); // Open the file
    while(fread(example, string3)) //reads the file line-by-line
    {
    printf("%s", string3);
    split(string3, Sippih, '=');
    //sscanf(string3, "s[128]i", Sibbih, Sippih);
    // if(Sippih < 5)
    printf("%i", Sippih[1]);
    //sscanf(string3, "
    //TopKillerName[] = Splits[0][];
    //printf("%s %i", Splits[0], Splits[1]);
    }
    fclose(example);


    new string3[64], Sippih[10][128];
    new File:example = fopen("/Top10.ini", io_read);
    while(fread(example, string3))
    {
    printf("%s", string3);
    split(string3, Sippih, '=');
    // if(Sippih < 5) // Hier, was bei "Sippih" hin?
    printf("%i", Sippih[1]);
    }
    fclose(example);


    Ich wollte halt überprüfen, ob Sippih, also der gelesene Killswert größer als der größte Kill ist, aber da ich dann 2 Arrays vergleichen muss, hab ich stattdessen erstmal "5" eingesetzt und versuche es so, nur: Bei Möglichkeit 1 (sscanf) kommt 0 raus, da er wohl das Format:
    Name=Kills
    nicht splittet ( hab ich aus dem Forum, aber wohl im falschen Kontext ), daher erneut mit split versucht, aber so ergeben die integerwerte einen ganz anderen Wert.


    Wie müsste ich denn Sippih vergleichen? habe schon ettliches versucht:


    if(Sippih < 5), if(Sippih[] < 5), if(Sippih[][] < 5), if(Sippih[0] < 5) ... sogar mit strval hab ich vergebens aus Verzweiflung rumexperimentiert, gar geraten, aber überall son doofer array Fehler, kann mir das jemand erklären? Das ist so ne Hürde, an der ich noch nie richtig vorbei gekommen bin, wahrscheinlich werde ich dies auch nicht ohne fremde Hilfe schaffen...


    MfG
    TehEbil


    Edit:
    Das Script mal ohne den ganzen Kommentaren und versuchen...

    Moin, hab ein Problem mit sscanf:


    new fId,
    SWReason[128];


    if(sscanf(params, "iz[128]", fId, SWReason))


    hab schon alles mögliche ausprobiert, swreason sollte optimal sein, also soll auch leer sein können, daher hab ich mal mit (string) oder () oder ... prbiert, groß Z, klein z, ...


    Bekomme aber fast immer folgende Errormeldung:


    sscanf warning: Strings without a length are deprecated, plase add a destination size.
    sscanf warning: Format specifier does not match parameter count.


    und davor waren es noch andere sscanf warnings...


    mfg


    edit: mit is[128] geht es irgendwie, aber das ist ja trotzdem noch nicht ganz das, was ich möchte...


    edit2: nee, jetzt kommt da auch ein error... :S

    ich würde gerne eine Funktion bzw. Macro haben, die das ganze verkürzt, und nicht eine, welche die Rechenzeit um einige, kleine MS erhöht ^^


    Danke trotzdem. Weiß sonst jemand noch weiter?


    /edit:
    Kann mir jemand vlt. auch erklären, weshalb da eine do-while Schleife benutzt wurde? Ich hab es mal ohne probiert, so bekomme ich nur 4 weitere Errors, also muss das irgendwie in einer SCHLEIFE stehen?


    mfg

    Moin, ich habe mir mal die Funktion


    #define SendFormattedText(%1,%2,%3,%4) do{new sendfstring[128];format(sendfstring,128,(%3),%4);SendClientMessage((%1), (%2) ,sendfstring);}while(FALSE)
    oder auch Macro verschafft ( aus dem englischen Forum ).


    Funktionieren tut sie gut, nur falls ich Folgendes mache;


    return SendFormattedText(playerid, FARBE_WEISS, "FraktionsID muss zwischen 1 und %i sein.", Max_Fraktionen);


    also die Funktion mit einem return beende ( optimales Scripten ), bekomme ich folgende Compilefehler:


    Zitat

    error 029: invalid expression, assumed zero
    error 036: empty statement


    Das liegt an dem Return, denke ich, habe ich zumindest so getestet. Ohne return funktioniert es.


    Kann mir das jemand fixxen? Und ist diese Funktion / dieser Macro schneller als ein einfaches format + sendclient ( string ) ? Ich versteh nämlich nicht wieso da eine do-while schleife einmal durchgelaufen wird O.o


    MfG

    Dann fang ich mal jetzt mit mysql an ;)


    @Liam
    /Ordner/%s.sav soweit ja klar, aber was sollte ich dann als string definieren?


    ich kann ja nicht einfach /Ordner/%s.sav, i oder was weiß ich machen, da die dateien nicht 1, 2, 3, 4... heißen sondern TehEbil.ini, etc.

    Methode 2:


    Oder:
    Du speicherst den Rekord als Variabel, ist diese kleiner als deine, wird die erhöht.
    Die anderen Variabel speichert noch den Namen.


    Diese hatte ich mir auch überlegt, aber das wären dann bis zu 10 abfragen pro kill :S ich will das nicht so ressourcenfressend machen.


    Zitat

    Du musst halt eine Datei erstellen, die alles beinhaltet. Also Kills, Deaths, Points etc.


    Also ALLES von JEDEM SPIELER in EINER Datei, welche dann sehr wahrscheinlich bald bis zu 10mb groß wird, wenn nicht, größer?


    Und wie kann ich dann von ihr lesen, wenn da so viele Namen vorhanden sind :S


    In AHK bekomm ich das ohne Probleme hin, aber in pawn gibts solche Funktionen ja garnicht :pinch:


    Entweder mach ich mir hier alles schwerer, als es ist, oder ich weiß auch nicht :sleeping:


    edit: .sav, die Endung, ist die egal? Ist also dasselbe wie .ini eigentlich oder?


    Ich verwende das Dini System im moment, steige später auf mysql um.

    Entweder versteh ich dich nicht, oder du mich nicht ^^


    Also, jetzt habe ich ca. 1.000 .ini Dateien im folgenden Format: SPIELERNAME.ini


    In ihr sind jeweils Kills, Deaths, ... des Spielernamen enthalten.



    Jetzt will ich aber eine Funktion machen, die die besten 10 DMler oder was weiß ich herausfiltert, den ansatz krieg ich nicht hin, wüsste aber, wie es weiter geht :o


    wie gesagt, falls ich alle kills samt namen extra nochmal in EINE Datei reinspeicher, dann könnte ich das vlt. lesen... Wie drücke ich es denn aus, dass er eine Zeile weiter runter lesen soll :S

    moin, ist es möglich, ein wert von allen dateien zu lesen, um somit eine Bestenliste zu erstellen?


    So versuche ich es:


    var = dini_Int("/spieler/*.ini", "Kills");


    aber logisch wäre das natürlich nicht, da var dann 100000 versch. werte hat, und in einer schleife kann ich es ja auch nicht einbinden.


    kann man denn irgendwie sagen, dass er alle dateien, von 1 bis MAX_Dateien_im_Ordner o.ä. liest bzw. haben die Dateien schon vorgegebene Variablen?


    Oder lässt sich das mit mysql besser handhaben.


    Eine Alternative wäre es, wenn ich die Kills in einer seperaten Datei Kills.ini speichern würde, aber dann hätte ich einmal die Kills in spieler.ini und dann nochmal in kills.ini, also doppelt -> sinnlos...


    MfG

    Wenn du wirklich kein Anfänger bist, dann müsstest du es doch hinkriegen, ich, als Anfänger, kriege sowas hin ò.Ó.


    Ich gib dir mal ein Anreiz:


    2 Fraktionen // Fürn Anfang
    Dann ein Gebiet erstellen, diese mit GangZoneShow unter onplayerconnet an neue zeigen.


    jetzt cmd zum einnehmen: Ist Spieler im Gebiet? ( Koordinaten! ) -> ( Versucht Spieler eigenes Gebiet anzugreifen? Ist er in einer Fraktion? ... -> Wenn GF Aktiv ist ( mit Variable lösen ) return, sonst code ausführen.


    Jetzt bei Kills:
    (WENN im Gebiet) Wenn spieler von fraktion 1 spieler von fraktion 2 killt, Kills von Frak1 ++, und dasselbe andersherum.


    Dann nen Timer mit 60*60*1000ms, überprüfen wer mehr Kills hat...


    MfG

    Zu wenig Informationen, welches fs? Weißt du auch, wo die Autos stehen müssten oder denkst du einfach so: Auf Server X standen die da, also müssen die auch auf meinem Server hier stehen?


    Einfach mal das FS posten, dann kann dir bestimmt weiter geholfen werden.


    Bekommst du denn irgendwelche Fehlermeldungen?

    Naja, tut mir leid wegen dreifachpost, habe mich bemüht, dieses nicht zu übertreiben, jedoch hatte der Thread hier keine Aufmerksamkeit mehr und war auf der 3. Seite.


    Julian, so habe ich es auch probiert, nur kam ich dann nicht mit folgendem weiter:
    GetGebiet(playerid); // hier wird Gebiet auf LsGebiet gesetzt.
    Gangfight[Aktiv][Gebiet] = 1;


    Naja, ich schicke euch beide mal die Datei, ich denke, ihr seid vertrauenswürdig und habt Ahnung, wovon ihr redet, vielleicht versteht ihr es dann, aber langsam denke ich, dass ich in eine falsche Richtung denke und das ganze garnicht so einfach dynamisch lösen kann sondern mit einem loop.


    Darauf bin ich dank Templer gekommen, ps: darf ich das script bearbeiten? Also auch Sachen rausschmeißen etc.? Oder ist das nur zum Anschauen? Wirst gleich verstehen, weshalb ich hier frage, wenn ich dir die pwn geschickt habe ;)


    Und danke für eure Mühe, nochmals.


    MfG

    Ich hoffe, ich darf hier doppelpost machen, damit es gebumpt wird :/


    Ich habe es oben reinzitiert. MfG


    //Edit: Ich habe gerade gemerkt, dass defines nicht während des Scripts aufgerufen werden können, da sie nur vom Compiler verwendet werden, hat jemand noch ne andere Lösung und/oder kann mir sagen, wie man dies mit Variablen löst? ( ich komm mit strings und arrays nicht klar.. keine Ahnung wieso)


    mfG

    AddStaticVehicle macht folgendes:
    Es erstellt ein Auto, wenn es z.b. unter OnFilterScriptInit gesetzt wird mit den Parametern, die in der Klammern stehen.


    Gucken wir uns mal AddPlayerClass an:


    http://wiki.sa-mp.com/wiki/AddPlayerClass


    Da sehen wir nun Folgendes:
    (skin, Float:x, Float:y, Float:z, Float:Angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo) // Vergleich:
    (0,1561.2043,2532.4163,579.7914,138.8145,0,0,0,0,0,0);


    Also sind die Koordinaten:


    1561.2043,2532.4163,579.7914



    Jetzt die Funktion zum Teleportieren: SetPlayerPos


    http://wiki.sa-mp.com/wiki/SetPlayerPos


    (playerid,Float:x,Float:y,Float:z)



    Dann einfach SetPlayerPos(playerid, 1561.2043,2532.4163,579.7914)


    MfG