Gamemodes in Lua schreiben

  • Würdet ihr solch ein Plugin verwenden 47

    1. Ja (22) 47%
    2. Vielleicht (2) 4%
    3. Nein, ich bleib bei Pawn (23) 49%

    Guten Tag,


    mir kam heute die Idee, dass Shoebill Projekt zu erweitern (wer es nicht kennt -> Project Shoebill 1.1 - Schreibe Gamemodes in Java).
    Meine Vorstellung war, Gamemodes in reinem Lua zu schreiben, und dabei auch auf die Funktionen von Gamemodes zuzugreifen, welche in Pawn geschrieben wurden (Pawn und Lua (und sogar Java) können Side-By-Side gleichzeitig laufen). Das Plugin wie es aktuell ist, ist sehr leicht gehalten. Hier mal ein kleines Beispiel:


    PHP
    addHandler("PlayerConnect", function(event)
    	SendClientMessage(event.player, -1, "Wilkommen auf meinem Server, " .. GetPlayerName(event.player))
    	return true
    end)


    Nun wollte ich fragen, ob ihr euch für so ein Projekt interessieren würdet?

  • Ganz ehrlich? - Nein.
    Ich finde das Pawn ein fester Bestandteil von SAMP ist.
    Warum sollte man also urplötzlich von Pawn zu Lua wechseln?
    Für Leute die aus der MTA Scene herwechseln bestimmt ganz schön:
    Aber für die aktuelle SAMP Community denke ich würde es kaum auf Anklang stoßen.


    Liebe Grüße

  • Da sich viele wahrscheinlich durch die Umfrage die Beiträge ersparen werde ich mal auch wieder was schreiben :D


    Ich finde es echt gut dass sich jemand an sowas ran setzt und würde es daher NIE ablehnen, besser die Möglichkeit haben als nicht. Gerade für die, die vielleicht von MTA zu SAMP möchten, vielleicht wegen Freunde oder so ^^
    Auf jeden Fall sehe ich noch einen großen Vorteil:
    Besonders ich lerne Programmieren indem ich mich einfach selbst ausprobiere, halt learning-by-doing. Ich nutze hauptsächlich das Shoebill-Java-Plugin. Man kann dadurch seinen Server zwar nicht mehr über die meisten Gamehoster laufen lassen, dennoch bietet es dadurch gerade zusätzlich noch Performance (durch zB vServer). Man könnte nun also ganz normal weiter machen mit seinem PAWN / Java Gamemode und wenn man Lust hast sich mal Lua anzusehen, dann kann man das machen und da zB eine kleine Lua Ergänzung schreiben, halt spielerisch programmieren lernen :D


    Also letztendlich finde ich das Projekt klasse, ich weiss zwar nicht wie viele es nutzen werden und ob es überhaupt welche nutzen werden, hauptsächlich wahrscheinlich nur MTA Migranten, aber ich würde es jedenfalls ausprobieren, nur jetzt musst du wissen, ob sich die Arbeit dafür lohnt.

  • @m4a_X:


    Lua ist deutlich schneller als Pawn, und ist generell weiter verbreitet, d.h. du kannst später vielleicht deine gesammelte Erfahrung in deinem Berufsleben verwenden.
    Außerdem muss man ja nicht nur Lua verwenden, man kann gleichzeitig auch Pawn benutzen.

    • Offizieller Beitrag

    Ist das nicht völlig unnötig? Wenn man Lua nutzen will, kann man gleich zu MTA wechseln. MTA bietet schließlich viel mehr Möglichkeiten als SAMP und ist auch sonst SAMP weit voraus.


    An sich ist deine Idee natürlich nicht schlecht, jedoch dank der Konkurrenz auch ein wenig sinnfrei.

    hzCMJ37.pngZertifizierter Satanisten-Nazi-Inhaber

  • Würde ich nicht sagen. Die Entwicklung von Gamemodes würde deutlich schneller voran gehen, mit weniger Problemen.
    Hier ein kleines Beispiel:


    Senden einer formatierten Nachricht in Lua:

    Code
    SendClientMessage(player, -1, "Hallo, " .. GetPlayerName(player) .. ". Dein Level beträgt: " .. GetPlayerScore(player))


    Senden einer formatierten Nachricht in Pawn:

    Code
    new myString[64], name[MAX_PLAYER_NAME+1];
    GetPlayerName(player, name, sizeof(name));
    format(myString, sizeof(myString), "Hallo, %s. Dein Level beträgt: %i", name, GetPlayerScore(player));
    SendClientMessage(player, -1, myString);
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Senden einer formatierten Nachricht in Pawn:


    Naja...das kann man aber auch so machen:


    /* Stellen Wir uns vor dieser Teil steht in einer Include. */
    #define SCME(%0,%1,%2,%3) format(string,sizeof string,%2,%3),SendClientMessage(%0,%1,string)


    stock GetName(playerid) {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    return name;
    }
    /*******************************************************************/
    //Und dann die Nachricht senden:
    new string[64];
    SCME(playerid,-1, "Hallo, %s. Dein Level beträgt: %d",GetName(playerid),GetPlayerScore(playerid));


    Und Pawn ist auch sehr hilfreich für später, da die Syntax sehr C ähnelt :)

    ast2ufdyxkb1.png


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

  • Ich würde es begrüßen, wenn man mit Lua Gamemodes schreiben könnte und es sich so nutzen lässt wie es Java bereits tut, bspw. Funktionen von Plugins nutzen.


    Ich würde dann auch LUA in das Open Source Projekt aufnehmen.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Naja, nicht wirklich.


    Du kannst dir zwar selber Funktionen erstellen, allerdings bist du immernoch an das gebunden, was dir grundlegend geboten wird. Der Server an und für sich bleibt der selbe. Die selbe stinktnormale server.exe. Lediglich die Programmiersprache hat sich geändert.


    Heißt im Klartext: Es gibt durch eine neue Programmiersprache nicht mehr Funktionen. Es werden lediglich neue Möglichkeiten geboten, Sachen umzusetzen.

    Einmal editiert, zuletzt von Manniac ()

  • dann gibt es mehr Funktionen als in Pawn.


    Nein, die Funktionen werden identisch sein.
    Wie man mit dem Speicher umgeht oder wie man die Datenverarbeitet, da gibt es unterschiede.


    Bei Java bspw. hat man den noch den Vorteil die komplette Java VM auf der Seite zu haben, hätte man .Net könnte man evtl, das fast das gesamte Framework nutzen. Aber Lua ist eine Scriptsprache und bietet keine weiteren Funktionen.
    Pawn würde das auch nicht tun, aber das was man in der core.inc findet ist Bestandteil des Pawnkerns und wird mit implementiert.
    Wie das bei Lua genau ist kann ich nicht sagen, wird aber sicherlich ähnlich sein.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • .Lua (Portugisisch und heißt auf Deutsch Mond) ist eine schöne Sprache. Zwar hat sich noch Ihre macken und Kanten, jedoch kann man sehr viel damit Anfangen. Man sollte es aber auch nur nutzen wenn man weiß was man da tut. Denn es schleichen sich schnell fehler in Lua ein und somit (kann) der ganze Gamemode nicht mehr Funktionieren. Wenn dann dann mehrere tausend Zeilen Geschrieben hat, sehr Ärgerlich! Ich Spreche aus Erfahrung. :wacko:


    Nun zur Sache, Lua in einem Gamemode Verwenden (kann!) man machen wenn man das nötige Wissen dazu hat. Lua ist Ressourcen Sparend und schnell beim Einbinden!


    Meine Empfehlung: Besser als PAWN!


    Es bezieht sich hier auf meine Meinung, und jegliche Dumme Kommentare könnt ihr euch sparen. Denn wer Wirklich Ahnung von Lua hat, weiss was ich Meine.


    Auf dahin, einen Schönen Tag :)


    BlackShield


  • Danke für deine Antwort, jedoch arbeite ich momentan nicht mehr an diesem Projekt weiter.
    Wer Interesse an dem Quellcode hat, kann mich kontaktieren.