|
-
[Skriptpaket] LeGo #2
Anmerkung der Moderation:
Dieses Thema ist nicht aktuell (und ohnehin geschlossen). Das Folge-Thema ist hier zu finden:
http://forum.worldofplayers.de/forum...ptpaket-LeGo-3
$$\.................$$$$$$\..............$$$$$$\..
$$.|...............$$..__$$\............$$..__$$\.
$$.|......$$$$$$\..$$./..\__|.$$$$$$\...\__/..$$.|
$$.|.....$$..__$$\.$$.|$$$$\.$$..__$$\...$$$$$$..|
$$.|.....$$$$$$$$.|$$.|\_$$.|$$./..$$.|.$$..____/.
$$.|.....$$...____|$$.|..$$.|$$.|..$$.|.$$.|......
$$$$$$$$\\$$$$$$$\.\$$$$$$..|\$$$$$$..|.$$$$$$$$\.
\________|\_______|.\______/..\______/..\________|
»Es gibt Lego, es gibt Minecraft, aber nichts ist so toll wie LeGo \o/«
-Lehona
LeGo [LehonaGottfried] ist, wie aus dem Titel ersichtlich, ein Skriptpaket das auf Ikarus aufbaut. Während Ikarus grundlegende Möglichkeiten bereitstellt, wird hier der Fokus auf die praktische Anwendung gelegt. Alle enthaltenen Funktionen sind sehr einfach gehalten und müssen nicht in ein tolles Script eingeflochten werden um Sinn zu ergeben, sondern sind auch alleinstehend mächtig. Über pixelgenaues Erzeugen von Texten und Texturen auf dem Bildschirm und einem schönen Interface für Trialoge (eigentlich "Polyloge"), bis hin zu "Triggerlosen Triggerschleifen" die mit nur einer Zeile aktiviert werden können beinhaltet LeGo sicher für jeden Scripter eine interressante Erweiterung die ihm von Nutzen sein kann.
Sicher sind manche Pakete sehr speziell oder einfach nur nutzloser als andere, das liegt daran dass LeGo nicht aus einer Idee "Lass uns ein Scriptpaket machen!" entstanden ist. Ursprünglich war alles was hier zu finden ist als Grundlage für unseren Beitrag zum Modding-Contest gedacht, da Lehona und ich aber leider nicht fertig geworden sind (aus eigener Faulheit, zugegebenermaßen) lag dieser Featurehaufen noch ungeordnet und ohne Nutzen auf unseren Platten. Nun, da wir beide nette Menschen sind haben wir uns überlegt den ganzen Kram zu sortieren, kommentieren und zu erklären (was bei unserer Arbeitweise beim besten Willen nicht einfach war) und hier zur Verfügung zu stellen.
Sektenspinners zweifellos vorhandene Unterstützung sei natürlich auch noch erwähnt. Ohne ihn hätte sich der Release entweder noch um ein paar Jahren hingezogen oder es gäbe gar keinen 
LeGo wird (wenn interresse besteht) laufend erweitert, nicht zuletzt wenn DU gute Vorschläge für weitere Funktionen hast, daher eröffnen wir hier mal ganz konservativ mit der Version 1.0 
Zur Version 1.0 sei noch folgendes gesagt: Da LeGo mit momentan 15 Päckchen ziemlich umfangreich geworden ist können wir beide keine Fehlerfreiheit garantieren. Jedes Paket wurde bereits genutzt und sollte im Normalfall funktionieren, allerdings wurde in den letzten Tagen noch sehr viel modifiziert um es möglichst Nutzerfreundlich zu gestalten. Wenn du einen Fehler entdecken solltest (oder ein grundlosen Absturz bekommst, was auch immer ) dann schreib doch ein paar Zeilen in diesen Thread in denen du kurz erläuterst was genau du getan hast und welche der Pakete aktiv waren.
Ältere Threads
Wiki
Beispiele und Dokumentationen aller Funktionen innerhalb des Scriptpaketes
Startseite
Anwendungsbeispiele
Download
Viel Spaß mit diesem Paket wünschen euch
Gottfried und Lehona
Last edited by Milky-Way; 03.01.2015 at 22:46.
Reason: Version 2.3 hinzugefügt
-
Vorzeitig nicht mehr aktiv, aber per PN erreichbar
Sektenwahn
[/CENTER]
-
Sry,wenn das totaler Mist ist..Könntest du nicht einfach immer mit Tria_Next und TurntoNPC arbeiten?^^
-
TRIA_NEXT überschreibt laut doku nur Self, was mir ja nicht viel bringen würden, denn es müsste ja im Grunde Other (Also der Held) überschrieben werden
Vorzeitig nicht mehr aktiv, aber per PN erreichbar
Sektenwahn
[/CENTER]
-
Fisk hat schon Recht. Du musst zwangsweise immer "other" ansprechen, auch wenn er gar nicht damit gemeint ist.
Du kannst es etwa so machen:
Code:
// [...]
AI_TurnToNpc(Skipper, Bob);
AI_WaitTillEnd(self, Skipper); // Wenn Skipper nicht self ist sollte gewartet werden
TRIA_Next(Skipper);
AI_TurnToNpc(Bob, Skipper);
AI_Output(self, other, "somedia_020"); // Hey, mein Name ist Skipper. Wie heißt du?
TRIA_Next(Bob);
AI_Output(self, other, "somedia_021"); // Ich bin Bob.
TRIA_Next(Skipper);
AI_Output(self, other, "somedia_022"); // Toll.
Dass da in Wirklichkeit immer der Held angesprochen wird, merkt ja keiner 
MfG Gottfried
-
Ui super Solltet ihr vielleicht in Euer Tutorial einbinden, ich denke die Frage könnte öfters kommen ^^
Gut doch net so okay -.-
Jetzt sprechen die NPCs zwar miteinander, aber grundsätzlich verkehrt herum -.- Heißt der Eine sagt das vom anderen und andersrum
Code:
Func void DIA_Malte_TRIALOG_HENK_PAKET_Info()
{
var c_npc Malte; Malte = Hlp_GetNpc(VLK_119_Malte);
var c_npc Henk; Henk = Hlp_GetNpc(VLK_114_Henk);
TRIA_Invite(Henk);
TRIA_Start();
//Malte spricht Henk An
//TRIA_Next(Malte);
AI_TurnToNpc(Malte, Henk);
AI_WaitTillEnd(self, Malte);
TRIA_Next(Malte);
AI_TurnToNpc(Henk, Malte);
AI_Output(self, other, "DIA_Malte_TRIALOG_HENK_PAKET_1_3"); // Sag mal, was erzählst du da für einen Mist? Du hast mein Paket nicht mehr?
TRIA_Next(Henk);
AI_Output(self, other, "DIA_Malte_TRIALOG_HENK_PAKET_15_0"); // Was? Wer behauptet denn so einen Mist? Das Paket ist doch hier.
TRIA_Next(Malte);
AI_Output(self, other, "DIA_Malte_TRIALOG_HENK_PAKET_1_4"); // Mein Sohn sagt, du hättest es nicht?
TRIA_Next(Henk);
AI_Output(self, other, "DIA_Malte_TRIALOG_HENK_PAKET_15_1"); // Was? Den Kerl hab ich noch nie gesehen
TRIA_Next(Malte);
AI_TurnToNpc(Malte, PC_Hero);
AI_Output (self, other, "DIA_Malte_TRIALOG_HENK_PAKET_1_5"); //Stimmt das?
AI_Output (other, self, "DIA_Malte_TRIALOG_HENK_PAKET_15_2"); //Äh, eigentlich ...
AI_Output (self, other, "DIA_Malte_TRIALOG_HENK_PAKET_1_6"); //Ich bin ja enttäuschungen von dir gewohnt, aber das du mich auch noch belügst ist wirklich sehr enttäuschend ... Darüber reden wir später!
TRIA_Finish(); // und Ende
AI_StopProcessInfos (self);
};
Überseh ich irgendwo was oder hab ich einfach nur zu wenig kaffee intus um das problem zu erkennen?
Vorzeitig nicht mehr aktiv, aber per PN erreichbar
Sektenwahn
[/CENTER]
Last edited by Icebox; 23.03.2012 at 10:21.
-
Ich möchte wieder keinen Mist erzählen, aber ich habe schon von 3 anderen Usern mitbekommen(bei mir war es auch so) das die Trialoge in der jetztigen, Release Version fehlerhaft sind. Bei der noch nicht veröffentlichten Version geht das alles wieder super, also denk ich mal,dass es bei dir auch gehen wird.. Bei der neuen Version,wenn sie denn mal raus kommt^^.
Vielleicht liegt das Problem auch wirklich nur irgendwo im Script.. Keine Ahnung.
-
 Originally Posted by Icebox
Überseh ich irgendwo was oder hab ich einfach nur zu wenig kaffee intus um das problem zu erkennen? 
Vielleicht habe ich gerade zu viel Alkohol intus, aber...
 Originally Posted by Fisk2033
Bei der noch nicht veröffentlichten Version geht das alles wieder super
schätze ich.
Ich habe mich letztens erst mit den Trialogen befasst und diese Fehler mit der Reihenfolge beseitigt.
Um davon zu profitieren musst du dir entweder die letzte inoffizielle LeGo.zip herunterladen oder direkt das SVN auschecken.
Wenn dir das zu viel Aufwand ist kannst du wie Fisk sagt auch einfach warten bis wir einen neuen offiziellen Release raushauen. Gibt momentan noch ein paar kleine Problemchen mit A8
MfG Gottfried
-
Ich verstehe eure AI-Functions trotz kommentaren nicht. welche funktion muss ich nehmen, wenn ich einen wld_sendtrigger verzögern will? welche muss ich nehmen, wenn ich eine print-funktion verzögert aufrufen will? und vor allem: woran erkennt man das genau?
"Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
-Korallenkette
-
Du musst halt gucken, was für Parameter du der Funktion mitgeben musst. Sowohl Wld_SendTrigger als auch Print bekommen einen String. Also benutzt du AI_Function_S.
Alternativ kann man natürlich auch alles schon festlegen und mit AI_Function eine (eigene) Funktion ohne Parameter aufrufen, die dann immer dasselbe macht (oder globale Variablen nutzen und die jeweils vorher verändern).
-
Nur um die Ausführung von Milky noch mit konkreten Beispielen zu untermauern:
Wld_SendTrigger erwartet einen String, folglich musst du AI_Function_S verwenden. Könnte so aussehen:
AI_Function_S(hero, Wld_SendTrigger, "MYTRIGGER");
Alternativ um es so zu verpacken wie Milky es bereits angedeutet hat:
Code:
func void AI_SendTrigger(var c_npc slf, var string trigger) {
AI_Function_S(hero, Wld_SendTrigger, trigger);
};
Dann würde
AI_SendTrigger(hero, "MYTRIGGER");
ebenfalls tun was du haben willst.
AI_Function sollte allerdings nicht benutzt werden um etwas zeitverzögert aufzurufen, sondern nur um etwas nach den Aktionen eines Npc auszuführen. (Das ist ein kleiner, aber feiner Unterschied)
Wenn du Wld_SendTrigger nach 50 Sekunden aufrufen willst solltest du die FF verwenden:
Code:
func void DelayedTrigger() {
FF_ApplyExt(FireMyTrigger, 50000, 1); // 50sec, einmalig
};
func void FireMyTrigger() {
Wld_SendTrigger("MYTRIGGER");
};
MfG Gottfried
-
Die Prints sollten jetzt allesamt funktionieren, wäre ganz nett wenn so einige mal eben updaten können (Diejenigen ohne SVN-Client: LeGo.zip ist auch auf dem neuesten Stand) und etwaige Fehler melden können. Wir haben auch das Problem mit PrintScreen behoben (Wobei wir PrintScreen jetzt quasi zu einer normalen Scriptfunktion degradiert haben ), es wird also nicht mehr eingefärbt sondern bleibt weiß. Wir hoffen, dass wir im Laufe des morgigen Tages auch eine finale Version auf den SVN laden können und dann - wenn es keine direkten Fehler gibt - diese LeGo 2.2 nennen können
-
Klingt doch super. Mal schaun, ob sich meine ständigen Abstürze jetzt beheben lassen.
Wenn ich wieder zu Hause bin, gibts Feedback :-)
-
Last edited by Umfi; 30.03.2012 at 20:45.
-
-
Guten Abend werte Gemeinschaft!
Lehona und ich waren uns einig heute die Version 2.2 als vollwertig zu kennzeichnen und zu releasen.
Da Origo in nicht all zu langer Zeit schließen wird, waren wir gezwungen uns eine Alternative zu suchen. Auf das Wiki wollten wir nicht verzichten, schon deshalb weil es auch uns selbst bei der Organisation dieses Projektes hilft. (Sofern man das was wir hier verzapfen überhaupt als "Organisation" bezeichnen kann.)
Diese Alternative ist noch nicht ganz fertig, es fehlt noch ein wenig Feinschliff. Trotz des unfertigen Zustandes wollen wir sie euch nicht vorenthalten.
Hier ist unsere neue Seite, gehostet vom hochverehrten Meister Milgo. Vielen Dank dafür! 
Seit LeGo 2.1 hat sich wieder sehr vieles geändert. Fast jedes Paket hat eine Aufwertung oder (mindestens) einen Fix erhalten.
PermMem wurde im Hintergrund komplett neu aufgebaut, die Dialoggestures sehen nun auch nach außen hin komplett anders aus, sie nutzen keine Overlays mehr (dank eines Denkanstoßes von Zaphod). Die Locals wurden mit großer Beihilfe von Sektenspinner ebenfalls neu aufgebaut, sie sind um ein achtfaches schneller geworden, was sich auch wesentlich auf die Geschwindigkeit von PermMem auswirkt, das zu großen Teilen damit arbeitet.
Wie immer sind auch einige neue Pakete hinzugekommen. EventHandler, Gamestate, Timer, Buttons und StringBuilder. Ein Blick darauf lohnt sich 
Bugfixing wurde wie gesagt auch im großen Stil praktiziert. Der Changelog spricht eine deutliche Sprache in dieser Hinsicht.
Zu den meisten neuen Paketen sind bereits Beispiele vorhanden, Lehona wird ein Beispielscript für die Buttons noch nachreichen, die Dialoggestures werden ebenfalls demnächst folgen.
Lehona und ich werden uns bemühen auch Tutorials und ähnliches für Neueinsteiger zu verfassen, um bald ein nach außen hin schönes Gesamtpaket liefern zu können 
Wie ihr sehen könnt habe ich den Einleitungspost stark kastriert, auch hier werde ich in den folgenden Tagen Hand anlegen.
So weit so gut. Ich bin erstmal bis Dienstag weg. Viel [hoffentlich bugfreien] Spaß mit LeGo 2.2!
MfG Gottfried
-
Glückwunsch und Danke für den Release. Das mit den Tutorials ist sehr gut Vielleicht kann ich dann mal etwas mehr anstellen,außer ein paar Prints verändern und Trialoge machen ^^
-
Scripts parsed but at the end of loading this error apeared 
00:36 Fatal:-1 C: zCPar_DataStack :: Push(): stack overflow!!! ....
-
Hab's mal eben reingeladen und gleich ein paar Probleme gesehen:
1. Cursor verwendet jetzt offenbar eine andere Textur, die fehlt aber.
2. PrintScreen zentriert jetzt??? Meine Zeitanzeige, die früher immer in der rechten oberen Ecke war, ist jetzt in der oberen Mitte.
3. Meine Formel für die Koordinatenberechnung in meinem kleinen Minispiel in XR funktioniert nicht mehr, aber da weiß ich noch nicht mehr, muss ich mal, wenn ich irgendwann mal wirklich wieder Zeit hab, gucken, woran das liegt.
-
Apprentice
 Originally Posted by Mark56
Scripts parsed but at the end of loading this error apeared 
00:36 Fatal:-1 C: zCPar_DataStack :: Push(): stack overflow!!! ....
Maybe its GTools fault? Try switching it off before you run the game.
I have a question. Why are the Shield.d and Quickslots.d put as deprecated? Are they abandoned now?
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
|
|