Bug-Modding

#1
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
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!

#3
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*

#4
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!

#5
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

Code: Alles auswählen

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

Code: Alles auswählen

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

Code: Alles auswählen

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

Code: Alles auswählen

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).

#6
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!

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

Code: Alles auswählen

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
}

#8
[quote='curom','index.php?page=Thread&postID=86827#post86827']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...[/quote]

@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! :)

#9
[quote='Ali Bengali','index.php?page=Thread&postID=86865#post86865']
Ich wünschte, ich hätte selbst den Hauch eines Schimmers von Scripting und Co... :)[/quote]
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. ;)

#10
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

Code: Alles auswählen

function forward () {
var dtxt = rollRandom(1,3);
if( dtxt  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!

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

Code: Alles auswählen

if( dtxt  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.

#12
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...
Zuletzt geändert von Curom am 02. Mai 2014, 14:46, insgesamt 2-mal geändert.
Das Leben ist ein schlechtes Adventure.... mit verdamt guter Grafik!

#13
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:

Code: Alles auswählen

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:

Code: Alles auswählen

setInsideScene("simple_house-x");
Eine Innenansicht des Hauses ohne Bewohner erzeugen. Ungetestet, sollte aber klappen.

#14
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!

#15
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.
Antworten

Zurück zu „Modding“

cron