Beiträge von Kaliber

    //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:

    & 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:

    Das ist nur möglich, wenn du das auf mehrere Messages ausgleichst ;)


    Sprich wenn es mehr als 128 Zeichen sind, fängst du den rest ab, und packst den in eine neue SendClientMessage.


    Aber andernfalls funktioniert das nicht ;)


    mfg. :thumbup:

    Um dich ein wenig zu trollen es heit SQLite


    :rolleyes:


    MySQL hat gewisse vorteile zu SQlite und zwar was die menge an daten angeht da ist MySQL schneller bei einer geringeren Menge wiederrum SQLite.


    Von was für einer Menge reden wir hier...?


    Was die verwendung von MySQL angeht ist es besser MySQL für ein UCP zu nutzen als bei inis über den ftp zu gehen da bei MySQL eine geringere belastung vorhanden ist im bezug auf den Server.


    Nun, das werde ich mal ergänzen ;)


    mfg. :thumbup:

    Magst noch nen Korrektes Tutorial machen oder Erklärung Datenbanken, diese zu benutzen Speichern/laden ? könnt eich sehr gebrauchen derzeit..


    Maddin hat doch eins für Einsteiger gemacht, obwohl ich das nicht empfehle wegen den schlechten Querys, aber gut und ausführlich erklärt ist es ;)


    mfg. :thumbup:

    Das Breadfish Design is das Standart WBB Design nur ein anderer Header....


    und noch ein paar andere Einstellungen und Grafiken :rolleyes:


    Wenn man sich mich Bildbearbeitung gut auskennt, kann man ohne Probleme z.B. das Design von Breadfish etc. rippen


    Man kann leider jedes Design rippen, da man immer auf den Source-Code zugreifen kann, weil diesen der Browser braucht zum verarbeiten ;)
    Dennoch kann man versuchen ihn zu sichern, wie schon erwähnt mit Templates..etc..


    mfg. :thumbup:

    Daher nun meine Frage: Wie kann man einem Array(bspw. ist der höchste besetzte Index 9) den 10. Index zu belegen, quasi dem Array einen Eintrag hinzuzufügen?


    Nun...das kannst du so nicht direkt machen, da du eine bestimmte Größe vorgeben musst, damit der dann auch den Speicherplatz belegen kann...


    Es gäbe hier zwar die Möglichkeit Dynamische Arrays zu nutzen, durch malloc, aber das brauchst du eigentlich nicht.


    Du könntest doch einfach sowas machen:


    new test[20]; //hast 20 Plätze frei von 0-19


    test[0] = 1; //hier kannst du dann die Werte eintragen
    test[1] = 3; //usw


    mfg. :thumbup:

    Als Administrator ausführen, und dann so:


    SendClientMessage(
    //Dann kurz warten und dann zeigt er dir die Parameter an ;)


    mfg. :thumbup: