s2ext

Programme & Projekte => Stranded 2 Extension Mod => Thema gestartet von: Anonymous am März 03, 2010, 19:46:34 Nachmittag

Titel: Schneller Bauen
Beitrag 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??
Titel: Re: Schneller Bauen
Beitrag von: Aljna am März 03, 2010, 20:25:40 Nachmittag
..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
Titel: Re: Schneller Bauen
Beitrag von: GerriKo am März 04, 2010, 12:44:26 Nachmittag
man könnte auch einfach einstellen dass jeder Klick zählt. Jetzt geht es ja nur in einer bestimmten Frequenz.
Titel: Re: Schneller Bauen
Beitrag von: Feuer der veränderung am März 04, 2010, 14:17:53 Nachmittag
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
Titel: Re: Schneller Bauen
Beitrag von: finman am März 04, 2010, 14:54:09 Nachmittag
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.
Titel: Re: Schneller Bauen
Beitrag von: timooh am März 04, 2010, 16:28:31 Nachmittag
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:
Code: (text) [Auswählen]
  1. #!NEXT
  2. ##################
  3. # BID:  1    
  4. # GID:  0    
  5. # File: objects_buildings
  6. ##################
  7. id=150
  8. name=Baustelle
  9. icon=gfxbuildplace.bmp
  10. group=building,std
  11. model=gfxbuildplace.b3d
  12. behaviour=buildingsite
  13. col=2
  14. health=100
  15. mat=wood
  16. maxweight=1000000000
  17. var=building,Gebäude ID,0,0
  18. script=start
  19.     local $hasbeenhit,$howmanymsecleft;
  20.     on:start { if (count("object",500)>0) { skip; }
  21.         if ($building>0) {
  22.             addstate "self",52;
  23.             statesize "self",52,$building;
  24.         }
  25.     }
  26.  
  27.     on:use {
  28.           exchange "self";
  29.         }
  30.  
  31.     on:hit {
  32.         if (getplayerweapon()==30){
  33.             //msg "Klicke mit der rechten Maustaste,",3;
  34.             //msg "um hier zu bauen!",3;
  35.             if($hasbeenhit==0) {
  36.                 $hasbeenhit=1;
  37.                 $buildhit=impact_id();
  38.                 //msg $buildhit;
  39.                 $buildparts= count_stored("object", $buildhit);
  40.                 
  41.                 if($buildparts==0) {
  42.                     $hasbeenhit=0;               
  43.                 }
  44.                 // 30s/50items=0.6s/item   
  45.                 $howmanymsecleft=$buildparts*600;               
  46.             }
  47.                        if($howmanymsecleft<=0) {
  48.                 if($hasbeenhit==0) {
  49.                     msg "Put the raw materials in first!";
  50.                 }
  51.                 else {
  52.                     msg "Finish the building",3;
  53.                     msg "with the right mousebutton!",3;
  54.                 }
  55.             }          
  56.             elseif ($howmanymsecleft<=5000) {
  57.                 process "building",$howmanymsecleft;
  58.                 $howmanymsecleft=0; 
  59.             }
  60.             else    {
  61.                 $howmanymsecleft-=5000;
  62.                 process "building $howmanymsecleft",5000;
  63.             }
  64.         }
  65.     }
  66. script=end
  67.  


Edited: typos
Titel: Re: Schneller Bauen
Beitrag von: Anonymous am März 04, 2010, 17:59:56 Nachmittag
klappt super!!!! danke!!

mfg

chosun
Titel: Re: Schneller Bauen
Beitrag von: timooh am März 04, 2010, 20:56:06 Nachmittag
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
Code: (text) [Auswählen]
  1. scriptkey=0,Steigen
  2. scriptkey=1,Sinken
  3. scriptkey=2,Sprinten
  4. scriptkey=3,Spezialtaste 1
  5.  
In my case, the first free key was scriptkey 4, yours might be different.
Code: (text) [Auswählen]
  1. scriptkey=4,Freie Taste
replace "Freie Taste" with:
Code: (text) [Auswählen]
  1. scriptkey=4,Cancelbuild
  2.  
Now, hitting key 4 launches fk_hit02 (nothing to edit here, just see which number the event gets)
Code: (text) [Auswählen]
  1. on:keyhit04 { event "fk_hit02","global"; }
  2.  
So, I declare fk_hit02 (paste after the on:keyrelease11)
Code: (text) [Auswählen]
  1. on:fk_hit02 {
  2.     $cancelbuild=1;
  3. }
  4.  
 
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.
Code: (text) [Auswählen]
  1. script=start
  2.     local $hasbeenhit,$howmanymsecleft;
  3.     on:start { if (count("object",500)>0) { skip; }
  4.         if ($building>0) {
  5.             addstate "self",52;
  6.             statesize "self",52,$building;
  7.         }
  8.     }
  9.  
  10.     on:use {
  11.           exchange "self";
  12.         }
  13.  
  14. on:hit {
  15.         if (getplayerweapon()==30){
  16.             //msg "Klicke mit der rechten Maustaste,",3;
  17.             //msg "um hier zu bauen!",3;
  18.             $cancelbuild=0;
  19.             if($hasbeenhit==0) {
  20.                 $hasbeenhit=1;
  21.                 $buildhit=impact_id();           
  22.                 $buildparts= count_stored("object", $buildhit);            
  23.                 if($buildparts==0) {
  24.                     $hasbeenhit=0;
  25.                 }
  26.                 // 30s/50items=0.6s/item   
  27.                 $howmanymsecleft=$buildparts*600;               
  28.             }  
  29.             if($howmanymsecleft<=0) {
  30.                 if($hasbeenhit==0) {                   
  31.                     msg "Put the raw materials in first!";
  32.                 }
  33.                 else {
  34.                     msg "Finish the building",3;
  35.                     msg "with the right mousebutton!",3;
  36.                 }
  37.             }
  38.             else {
  39.                 play "build.wav";
  40.                 process "Building $howmanymsecleft",1000;
  41.                 timer "self",1000;
  42.             }
  43.         }
  44.     }
  45.  
  46.  
  47.  
  48. on:timer {
  49.        
  50.         if($cancelbuild==0) {
  51.             if($howmanymsecleft<=0) {
  52.                 msg "Finish building With right click";            
  53.             }
  54.             elseif ($howmanymsecleft<=1000) {
  55.                  timer "self",$howmanymsecleft;
  56.                  play "build.wav";
  57.                  process "building",$howmanymsecleft;
  58.                  $howmanymsecleft=0;
  59.             }
  60.             else {
  61.                 $howmanymsecleft-=1000;
  62.                 play "build.wav";
  63.                 process "Building $howmanymsecleft",1000;
  64.                 timer "self",1000;
  65.             }
  66.         }
  67.         else {
  68.             msg "Build interrupted!";
  69.         }
  70.     }
  71. script=end
  72.  


This does not build any faster, but with a lot less clicking!  :hooray:



edit: added sound effects
Titel: Re: Schneller Bauen
Beitrag von: Anonymous am März 05, 2010, 13:39:21 Nachmittag
O.K. da meine Englisch Kenntnisse nicht gerade hervorragend sind, was genau steht im 2. Beitrag }:?
Titel: Re: Schneller Bauen
Beitrag von: timooh am März 05, 2010, 16:08:56 Nachmittag
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
Code: (text) [Auswählen]
  1. scriptkey=4,Freie Taste
  2.  
(oder der erste freie tasten) mit
Code: (text) [Auswählen]
  1. scriptkey=4,Cancelbuild
  2.  
nach on:keyrelease11, paste
Code: (text) [Auswählen]
  1. on:fk_hit02 {
  2.      $cancelbuild=1;
  3.  }
  4.  
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 :)
Titel: Re: Schneller Bauen
Beitrag von: GerriKo am März 05, 2010, 17:50:31 Nachmittag
Zitat von: "chosun"
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
Titel: Re: Schneller Bauen
Beitrag von: Anonymous am März 05, 2010, 21:40:30 Nachmittag
Der Erste lange funzt, bei dem mit den Cancelbuild Kommt eine Meldung

Zitat
Error!

Invalid Object ID for BUILDING (0)

Keine Ahnung woher!!

MfG

chosun
Titel: Re: Schneller Bauen
Beitrag von: Anonymous am März 06, 2010, 17:34:59 Nachmittag
Ersetzt, mit dem oberen geht's aber wenn ich bei ID 150 + 151 den skript von
von...bis
Code: (text) [Auswählen]
  1. script start
  2.  
  3. script end
Teil estetze und stranded starte, dann kommt die Fehlermeldung
Titel: Re: Schneller Bauen
Beitrag von: timooh am März 08, 2010, 10:47:36 Vormittag
Zitat von: "chosun"
Ersetzt, mit dem oberen geht's aber wenn ich bei ID 150 + 151 den skript von
von...bis
Code: (text) [Auswählen]
  1. script start
  2.  
  3. script end
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?
Titel: Re: Schneller Bauen
Beitrag von: Aljna am März 09, 2010, 20:50:44 Nachmittag
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
Titel: Re: Schneller Bauen
Beitrag von: chosun am März 10, 2010, 13:30:49 Nachmittag
Fänd ich auch besser, wenn man wenigsens etwa 5-mal hauen muss.
Man könnte es ja mit % machen... 1 Hammerschlag 5 %
Titel: Re: Schneller Bauen
Beitrag von: MrMatthew am März 10, 2010, 15:08:47 Nachmittag
Das Problem ist, dass es unrealistisch ist, wenn man einen Stuhl so schnell baut wie ein Haus.
Titel: Re: Schneller Bauen
Beitrag von: Feuer der veränderung am März 10, 2010, 15:35:58 Nachmittag
Du sprichst mir aus mir aus der Seele
Titel: Re: Schneller Bauen
Beitrag von: Wolfusmax am März 13, 2010, 23:26:22 Nachmittag
: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~
Titel: Re: Schneller Bauen
Beitrag von: timooh am März 15, 2010, 19:09:56 Nachmittag
Zitat
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.
Titel: lnwrdifh
Beitrag von: Anonymous am Oktober 18, 2012, 17:43:16 Nachmittag
eipkbq