Beiträge von Kaliber

    oder einfach auf die Ignoriere liste tun


    Ach was :D
    Da sitzen schon genug Leute, glaub mir mal ;)


    Nimm die konstruktive Kritik an,


    Welche?


    Das von BlackAce, das ich auf meine Wortwahl mehr achten muss...joa kann man mal so stehen lassen, mehr konstruktiv war da nicht.


    Nun, ich habe darauf echt langsam keinen Bock mehr, ich glaube ich schreibe noch ne kleine Verabschiedung und dann bin ich erstmal weg ;)

    Manche denken sich halt im Kopf "Scheiße hätte ich das nur gemacht... egal mal schnell haten!!" was ich eigentlich schade finde.
    Gutes Tutorial für Anfänger, man muss denen auch nicht alles vorsagen.


    Ja, aber selbst das ist noch nicht die Krönung des ganzen.


    In der letzten Zeit hier, wird das immer schlimmer, man ließt nur noch so GF Copy&Paste und teilweise wird das dann einfach so veröffentlicht...drunter steht gutes System...wieso veröffentlicht man sowas...da denke ich mir immer...dafuq?
    Haben die sich das überhaupt mal angeschaut, mir ist bewusst, das man nicht perfekt direkt ist, aber dann kann man sich doch mal Sachen durchlesen und aneignen...Aber nein, lieber ein CopyPaste veröffentlichen...Aber das erstaunliche ist einfach, dass da nie geflame ist oder so :D
    Aber sobald ich mal mir Zeit nehme und sowas schreibt sich halt nicht in 2min...direkt geflamet und erstmal 10Pns bekommen mit, wie dumm das doch ist und soweiter :wacko:
    Und es ist ja nicht so, dass das zum 1. mal hier passiert, eigentlich ist das permanent so und langsam reichts mir einfach :cursing:
    Weiterhin muss ich mich leider über das Team hier beklagen und irgendwie gefällt mir Breadfish momentan gar nicht! :whistling:

    Kaliber, nimm dir doch dir Kritik zu Herzen anstatt das Tutorial zu löschen.
    Aber BlackAce, du könntest auch etwas weniger provozieren.


    Ihr beide macht euch gegenseitig eure Arbeit kaputt :S


    Wenn es doch nur er alleine wäre...Manche Leute hier, hassen mich aber noch mehr :O


    und je mehr ich veröffentliche desto mehr werden es und so langsam habe ich da keinen Bock mehr drauf, wozu auch, ich meine ich mache ja hier was für euch, wenn der Dank dafür einfach nur ein "Du bist scheiße", oder "Ich hasse dich du H****" zurückkommt...nun, dann fragt man sich dann doch...wieso 8|

    Nein, dass sind Argumente.
    Aufgerufene Funktionen haben Parameter, Funktionen selber haben Argumente
    *Hust* number of arguments...


    So ein enormer unterschied :pinch:


    Wir waren uns doch einig, das dies ein "anfänger" Tutorial sein soll.
    Was fängst du da mit Pointern an?
    Diese erklärst du nicht, sondern stellst sie hin.


    Es ist als wenn du einem Kleinkind ein Auto gibst.
    Das Kind weiß nicht was es damit machen soll.


    Ich hatte gehofft, dass mal ein wenig zu revolutionieren, damit man das nutzt anstatt forward und public :D


    Was sind dann Datenbanken?
    Sind die einfach da?
    Exestieren die in der Luft?


    Ja, wo sonst :wacko:


    Dini speichert schonmal keine Variablen.


    Wenn dem so wäre, dann wäre es eine Schande, es als Speicherungsart zur Verfügung zu stellen, wenn es keine Variablen speichert, bzw die Werte der Variablen...


    Auch .exe, wenn es dir Spaß macht


    Ja, das haben die Funktionen fopen etc so an sich, dass du da wirklich halt alles machen kannst :rolleyes:


    Datei öffnen/Schließen muss (und das bei z.B 600 Accounts,...)


    Ja, 600 Querys bzw nach maddins Tutorial > 600 Querys, sind ja viel besser :rolleyes:

    Dazu wäre allerdings noch ne Frage, ob der Code in Echtzeit bei beiden Seiten angezeigt wird, oder ob nur einer Zurzeit scripten kann?


    Haha :D


    Der Code ist für was völlig anderes gedacht :D


    Les dir das alles nochmal in Ruhe durch ;)

    Ich will aber, das man nur Num 2 Drücken kann wenn das Objekt "2677" dort auch ist.


    Es gibt leider kein GetObjectModel(objectid); Zwar kann man diese Funktion neu schreiben, musst nur CreateObject etc hooken, dennoch brauchst du das in dem Fall nicht.


    Gib dem Objekt 2677 also, wenn du es erstellt eine id, sprich new obj = CreateObject(2677,...); so und nun fragst du ab ob er in der Nähe von obj ist, mit GetObjectPos und IsPlayerInRangeOfPoint, kannst du das gut machen ;)


    mfg. :thumbup:

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