NewRaven.net - Forum

Mir gefällt es, dass die Edelsteine nur mit entsprechenden Werkzeug abzubauen sind.
Das ist doch relaistischer, als sie einfach so aus dem Gestein mitzunehmen.
So sollte es auch bei Ebenerz, Adamantium, Vulkanglas und Zinn sein.
Deswegen meine kleine aber freche Frage:
Wie wäre es, solch ein nettes kleines PI zu machen?
Wär schon schön... es wäre machbar indem man allen diesen containern ein entsprechendes _miner_...-Script anhängt. Ich habe bei Oanzleft die Teile aber direkt als Aktivatoren eingesetzt weil die bloss eine lokale short-variable benötigen und kein inventar, respawn usw.

Dann wäre es auch gut ähnlich wie Herbalism gleich einen Skill draus zu machen anstatt wie es bei Oanzleft jetzt ist es einfach nur vom Glück des Spielers und vom Besitz eines Werkzeuges abhängt nach wievielen Schlägen er an seine Steinchen kommt.

Wenn sich dann realistischerweise auch noch das Werkzeug abnützen soll kann man ja einen Punkt \'Waffenfrass\' zurückwerfen. Leider lässt sich die \"Hau-mit-der-Axt\"-Animation nicht am Spieler aufrufen- dabei friert der PC ein - naja...aber soweit wär das machbar...

Leider hat die Idee einen kleinen Haken:

Die Container in den Minen gehören dem Kaiser bzw. den Wachen. Und es ist nur ein Verbrechen wenn man den Container knackt oder etwas rausnimmt. :(
Hm, daqs liese sich ändern ;-)
Was spricht dagegen, es einfach so wie beim Stalhrim zu machen?
Wie? Beim Stalhrim braucht man doch auch bloss ne nordische Hacke und es ist ja wieder ein Container aus dem man dann die Sachen rausnimmt anstatt Stück für Stück vom Felsen abzuhacken.
Die beiden Prinzipien vertragen sich nicht denn das Problem bei Containern ist das wenn man per Script deren Inventar verändert alle Container mit der gleichen ID angesprochen werden und genau der welcher gemeint ist hat aber meist schon den Vermerk container_altered_by_pc und hat ein eigenes -unique- Inventar...
Und wie Oanzleft: Aktivatoren mit Eigentümer zu machen geht schon. Aber wenn sie einer angraben will dann heisst es gleich das man in einem fremden Bett nicht schlafen darf...
Man könnte aber mit eine HEX die CONT zu ACTI machen ;-)
Wir danken dir für diesen überaus wertvollen Beitrag.

Zwar ist damit das o. angesprochene Problem nicht geklärt und der ganze Vorgang liese sich auch trefflich mit dem CS erledigen - aber wir können natürlich so zeigen das wir mit HEX (T.P. lässt grüßen) umgehen können. :lol:

Mit ein paar Scripten mehr wäre vielleicht die Activatorgeschichte machbar (um einen Eigentümer zu simulieren). Abfragen nach Wachen in der Nähe, Spieler im Sichtbereich und ähnlicher Aufwand ... naja, grundlegender Denkansatz halt ;)
@Killerkid: Eher nicht. Dann würde das Spiel zwei Objekte der selben ID finden, womit es sicherlich ein Problem haben wird. Im besten Falle würde die neue ID die alte überschreiben, dann würden die REFs imho auch funktionieren wie gewollt. Aber im schlechtesten Fall stürzt das Spiel schon beim Einlesen des PlugIns ab.

Ich würd eher sagen ... lokale Scripte, kombiniert mit einem globalen wären sicherlich nett.

Code:
Begin _Bergbau_\"Mineralname\"

short flag

if ( OnActivate )
set flag to 1
StartScript \"_Bergbau_main\"
endif

if ( flag < 1 )
; spart evtl. Ressourcen
elseif ( flag == 1 )
set \"total\".\"_Bergbau_main\" to ( GetItemCount, \"Mineral_ID\" )
set flag to \"flag\".\"_Bergbau_main\"
elseif ( flag == 2 )
RemoveItem \"Mineral_ID\" 1
set flag to 1
set \"flag\".\"_Bergbau_main\" to 1
endif

End



So müsste das Main Script nur das Input dieses Scriptes nutzen, um seine Berechnungen durchzuführen. Durch das Setzen der lokalen Variable (auf 2) kann es das lokale Script zum Verringern der Menge auffordern und mit dem Setzen auf 0 ist die Geschichte vorbei (das Flipback von flag im Main Script kann wahlweise auch mit dem Flipback von total ersetzen, je nach dem, wie man das Script anlegt.

So würde das Spiel den Container behandeln wie jeden anderen auch, wer ihn ohne Erlaubnis aktiviert kriegt Ärger, wer nicht, der nicht ... weiß leider nicht genau, wie dein Script funktioniert ... aber man kann es auch so machen, dass der Spieler für jeden Versuch einmal das Objekt anklicken muss, wobei jedes Mal getestet wird, ob der Spieler erwischt wird oder nicht.

Ist aber alles möglich ;)

Edit: Hier vielleicht ein Versuch für die Version mit \"jedes-mal-anklicken\", wobei \"flag.glob == 2\" für das \"Hack\"-Event steht, \"flag.glob == 3\" für das \"Abbau\"-Event.

Das mit den leeren while-Schleifen ist neu, würde normalerweise das Script lahmlegen, heißt hier allerdings nur: \"Warte, bis globscript einen Schritt weiter ist\" (und das obwohl OnActivate nur einen Frame lang true ist ^^). Natürlich experimentell und nicht gestestet, kam mir aber grade so in den Sinn ;)

Code:
Begin _Bergbau_\"Mineralname\"

if ( OnActivate == 0 )
return
endif

short flag

if ( GetScriptRunning \"_Bergbau_main\" == 1 )
if ( flag == 1 )
set \"flag\".\"_Bergbau_main\" to 2
while ( \"flag\".\"_Bergbau_main\" == 2 )
endwhile
if ( \"flag\".\"_Bergbau_main\" == 3 )
RemoveItem \"Mineral_ID\" 1
endif
set \"total\".\"_Bergbau_main\" to ( GetItemCount, \"Mineral_ID\" )
while ( \"flag\".\"_Bergbau_main\" == 3 )
endwhile
set flag to \"flag\".\"_Bergbau_main\"
else
return ; vorerst
endif
else
StartScript \"_Bergbau_main\"
while ( \"flag\".\"_Bergbau_main\" == 0 )
endwhile
set \"total\".\"_Bergbau_main\" to ( GetItemCount, \"Mineral_ID\" )
set flag to \"flag\".\"_Bergbau_main\"
endif

End



Edit²: Ok ... mir ist eingefallen, man muss etwas aus dem Container nehmen, damit es \"illegal\" wird. Ließe sich wohl machen, wenn man die Zahl der Items speichert, sie alle per Script rausräumt und beim \"Abbau\"-Event den Container öffnet (vorher natürlich noch etwas Erz hineingetan).
Referenz-URLs