Eins gegen Eins-System

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
  • & Verbesserungsvorschläge sind natürlich erwünscht.


    Dann gebe ich dir mal ein paar :)


    new Raum1 = 0;
    new Raum2 = 0;
    new Raum3 = 0;
    new Raum4 = 0;
    new Raum5 = 0;


    Nun, du solltest in deinem Script Arrays nutzen, das erleichtert dir so einiges, zudem spart es Platz und ist effektiver.
    Sprich das sollte so aussehen:


    new Raum[5];
    Dieses = 0; braucht man in Pawn bei der Deklaration der Variablen nicht, da sie automatisch mit 0x00 initialisiert werden.


    So Sachen wie unter OnPlayerSpawn, lassen sich viel verkürtzter darstellen, ich gebe dir mal ein Beispiel, wenn du Arrays benutzt hättest:


    public OnPlayerSpawn(playerid) {
    new rand = random(sizeof(RandomSpawnEGE));
    for(new i; i<5; i++) if(EinsGegenEins[playerid] || PRaum[i][playerid]) return SetPlayerPos(playerid, RandomSpawnEGE[rand][0], RandomSpawnEGE[rand][1],RandomSpawnEGE[rand][2]),GivePlayerWeapon(playerid, 24, 300);
    return 1;
    }


    Sprich, wir nutzen 5 Zeilen, anstatt 40 ;)


    Selbiges bei deinen Befehlen, z.B. dein /exit Befehl, bin jetzt zu faul, dass alles umzustellen, aber du kannst auf jeden Fall wie du oben siehst, sehr viele Zeilen sparen ;)


    if(PRaum2[playerid] == 1)return SendClientMessage(playerid, ROT, "Du bist bereits in einem Raum!");
    if(PRaum3[playerid] == 1)return SendClientMessage(playerid, ROT, "Du bist bereits in einem Raum!");
    if(PRaum4[playerid] == 1)return SendClientMessage(playerid, ROT, "Du bist bereits in einem Raum!");
    if(PRaum5[playerid] == 1)return SendClientMessage(playerid, ROT, "Du bist bereits in einem Raum!");


    Das hast du unter OnDialogResponse mehrere male verwendet, auch hier solltest du entweder Arrays + Schleife verwenden oder alles in 1ne if-Abfrage schreiben ;)


    Zum Schluss noch eins, ich rate von der Funktion ReturnUser ab ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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


  • Gut, werds morgen mal überarbeiten, sprich in Arrays / Enums / Schleifen.


    Da ich sowieso 2 Wochen nichts zutun haben.


    Wieso nicht ReturnUser verwenden?


    MFG :)


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Wieso nicht ReturnUser verwenden?


    Diese Funktion ist extrem lahm und nicht sehr vorteilhaft.


    Nutze stattdessen einfach strval ;)


    Achso, im übrigen wenn du wert darauf legst, kannst du dir gerne mal das hier durchlesen:
    http://forum.sa-mp.de/san-andr…optimierung-6#post1428034
    Besonders den Teil mit den Char-Arrays ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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


  • Ja, das sieht gut aus. - Werds mir mal als Lesezeichen speichern, und morgen werd ich mich drann setzten, das mal zu überarbeiten.


    Ist ja auch vorerst nur entstanden, da ich nichts zutun hatte.


    MFG & Danke für deine Kritik :)


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Sehr schönes Filterscript.
    Kann sicherlich der ein oder andere Server recht gut gebrauchen.
    Jedoch bleibt die Frage offen, wieso man so etwas veröffentlicht?
    Jetzt wird es wieder einige 0815 Server geben, welche dieses 1 vs. 1 FS besitzen und
    es als ihres ausgeben :S
    Ansonsten 9/10

  • Sehr schönes Filterscript.
    Kann sicherlich der ein oder andere Server recht gut gebrauchen.
    Jedoch bleibt die Frage offen, wieso man so etwas veröffentlicht?
    Jetzt wird es wieder einige 0815 Server geben, welche dieses 1 vs. 1 FS besitzen und
    es als ihres ausgeben :S
    Ansonsten 9/10



    Die Frage ist, wer kauft sowas?


    Wieso sollt ichs nicht releasen?


    Ich finde man kann das ruhig so releasen :D


    Neue Links sind nun da


    //Edit: Text geändert & Text hinzugefügt


    MFG :whistling:


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

    Einmal editiert, zuletzt von BOMBER ()

  • //Edit4: Danke noch an Kaliber: für den Codeoptimierungslink.


    Du hast nich richtig gelesen.


    new PRaum [MAX_PLAYERS char][5];


    Das ist ein 2 Dimensionaler Array, hier kannst du kein char verwenden (hatte ich extra geschrieben).


    new bool:EinsGegenEins[MAX_PLAYERS] = false;


    Hier allerdings schon, das solltest du so machen:


    new bool:EinsGegenEins[MAX_PLAYERS char];


    Wie schon erwähnt dieses = false; ist überflüssig, da die Variablen in Pawn eh mit 0x00 initialisiert werden ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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


  • Jo, danke war schon spät.


    Werds heut den Tag über noch mal richtig überarbeiten.


    MFG :D


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!


  • Vergessen den Kommentar zu löschen, brauchst nur noch im Array oben erhöhren und denn neue If-Abfragen schreiben, ist glaub ich auch daneben kommentiert.


    bsp:

    Raum[5] //für 5 Räume
    Raum[10] // für 10 Räume.. und so weiter


    MFG


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!