You are not logged in.

Dear visitor, welcome to Nordlandtrilogie HD - Offizielles Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Tuesday, April 22nd 2014, 10:55am

Bug-Modding

Horrido erstmal...

Nachdem uns ja hier wirklich ein netter Editor zur Verfügung gestellt wurde, würde mich einmal interessieren ob es wohl möglich wäre Original ID's in ein eigenes Modul zu kopieren und so ein wenig mit veränderten Einstellungen testen zu können ob man / wir Verknüpfungs bedingte Bugs nicht vielleicht per Mod beheben könnte. Ich möchte ungern in den original Spieledateien umeinander tüfteln. Gerade einige Stellen in Phexcaer, oder diese Text und Wirkungslosen Amulette, sollten doch behebbar sein. Zumal ich gesehen habe das der nötige Kontent sogar schon vorhanden nur eben noch nicht verlinkt ist.
Das Leben ist ein schlechtes Adventure.... mit verdamt guter Grafik!

2

Tuesday, April 22nd 2014, 11:06am

Ja, das sollte funktionieren. Allerdings empfehle ich, noch den nächsten Patch abzuwarten. Zumindest in Phexcaer könnte sich da noch etwas tun...

Edit: Nur zur Klarstellung. Ich weiß auch nicht, was der Patch beinhalten wird. Es ist nur so, das wir im Beta-Forum speziell zu Phexcaer schon ein paar Dinge besprochen haben. Ob diese so (oder anders) implementiert werden, entzieht sich ebenfalls meiner Kenntnis.

This post has been edited 1 times, last edit by "lunatic" (Apr 22nd 2014, 11:53am)


3

Tuesday, April 22nd 2014, 12:50pm

Genau da liegt der Hase im Pfeffer, in Phexcaer gibt es so viele lose Enden das ich davon ausgehe, das da höchstwahrscheinlich noch gefixt werden sollte. Nar war die Frage wer, wann und könnte man den Devs unter die Arme greifen und da schon mal was vorbereiten. ;) Nun gut dann schau ich mir eben erstmal die unsäglichen Heshtoti in der Burgruine näher an vielleicht lassen die sich ja durch feuerempfindliche Mumien ersetzen...
Das Leben ist ein schlechtes Adventure.... mit verdamt guter Grafik!

4

Tuesday, April 22nd 2014, 1:06pm

Ich halte das für eine sehr gute Idee. Ich wollte auch durch meine Empfehlung nur vermeiden, dass man sich eventuell unnötige Arbeit macht.
Falls Du Hilfe beim Modding-Tool brauchst, kannste Dich gerne melden. :)

5

Tuesday, April 22nd 2014, 1:55pm

Am Ende wird der Mod noch beliebter als das Original :-D
Ich hab ein Auge drauf ;-)

*räusper* defense of the ancients *räusper* DayZ *räusper*

6

Wednesday, April 23rd 2014, 9:09am

Ok da mir gerade aufgefallen ist das bei (ganz schön) einigen Verknüpfungen 'TODO' steht geh ich mal davon aus das da noch was gerichtet wird. Hat halt bischen gedauert bis bis ich das TODO übersetzt hatte. Feuersensible Mumien fällt auch estmal flach, da ich momentan keine Möglichkeit sehe Monstern positive / negative Resistenzen zu verpassen. Wäre echt schön wenn Monster entweder eine Schwachstelle / Resistenz Eingabefeld verpasst bekämen oder eventül ein bis drei Ausrüstungsfelder. Dann könnte man vielleicht durch negative Ausrüstung (Feuerbann -5) Extraschaden definieren.

Aber andere Frage wie kann ich denn eigene Dialoge mit 'einfachen' Häuschen verknüpfen oder besser mit deren Türen. Da war nämlich noch dieses Thema Einbruch... das sollte ja eigentlich nichts weiter sein als ein Dialog mit ein paar Proben und evtl einen StartBattle...
Das Leben ist ein schlechtes Adventure.... mit verdamt guter Grafik!

7

Wednesday, April 23rd 2014, 6:29pm

Indem du eine Quest mit einem Step und einem Housetrigger für "house" anlegst. Im Housetrigger selbst kannst du dann zB würfeln, ob jemand zu Hause ist (beispielsweise auch abhängig von der Uhrzeit), und dann ggf. einen Dialog auslösen. Wichtig ist, dass du den Queststate mittels

Source code

1
setQuestState("deine-einbruchs-trigger-quest",0);
zurücksetzt. Achte auch darauf, dass du deinen Dialog auf jeden Fall mit einem Aufruf von

Source code

1
leaveLocation()
beendest, weil es im SImpleHouse kein Menü gibt und man sonst "steckt". Alternativ kannst du auch mit einem Aufruf von

Source code

1
setInsideScene("SimpleHouseDoor-x");
den Bewohner "verstecken" (sofern du den Dialog startest), und falls der Einbruch erfolgreich ist mittels

Source code

1
setInsideScene("SimpleHouse-x");
ein leeres Hausinneres anzeigen - das würde den Flair bestimmt erhöhen ;).

Ein Beispiel für einen "Globalen Haustrigger", aber hier für Tempel, findest du im Mod Anzeige Göttergunst (by lunatic).

8

Wednesday, April 23rd 2014, 6:50pm

Vielen Dank für die Tipps. Da weiß ich zunächst mal wo ich ansetzen muss, natürlich soll das ganze dann auch mal mit scene funktionieren. Aber erstmal möcht ich sehen ob ich die grundlegenden Funktionen hinbekomme. :) Ich bin Bastler kein Programmierer ;)
Das Leben ist ein schlechtes Adventure.... mit verdamt guter Grafik!

9

Wednesday, April 23rd 2014, 6:52pm

Was mich bei der Lösung über einen globalen Housetrigger (anstelle von einzelnen Building Events, was natürlich viel aufwändiger wäre) interessieren würde:
Wie löse ich das Problem, dass ich nicht beliebig oft hintereinander in ein und dasselbe Haus einbrechen kann? Das einzige, was mir spontan einfallen würde, wäre ein SpecialState bestehend aus getTime() und getLocation()....

10

Wednesday, April 23rd 2014, 7:02pm

Wird wohl nicht anders klappen als mittels SpecialState. Alternativ ginge auch ein BuildingState mit automatischem Ablaufdatum (ungetestet, so *müsste* es funktionieren):

Source code

1
2
3
4
5
6
7
8
9
var bldstate = getBuildingState( getCurrentTriggerData( "ut1" ) );
if( bldstate["val1"] == 1 ) {
  // Hier wurde in den letzten 3 Tagen eingebrochen
} else {
  bldstate["val1"] = 1;
  bldstate["expires"] = getTime() + 3; // erneuter Einbruch nach 3 Tagen
  setBuildingState( getCurrentTriggerData( "ut1" ), bldstate ); // Buildingstate Speichern
  // hier kann der Einbruch beginnen
}

11

Wednesday, April 23rd 2014, 9:58pm

Aber andere Frage wie kann ich denn eigene Dialoge mit 'einfachen' Häuschen verknüpfen oder besser mit deren Türen. Da war nämlich noch dieses Thema Einbruch... das sollte ja eigentlich nichts weiter sein als ein Dialog mit ein paar Proben und evtl einen StartBattle...


@curom:
Super dass du dich offenbar daran versuchen magst! :D
Wünsche gutes Gelingen und bin unheimlich gespannt, ob und wie es gelingt. - Das heisst, sofern du vor hast, das zu veröffentlichen. Hoffe firefox' Tipps und lunatic's Mod als Anschauungsmaterial helfen dir weiter!

Ich wünschte, ich hätte selbst den Hauch eines Schimmers von Scripting und Co... Naja, jedenfalls viel Erfolg! :)

12

Sunday, April 27th 2014, 2:12pm


Ich wünschte, ich hätte selbst den Hauch eines Schimmers von Scripting und Co... :)

Ja wenn du das selber dir wünschst, dann solltest du dich da kundig machen und einarbeiten in das Thema. Von nichts (alleine), kommt auch nichts. ;)
Ich will vernünftig (möglichst bugfrei :D ) spielen. Gewinnen ist auf Dauer doch irgendwie schöner als (ständig) verlieren. ;)

13

Friday, May 2nd 2014, 8:35am

Hm ...

ich hab gestern den Tag verbracht um meinem Rechner den Unterschied zwischen Tag und Nacht zu erklären, obwohl mir Chris eine Skriptzeile geschickt hatte, wollt diese jedoch auch nur zu 99 % klappen. Warum kann ich nicht nachvollziehen. Zwei Dinge machen mir aber noch Sorgen:

1. Da das einbrechen nur global aufgesetzt ist, müsste ich die fest eingebaute 'scene_simple_house' zunächst abbrechen um sie später zu starten (sonst steht ein Mann/Frau im Eingang und verschwände im Falle eines Einbruchs) Diese Scene sollte dann natürlich erst im Falle einer Anwesenheit (am Tage) ausgelöst werden.

2. Des Nachts wollte ich einen anderen Rausschmisstext(13) haben als am Tage, falls ein Haus bewohnt ist aber leider wird immer nur der Tagestext(6,10&11) ausgelöst... ich hänge mal den Code an

Source code

1
2
3
4
5
6
7
8
9
function forward () {
var dtxt = rollRandom(1,3);
if( dtxt < 4 && getDateTime() < 0.25 && getDateTime() > 0.75 ) return dtxt +4;
else if( dtxt > 4 ) return 13;
else if( dtxt == 1 ) return 11;
else if( dtxt == 2 ) return 6;
else if( dtxt == 3 ) return 10;

}


:huh:
Das Leben ist ein schlechtes Adventure.... mit verdamt guter Grafik!

14

Friday, May 2nd 2014, 8:41am

Ich verstehe nicht ganz, was Du vorhast, aber das hier

Source code

1
if( dtxt < 4 && getDateTime() < 0.25 && getDateTime() > 0.75 ) return dtxt +4;


kann nicht klappen. Per return verzweigst Du in eine andere Dialog-ID. dtxt ist aber eine Variable. Wenn Du sie erhöhen willst, wäre das so:

Source code

1
if( dtxt < 4 && getDateTime() < 0.25 && getDateTime() > 0.75 ) dtxt += 4;


Außerdem: Wie voll die Zeit gleichzeitig < 0.25 UND > 0.75 sein?

Eventuell musst Du auch die ganzen if-Bedingungen nochmal separat in () setzen...

Außerdem kann das else if in Zeile 4 gar nicht ausgelöst werden, da dtxt maximal 3 sein kann. s. Zeile 2

This post has been edited 1 times, last edit by "lunatic" (May 2nd 2014, 8:47am)


15

Friday, May 2nd 2014, 10:40am

Hach, die Boolschen Gesetze ;). Was du machen möchtest curom, schaut so aus:

Source code

1
if( dtxt < 4 && (getDateTime() < 0.25 || getDateTime() > 0.75) ) return dtxt +4;

So fragst du ab, ob Nacht ist. Allerdings ist dein Code so aufgebaut, dass du bei Nacht IMMER die erste Zeile auslöst, weil wie lunatic richtig bemerkt hat dtxt nur einen Wert zwischen 1 und 3 annehmen kann, und somit IMMER kleiner als 4 ist.

16

Friday, May 2nd 2014, 11:13am

1. Da das einbrechen nur global aufgesetzt ist, müsste ich die fest eingebaute 'scene_simple_house' zunächst abbrechen um sie später zu starten (sonst steht ein Mann/Frau im Eingang und verschwände im Falle eines Einbruchs) Diese Scene sollte dann natürlich erst im Falle einer Anwesenheit (am Tage) ausgelöst werden.

Guter Punkt, leider keine Idee dazu. Außer für JEDES einfache Haus in ALLEN Städten ein Building Event definieren, aber wäre viel zu aufwändig, denke ich...
Bei der Lösung über Housetrigger ist man quasi schon "im Haus" bevor der Dialog ausgelöst wird. Vielleicht kann Chris da was basteln
2. Des Nachts wollte ich einen anderen Rausschmisstext(13) haben als am Tage, falls ein Haus bewohnt ist aber leider wird immer nur der Tagestext(6,10&11) ausgelöst... ich hänge mal den Code an

Ich würde Dir empfehlen, das über verschiedene IDs zu regeln:

ID 1: Check Time, bei Nacht in ID 2, bei Tag in ID 3

ID 3: rollRandom für die Zufallstexte als function before (), der request für diese ID dann nur als {0}, diesen dann mit getLangString durch einen Deiner 3 Zufallstexte ersetzen.

Das ist wesentlich übersichtlicher...

17

Friday, May 2nd 2014, 1:58pm

Sinn von Zeile 3 war es eigentlich die gewürfelte dtxt Variable nur Nachts zu erhöhen, damit sie dann in Zeile 4 garantiert ausgelöst wird.

Wenn ich die Zeile von Chris richtig interpretiere, könnte da am ende auch ein Verweis direkt zu einem neuen ID stehen. ... return 2;
Das würde mich auf eine erheblich übersichtlichere Idee bringen. was doch zwei so Strichen ausmachen...:)...danke Meister.

@lunatic: ähm genau Tages/ Nacht Id's so war der Plan ursprünglich, was nicht funktioniert hatte wohl wegen der wie Du selbst bemerkt hast && statt ||. Da ist mir wohl beim kopieren ein Fehler unterlaufen...;)

hm grübel ich sollte das Topic umbenennen in 'Learn scripting' oder so...
Das Leben ist ein schlechtes Adventure.... mit verdamt guter Grafik!

This post has been edited 2 times, last edit by "curom" (May 2nd 2014, 2:46pm)


18

Friday, May 2nd 2014, 2:49pm

hm grübel ich sollte das Topic umbenennen in 'Learn scripting' oder so...

Ich bin gern bereit, Dir zu helfen, so gut ich kann. Schreib mir einfach ne PM mit Deinen Fragen, wenn Du magst... :)

19

Friday, May 2nd 2014, 5:09pm

Noch was zum Thema "Scene abbrechen": Das globale Event wird prinzipiell im selben Frame ausgelöst wie die InsideScene fertig geladen ist, und das ist die "simple_house_door". Wenn du also direkt in deinem 1er-Dialog folgendes machst:

Source code

1
2
3
function before() {
  setInsideScene("simple_house_door-x");
}

So sollte der Bewohner bei einem Einbruch an sich unmittelbar verschwinden, weil die Scene schon geladen sein *müsste* und damit der Bewohner auch im selben Frame wieder verschwinden *müsste*. Wenn dem nicht so ist, werfe ich gerne nochmal einen Blick drauf. Dann hast du die Tür sichtbar, bei der du dann den "Einbruch" abhandeln kannst. Sobald dieser erfolgreich ist, kannst du - wie ich dir glaub ich schon geschrieben habe - mittels:

Source code

1
setInsideScene("simple_house-x");

Eine Innenansicht des Hauses ohne Bewohner erzeugen. Ungetestet, sollte aber klappen.

20

Friday, May 2nd 2014, 6:43pm

Bestätigt hatte ich bereits probiert. Es funktioniert auch indem man die Door-x Scene vor den "startdlg" im Questscript setzt. Meine Sorge war dabei nur das anschließend, falls der Würfel auf Rauswurf fällt, erneut eine house-door-scene-m oder -w nachgeladen werden muss und die genaue Definition dieses Avatars sieht etwas schwierig aus, so das ich es gern umgangen hätte. Wenn natürlich nur der Bewohner aufploppen würde könnte man diese scene mit 'bevor' direkt vor die Rauswurfauswahl setzen und das ganze ziemlich perfekt machen, andernfalls wird bei erfolgreichem Einbruch ja auch nachgeladen. Eventül könnte man die Tag/Nacht funktion ja auch schon in diesem Script Feld vor "startdlg" klären. Werde damit zur nächsten Freizeit mal ein wenig testen.
Das Leben ist ein schlechtes Adventure.... mit verdamt guter Grafik!

21

Friday, May 2nd 2014, 9:39pm

Hochinteressantes Modprojekt. :)
Ich verfolge das mit sehr großem Interesse und drücke die Daumen für ein gutes Gelingen! Denke das kann das Spiel sehr bereichern - einfach um eine weitere (rollen-)spielerisch tolle Möglichkeit.

Similar threads