s2ext
Programme & Projekte => Stranded 2 Extension Mod => Thema gestartet von: Anonymous am März 03, 2010, 19:46:34 Nachmittag
-
Ist das richtig einern neuen Thread aufzumachen *hoff*
Könnte man eine Funktion einbauen, damit man schnleller bauen kann? z.B. man kann 5 Sachen auf einmal verbauen. Oder kann man einfach ein Script zu dem Hammer hinzufügen?? Wäre froh, wenn jemand irgentetwas integrieren kann??
-
..meinst Du den lästigen Einzel - Rechtsklick?
Ich denke, das nervt einige User.
Es gibt einiges zu bauen, das mehr als 100 Teile hat..
Klar - bauen braucht halt Zeit, aber muss es so nerven..??
Wenn man z.B das erweiterte Haus baut ist es besonders nervig, weit über 100 Nägel
stupide einzeln einzuschlagen - wäre es nicht sinnvoller, wenn man einfach die rechte Maustaste
dauernd gedrückt halten könnte, wie z.B. beim Holz sammeln, Baumwolle ernten etc.. etc..
(..ich weiss, LMT..)
.. ich denke, dem Spielspass würde das bestimmt keinen Abbruch tun - im Gegenteil.. - mlg Aljna
-
man könnte auch einfach einstellen dass jeder Klick zählt. Jetzt geht es ja nur in einer bestimmten Frequenz.
-
Ich finde es gut so schon mal ein haus gebaut? Das dauert und durch das nervige Klicken wird die dauer simuliert man könnte es vieleicht so machen das man alle Items ins Haus einlagern kann und dann ein Dialog fenster kommt wo Bauen steht und wenn man da drauf drückt dauert es etwa den halben Tag und dann ist das Haus fertig
-
Die Idee finde ich gut, alles rein und dann dauerts halt ne Weile, man sollte dann aber noch irgndwas einführen, wodurch man immer mal wieder mit nem Hammer draufhaun muss oder so, nen Haus baut sich ja eigentlich nicht von alleine.
-
I've modded my s2ext to use less clicks on building. I've changed buildingsite to use a storage, so I can put the items inside. Then hit it with a hammer a few times, which uses up time you would have used right-clicking. Finish building with a right click. Of course, there is nothing to stop putting items inside and then right-clicking->cheat building.
I timed building a few times, and it took approx. 30 seconds to build a shelter with 50 buildparts. So each item takes about 0.6 seconds to build, multiply that with needed buildparts and you get total buildtime. Each hammer hit takes max 5 seconds. It could be longer, but that makes it more dangerous to build near hostiles.
I'm working on "build with one hit" method, too.
To test, back up and modify objects_buildings.inf. Start up the game, place a building site, put ALL items in first, THEN hit with hammer. If you put 1 item in and hit, the buildtime is wrong. (I don't know if it's possible to know how many items there should be?)
Modified objects_buildings.inf:
- #!NEXT
- ##################
- # BID: 1
- # GID: 0
- # File: objects_buildings
- ##################
- id=150
- name=Baustelle
- icon=gfxbuildplace.bmp
- group=building,std
- model=gfxbuildplace.b3d
- behaviour=buildingsite
- col=2
- health=100
- mat=wood
- maxweight=1000000000
- var=building,Gebäude ID,0,0
- script=start
- local $hasbeenhit,$howmanymsecleft;
- on:start { if (count("object",500)>0) { skip; }
- if ($building>0) {
- addstate "self",52;
- statesize "self",52,$building;
- }
- }
-
- on:use {
- exchange "self";
- }
-
- on:hit {
- if (getplayerweapon()==30){
- //msg "Klicke mit der rechten Maustaste,",3;
- //msg "um hier zu bauen!",3;
- if($hasbeenhit==0) {
- $hasbeenhit=1;
- $buildhit=impact_id();
- //msg $buildhit;
- $buildparts= count_stored("object", $buildhit);
-
- if($buildparts==0) {
- $hasbeenhit=0;
- }
- // 30s/50items=0.6s/item
- $howmanymsecleft=$buildparts*600;
- }
- if($howmanymsecleft<=0) {
- if($hasbeenhit==0) {
- msg "Put the raw materials in first!";
- }
- else {
- msg "Finish the building",3;
- msg "with the right mousebutton!",3;
- }
- }
- elseif ($howmanymsecleft<=5000) {
- process "building",$howmanymsecleft;
- $howmanymsecleft=0;
- }
- else {
- $howmanymsecleft-=5000;
- process "building $howmanymsecleft",5000;
- }
- }
- }
- script=end
-
Edited: typos
-
klappt super!!!! danke!!
mfg
chosun
-
I think I got "build-with-one-hammer-hit" version working, too. I think it's even better than the previous one. It also needs one additional script key to work. Hitting a buildsite with hammer starts a timer loop. The loop keeps building until it is finished or the user interrupts by hitting cancelbuild-key.
In game.inf, look for lines like these
- scriptkey=0,Steigen
- scriptkey=1,Sinken
- scriptkey=2,Sprinten
- scriptkey=3,Spezialtaste 1
-
In my case, the first free key was scriptkey 4, yours might be different.
replace "Freie Taste" with:
Now, hitting key 4 launches fk_hit02 (nothing to edit here, just see which number the event gets)
- on:keyhit04 { event "fk_hit02","global"; }
-
So, I declare fk_hit02 (paste after the on:keyrelease11)
- on:fk_hit02 {
- $cancelbuild=1;
- }
-
Now the game setup->keys(2) should have a key for "Cancelbuild". Remember to configure it!
Next, open objects_buildings.inf and replace the script part for buildingsites.
- script=start
- local $hasbeenhit,$howmanymsecleft;
- on:start { if (count("object",500)>0) { skip; }
- if ($building>0) {
- addstate "self",52;
- statesize "self",52,$building;
- }
- }
-
- on:use {
- exchange "self";
- }
-
- on:hit {
- if (getplayerweapon()==30){
- //msg "Klicke mit der rechten Maustaste,",3;
- //msg "um hier zu bauen!",3;
- $cancelbuild=0;
- if($hasbeenhit==0) {
- $hasbeenhit=1;
- $buildhit=impact_id();
- $buildparts= count_stored("object", $buildhit);
- if($buildparts==0) {
- $hasbeenhit=0;
- }
- // 30s/50items=0.6s/item
- $howmanymsecleft=$buildparts*600;
- }
- if($howmanymsecleft<=0) {
- if($hasbeenhit==0) {
- msg "Put the raw materials in first!";
- }
- else {
- msg "Finish the building",3;
- msg "with the right mousebutton!",3;
- }
- }
- else {
- play "build.wav";
- process "Building $howmanymsecleft",1000;
- timer "self",1000;
- }
- }
- }
-
-
-
- on:timer {
-
- if($cancelbuild==0) {
- if($howmanymsecleft<=0) {
- msg "Finish building With right click";
- }
- elseif ($howmanymsecleft<=1000) {
- timer "self",$howmanymsecleft;
- play "build.wav";
- process "building",$howmanymsecleft;
- $howmanymsecleft=0;
- }
- else {
- $howmanymsecleft-=1000;
- play "build.wav";
- process "Building $howmanymsecleft",1000;
- timer "self",1000;
- }
- }
- else {
- msg "Build interrupted!";
- }
- }
- script=end
-
This does not build any faster, but with a lot less clicking! :hooray:
edit: added sound effects
-
O.K. da meine Englisch Kenntnisse nicht gerade hervorragend sind, was genau steht im 2. Beitrag }:?
-
Das war meine "mit ein hammer hit bauen"-script. Du musst ein scriptkey definieren (fur "cancelbuild"). Wenn du das baustellen mit hammer schlagst, ein timer loop lauft. Das loop lauft, bis der bauen komplett ist oder mit der "cancelbuild"-tasten interruptet.
In "game.inf", replace
(oder der erste freie tasten) mit
nach on:keyrelease11, paste
- on:fk_hit02 {
- $cancelbuild=1;
- }
-
du musst der tasten ins optioner->steuerung(2) konfigueren!
Das lange script war fuer objects_buildings.inf, neue version fuer der script teilen da oben ^ fur IDs 150 und 151.
I hope you can guess what I said :)
-
O.K. da meine Englisch Kenntnisse nicht gerade hervorragend sind, was genau steht im 2. Beitrag }:?
Na komm, so schwer war das ja jetzt nicht...
Wir heißen hier ja nicht alle Oettinger
-
Der Erste lange funzt, bei dem mit den Cancelbuild Kommt eine Meldung
Error!
Invalid Object ID for BUILDING (0)
Keine Ahnung woher!!
MfG
chosun
-
Ersetzt, mit dem oberen geht's aber wenn ich bei ID 150 + 151 den skript von
von...bis
Teil estetze und stranded starte, dann kommt die Fehlermeldung
-
Ersetzt, mit dem oberen geht's aber wenn ich bei ID 150 + 151 den skript von
von...bis
Teil estetze und stranded starte, dann kommt die Fehlermeldung
Restore the "objects_buildings.inf" from the backup, and see if it works. Maybe something went wrong during the copy-paste?
Funktionert es mit der original objects_buildings.inf?
-
Hi, und danke für die Idee und Umsetzung timooh,
Es funktioniert eigentlich gut, - nur wenn man z.B. mehr Baustämme
als nötig sind ins Bauinventar lagert, sind sie nach dem Bauen wech...
Irgendwie fehlt mir aber doch der Baueffekt mit den Hammerschlägen -
ich würde eine Version bevorzugen, in der wie gewohnt gebaut wird,
in der aber die Maustaste dauernd gedrückt wird, also nicht dauernd
einzeln geklickt werden muss.. (..eben wie z.B. beim Baumfällen..)
In der Bedienung finde ich Stranded wie es jetzt ist einfach und genial.. 8)
.. bis eben auf das lästige "dutzende-male-Geklicke" :x .. - mlg Aljna
-
Fänd ich auch besser, wenn man wenigsens etwa 5-mal hauen muss.
Man könnte es ja mit % machen... 1 Hammerschlag 5 %
-
Das Problem ist, dass es unrealistisch ist, wenn man einen Stuhl so schnell baut wie ein Haus.
-
Du sprichst mir aus mir aus der Seele
-
:ghost:
Es gibt einen gewissen Grad bis zu welchem die Posts als sinnvoll gewertet werden. Du hast die Grenze weit überschritten.
Keine Ein-Wort Post, das gilt auch für Smilies.
~Quester~
-
Fänd ich auch besser, wenn man wenigsens etwa 5-mal hauen muss.
Man könnte es ja mit % machen... 1 Hammerschlag 5 %
Aber 5% ist 20 hammerschlag? :) Oder 20% mit 5 hammerschlag? Du kannst das mit der erste script machen. Aber baustelle mit 200 teile= 40teile per hammer hit= 20seconds per hit. 20 seconds of immobility?
I edited the second script, it now has sound effects. If you want sound effects, add 'play "build.wav";' inside the on:timer and on:hit sections. Before or after "process" is fine.
I've been trying to trigger the "right-click-build"-event directly. event "attack2","global" does not seem to work, though both the hammer and buildsite do get the event. It just does not trigger the building part. And I've not found "mouse2_down"-events either. I'm trying to look at the sourcecode to find out if thats possible.
As for the build times, using my script the building takes as long as it would take by clicking, so it's not very realistic. Different build times might be possible if I knew what building the site was set up for.
-
eipkbq