s2ext

Bitte logg dich ein oder registriere dich.

Einloggen mit Benutzername, Passwort und Sitzungslänge
Erweiterte Suche  

Neuigkeiten:

Fehler und Spammer oder Probleme beim Login hier melden.

Autor Thema: DISKUSSION: Modifikation von Standardobjekten aus S2Ext  (Gelesen 76629 mal)

Quester

  • Newbie
  • *
  • Beiträge: 505
Re: DISKUSSION: Modifikation von Standardobjekten aus S2Ext
« Antwort #165 am: November 13, 2010, 20:10:08 Nachmittag »

Ein Thread ist ein Thema. Du kannst ein neues Thema erstellen, indem du in ein Forum gehst, un den Button "NeuesThema" unten links drückst.
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Dunkler Lord

  • Newbie
  • *
  • Beiträge: 23
Re: DISKUSSION: Modifikation von Standardobjekten aus S2Ext
« Antwort #166 am: November 13, 2010, 20:10:37 Nachmittag »

wollt fragen ob man auch größere maps im editor machen kann, ich mein größer als 256x256
hoffe auf schnelle antwort
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Blue-Sky

  • Newbie
  • *
  • Beiträge: 36
Re: DISKUSSION: Modifikation von Standardobjekten aus S2Ext
« Antwort #167 am: November 22, 2010, 17:06:45 Nachmittag »

Geht nicht. :no:
Wenn dir die Insel nicht groß genug ist arbeite mit loadmap
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
RE: DISKUSSION: Modifikation von Standardobjekten aus S2Ext
« Antwort #168 am: Juli 24, 2011, 13:36:46 Nachmittag »

Nachdem die Änderung der Mine offenbar eingeschlafen ist habe ich das Script mal etwas angepasst:
-Es sind nun ab einem Minenskill von 75 (oder wäre 100 besser?) über eimn Msgboxmenü eine Beleuchtung und ein Affengehege baubar (Sichtbar ist jedoch keine der Erweiterungen)
-Die Beleuchtung benötigt 5 Leuchtkristalle/Tag und versieht dem Spieler beim Betreten mit einem Lichtstate (und nimmt diesen beim verlassen wieder->dadurch wird leider jeder Lichteffekt gekillt->hat irgendwer eine Idee, wie ich überprüfen kann, woher das Licht kommt, damit ich nur den Lichtstate der Minenbeleuchtung wegnehmen kann?) und erhöht die Effektivität der Affen
-In das Affengehege können max 5 Affen "eingelagert" werden, die pro Tag jeweils eine Banane verbrauchen und dafür 2 (mit Licht 5) Mineralien/Tag liefern
-Die Mineralien können aus dem Lager entnommen werden

Code: (text) [Auswählen]
  1. ######1210 - Höhlensystem (Mine)
  2. id=1210
  3. name=Höhlensystem (Mine)
  4. group=stuff,ext,mining_system
  5. icon=gfxmining_systemiconsicon_mine.bmp
  6. model=gfxmining_systemmine.b3d
  7. health=10000
  8. mat=stone
  9. description=start
  10. Nur für Zufallsmaps, nicht in eigen Höhlensystemen benutzen! 
  11. description=end
  12. script=start
  13.  
  14. on:build_finish {
  15.     local $lightextension;
  16.     local $monkeyextension;
  17.     local $playerinmine;
  18. }
  19.  
  20. on:changeday {
  21.     if ($lightextension>=2) {
  22.         event "istherelight";
  23.     }
  24.     if ($monkeyextension>=2) {
  25.         event "changebananas";
  26.     }
  27. }
  28.  
  29. on:changebananas {
  30.     local $mineralcount;
  31.     local $lightfactor;
  32.     local $foundmineraltype;
  33.     if ($lightextension<3) {
  34.         $lightfactor=2;
  35.     }
  36.     else {
  37.         $lightfactor=5;
  38.     }
  39.     if ($bananas>=$monkeys) {
  40.         $bananas=$bananas-$monkeys;
  41.         $mineralcount=$lightfactor*$monkeys;
  42.     }
  43.     else {
  44.         $mineralcount=$lightfactor*$bananas;
  45.         $bananas=0;
  46.     }
  47.     loop ("count",$mineralcount) {
  48.         event "monkeyaddminerals";
  49.     }
  50.    
  51. }
  52.  
  53. on:monkeyaddminerals {
  54.     $mineraltype=random(1,7);
  55.    
  56.     if ($mineraltype==1) { $iron++; }
  57.     elseif ($mineraltype==2) { $copper++; }
  58.     elseif ($mineraltype==3) { $ironore++; }
  59.     elseif ($mineraltype==4) { $gold++; }
  60.     elseif ($mineraltype==5) { $crystall++; }
  61.     elseif ($mineraltype==6) { $coal++; }
  62.     elseif ($mineraltype==7) { $stone++; }
  63.    
  64.     if ($iron>$warehousemax) { $iron=$warehousemax; }
  65.     if ($copper>$warehousemax) { $copper=$warehousemax; }
  66.     if ($ironore>$warehousemax) { $ironore=$warehousemax; }
  67.     if ($gold>$warehousemax) { $gold=$warehousemax; }
  68.     if ($crystall>$warehousemax) { $crystall=$warehousemax; }
  69.     if ($coal>$warehousemax) { $coal=$warehousemax; }
  70.     if ($stone>$warehousemax) { $stone=$warehousemax; }
  71. }
  72.  
  73. on:istherelight {
  74.     if ($glowingcrystalls>=5) {
  75.         $glowingcrystalls=$glowingcrystalls-5;
  76.         $lightextension=3;
  77.         skip;
  78.     }
  79.     $lightextension=2;
  80.     if ($playerinmine=1) {
  81.         freestate "unit",1,"light";
  82.         msg "Ohje, es waren wohl nicht",3;
  83.         msg "mehr genug Leuchtkristalle",3;
  84.         msg "im Lager.",3;
  85.     }
  86. }
  87.  
  88. on:use {
  89.     local $thismine;
  90.     $thismine=currentid();
  91.     clear;
  92.     add "Dies ist eine Mine.";
  93.     add " ";
  94.     add "Ich kann sie betreten um Mineralien abzubauen oder";
  95.     add "sie erweitern um mir das Leben zu erleichtern.";
  96.     add " ";
  97.     add "Was soll ich tun?";
  98.     add " ";
  99.     msgbox "Mine";
  100.     clear;
  101.     button 0,"Mine betreten",12,"event entermine,object,$thismine;";
  102.     button 1,"nützliches Zeug bauen/verwalten",12,"event extendmine,object,$thismine;";
  103.     button 2,"Ich habs mir anders überlegt.",12,"closemenu;";
  104.    
  105. }
  106.  
  107. on:extendmine {
  108.     closemenu;
  109.     clear;
  110.     add "Ich kann noch folgende Erweiterungen bauen:";
  111.     add " ";
  112.     if (skillvalue("mining")<75) {
  113.         add "Ich bin noch nicht gut genug, um die Mine auszubauen.";
  114.         add "Ich sollte erst einmal etwas mehr Zeit in der Mine verbringen.";
  115.         msgbox "Nützliches Zeug bauen/verwalten";
  116.         button 5,"Ich habs mir anders überlegt.",12,"closemenu;";
  117.         skip;
  118.     }
  119.     if (($lightextension>=2) and ($monkeyextension>=2)) {
  120.         add "Ich habe bereits alle möglichen Erweiterungen gebaut.";
  121.     }
  122.     if ($lightextension<2) {
  123.         add "- Beleuchtung um nicht mehr ständig diese Dunkelheit ertragen zu müssen";
  124.         add " ";
  125.     }
  126.     if ($monkeyextension<2) {
  127.         add "- Affengehege um gezähmte Affen die schwere ";
  128.         add "  Bergwerksarbeit für mich erledigen zu lassen.";
  129.         add " ";
  130.     }
  131.     add " ";
  132.     add "Ich kann folgende Erweiterungen verwalten:";
  133.     add " ";
  134.     if ($lightextension>=2) {
  135.         add "- die Beleuchtung um dafür zu sorgen, dass immer genug Leuchtkristalle eingelagert sind";
  136.         add " ";
  137.     }
  138.     if ($monkeyextension>=2) {
  139.         add "- das Affengehege um dafür zu sorgen, dass immer genug Futter eingelagert ist";
  140.         add " ";
  141.         add "- das Lager, um daraus die Mineralien zu entnehmen";
  142.         add " ";
  143.     }
  144.     msgbox "Nützliches Zeug bauen/verwalten";
  145.    
  146.     clear;
  147.     if ($lightextension<2) {
  148.         button 0,"Beleuchtung bauen",12,"event buildlight,object,$thismine;";
  149.     }
  150.     elseif ($lightextension>=2) {
  151.         button 0,"Beleuchtung verwalten",12,"event administratelight,object,$thismine;";
  152.     }
  153.     if ($monkeyextension<2) {
  154.         button 1,"Affengehege bauen",12,"event buildmonkey,object,$thismine;";
  155.     }
  156.     elseif ($monkeyextension>=2){
  157.         button 1,"Affengehege verwalten",12,"event administratemonkey,object,$thismine;";
  158.         button 2,"Lager verwalten",12,"event administratewarehouse,object,$thismine;";
  159.     }
  160.     button 5,"Ich habs mir anders überlegt.",12,"closemenu;";
  161. }
  162.  
  163. on:administratewarehouse {
  164.     closemenu;
  165.     clear;
  166.     add "Hierher bringen die Affen die abgebauten Mineralien.";
  167.     add " ";
  168.     add "Im Lager befinden sich derzeit:";
  169.     add "$iron von $warehousemax Eisen";
  170.     add "$ironore von $warehousemax Eisenerz";
  171.     add "$copper von $warehousemax Kupfer";
  172.     add "$crystall von $warehousemax Kristalle";
  173.     add "$gold von $warehousemax Gold";
  174.     add "$coal von $warehousemax Kohle";
  175.     add "$stone von $warehousemax Steine (Steine?! Was soll ich denn damit anfangen? Sind die Affen jetzt völlig verrückt?)";
  176.     add " ";
  177.     add "Im Lager können von jedem Mineral maximal $warehousemax Einheiten gelagert werden. Alles was die Affen zusätzlich anschleppen verfällt! Somit kann es vorkommen, dass weniger Einheiten am Tag hinzugefügt werden, als maximal möglich. Die Bananen werden aber trotzdem verbraucht.";
  178.     add " ";
  179.     add "Was soll ich denn entnehmen?";
  180.     msgbox "Lager";
  181.     button 0,"Eisen entnehmen",12,"event administratewarehouseremoveiron,object,$thismine;";
  182.     button 1,"Eisenerz entnehmen",12,"event administratewarehouseremoveironore,object,$thismine;";
  183.     button 2,"Kupfer entnehmen",12,"event administratewarehouseremovecopper,object,$thismine;";
  184.     button 3,"Kristall entnehmen",12,"event administratewarehouseremovecrystall,object,$thismine;";
  185.     button 4,"Gold entnehmen",12,"event administratewarehouseremovegold,object,$thismine;";
  186.     button 5,"Kohle entnehmen",12,"event administratewarehouseremovecoal,object,$thismine;";
  187.     button 6,"Stein entnehmen",12,"event administratewarehouseremovestone,object,$thismine;";
  188.     button 7,"Ich habs mir anders überlegt",12,"event extendmine,object,$thismine;";
  189. }
  190.  
  191. on:administratewarehouseremoveiron {
  192.     if (storage("unit",1,0)<350) { skip; }
  193.     if ($iron<1) { skip; }
  194.     $iron--;
  195.     find 85,1;
  196.     event "administratewarehouse";
  197. }
  198.  
  199. on:administratewarehouseremoveironore {
  200.     if (storage("unit",1,0)<500) { skip; }
  201.     if ($ironore<1) { skip; }
  202.     $ironore--;
  203.     find 782,1;
  204.     event "administratewarehouse";
  205. }
  206.  
  207. on:administratewarehouseremovecopper {
  208.     if (storage("unit",1,0)<250) { skip; }
  209.     if ($copper<1) { skip; }
  210.     $copper--;
  211.     find 768,1;
  212.     event "administratewarehouse";
  213. }
  214.  
  215. on:administratewarehouseremovecrystall{
  216.     if (storage("unit",1,0)<500) { skip; }
  217.     if ($crystall<1) { skip; }
  218.     $crystall--;
  219.     find 3,1;
  220.     event "administratewarehouse";
  221. }
  222.  
  223. on:administratewarehouseremovegold {
  224.     if (storage("unit",1,0)<350) { skip; }
  225.     if ($gold<1) { skip; }
  226.     $gold--;
  227.     find 4,1;
  228.     event "administratewarehouse";
  229. }
  230.  
  231. on:administratewarehouseremovecoal {
  232.     if (storage("unit",1,0)<400) { skip; }
  233.     if ($coal<1) { skip; }
  234.     $coal--;
  235.     find 900,1;
  236.     event "administratewarehouse";
  237. }
  238.  
  239. on:administratewarehouseremovestone {
  240.     if (storage("unit",1,0)<1500) { skip; }
  241.     if ($stone<1) { skip; }
  242.     $stone--;
  243.     find 23,1;
  244.     event "administratewarehouse";
  245. }
  246.  
  247. on:administratelight {
  248.     if ($lightextension==2) {
  249.         event "istherelight";
  250.     }
  251.     closemenu;
  252.     clear;
  253.     add "Hier kann ich Leuchtkristalle für meine Minenbeleuchtung hinzufügen.";
  254.     add "Pro Tag benötigt die Beleuchtung 5 Leuchtkristalle";
  255.     add "Die Minenbeleuchtung bewirkt, dass ich endlich etwas mehr sehe.";
  256.     add "Außerdem arbeiten die Affen besser, wenn die Mine beleuchtet ist.";
  257.     add " ";
  258.     add "Eingelagerte Leuchtkristalle können nicht mehr entnommen werden!";
  259.     add " ";
  260.     add "Derzeit sind $glowingcrystalls von maximal 100 Leuchtkristallen eingelagert.";
  261.     add " ";
  262.     add "Was soll ich tun?";
  263.     msgbox "Beleuchtung verwalten";
  264.     button 0,"Einen Leuchtkristall hinzufügen",12,"event administratelightaddcrystall1,object,$thismine;";
  265.     button 1,"Fünf Leuchtkristalle hinzufügen",12,"event administratelightaddcrystall5,object,$thismine;";
  266.     button 2,"Ich habs mir anders überlegt",12,"event extendmine,object,$thismine;";
  267. }
  268.  
  269. on:administratelightaddcrystall1 {
  270.     if (count_stored("unit",1,979)==0) {
  271.         speech negative;
  272.         msg "Ich trage keine Leuchtkristalle mit mir.",3;
  273.         skip;
  274.     }
  275.     if ($glowingcrystalls<100) {
  276.         $glowingcrystalls++;
  277.         freestored "unit",1,979,1;
  278.         event "administratelight";
  279.         skip;
  280.     }
  281.     speech negative;
  282.     msg "Ich kann keine zusätzlichen Leuchtkristalle mehr einlagern.",3;
  283. }
  284.  
  285. on:administratelightaddcrystall5 {
  286.     if (count_stored("unit",1,979)<5) {
  287.         speech negative;
  288.         msg "Ich trage nicht genügend Leuchtkristalle mit mir.",3;
  289.         skip;
  290.     }
  291.     if ($glowingcrystalls<96) {
  292.         $glowingcrystalls=$glowingcrystalls+5;
  293.         freestored "unit",1,979,5;
  294.         event "administratelight";
  295.         skip;
  296.     }
  297.     speech negative;
  298.     msg "Ich kann keine zusätzlichen Leuchtkristalle mehr einlagern.",3;
  299. }
  300.  
  301. on:buildlight {
  302.     closemenu;
  303.     if ($lightextension==0) {
  304.         $lightextension=1;
  305.         local $lightbranches;
  306.         local $lightcrystalls;
  307.         local $lightiron;
  308.     }
  309.     if (($lightbranches==100) and (($lightcrystalls==100) and ($lightiron==20))) {
  310.         $lightextension=2;
  311.         local $glowingcrystalls;
  312.         clear;
  313.         add "Beleuchtung feriggestellt.";
  314.         add "Der Betrieb der Beleuchtung kostet mich 5 Leuchtkristalle am Tag.";
  315.         add "Unter dem Menüpunkt Beleuchtung verwalten kann ich Leuchtkristalle hinzufügen.";
  316.         msgbox "Beleuchtung";
  317.         button 0, "Zurück",12,"event extendmine,object,$thismine;";
  318.     }
  319.     if ($lightextension==1) {
  320.         clear;
  321.         add "Ich habe bereits folgende Materialien verbaut:";
  322.         add "- $lightbranches von 100 Ästen";
  323.         add "- $lightcrystalls von 100 Leuchtkristallen";
  324.         add "- $lightiron von 20 Eisen";
  325.         add " ";
  326.         add "Was soll ich nun hinzufügen?";
  327.         msgbox "Beleuchtung bauen";
  328.         button 0,"Ast hinzufügen",12,"event lightaddbranch,object,$thismine;";
  329.         button 1,"Leuchtkristall hinzufügen",12,"event lightaddcrystall,object,$thismine;";
  330.         button 2,"Eisen hinzufügen",12,"event lightaddiron,object,$thismine;";
  331.         button 3,"Ich habs mir anders überlegt",12,"event extendmine,object,$thismine;";
  332.     }
  333. }
  334.  
  335. on:lightaddbranch {
  336.     if (count_stored("unit",1,24)==0) {
  337.     speech negative;
  338.     msg "Ich trage keine Äste mit mir.",3;
  339.     skip;
  340.     }
  341.     if ($lightbranches<100) {
  342.     $lightbranches++;
  343.     freestored "unit",1,24,1;
  344.     event "buildlight";
  345.     skip;
  346.     }
  347.     msg "Ich brauche keine zusätzlichen Äste mehr.",3;
  348. }
  349.  
  350. on:lightaddcrystall {
  351.     if (count_stored("unit",1,979)==0) {
  352.     speech negative;
  353.     msg "Ich trage keine Leuchtkristalle mit mir.",3;
  354.     skip;
  355.     }
  356.     if ($lightcrystalls<100) {
  357.     $lightcrystalls++;
  358.     freestored "unit",1,979,1;
  359.     event "buildlight";
  360.     skip;
  361.     }
  362.     msg "Ich brauche keine zusätzlichen Leuchtkristalle mehr.",3;
  363. }
  364.  
  365. on:lightaddiron {
  366.     if (count_stored("unit",1,85)==0) {
  367.     speech negative;
  368.     msg "Ich trage kein Eisen mit mir.",3;
  369.     skip;
  370.     }
  371.     if ($lightiron<20) {
  372.     $lightiron++;
  373.     freestored "unit",1,85,1;
  374.     event "buildlight";
  375.     skip;
  376.     }
  377.     msg "Ich brauche kein zusätzliches Eisen mehr.",3;
  378. }
  379.  
  380. on:administratemonkey {
  381.     if ($lightextension==2) {
  382.         event "istherelight";
  383.     }
  384.     closemenu;
  385.     clear;
  386.     add "Hier kann ich Trageaffen in die Mine schicken und sie mit Bananen versorgen.";
  387.     add "Jeder Affe verbraucht eine Banane pro Tag. Er wird mir dafür 2 zufällige Mineralien bringen. Wenn die Beleuchtung aktiv ist erhöht sich diese Anzahl auf 5.";
  388.     add " ";
  389.     add "Es sind derzeit $monkeys von 5 Affen in der Mine";
  390.     add "Es sind derzeit $bananas von 100 Bananen in der Mine";
  391.     add " ";
  392.     add "Was soll ich hinzufügen?";
  393.     add "Achtung: weder Affen, noch Bananen können wieder entnommen werden.";
  394.     msgbox "Affengehege verwalten";
  395.     button 0,"Einen Trageaffen versklaven",12,"event administratemonkeyaddmonkey,object,$thismine;";
  396.     button 1,"Eine Banane einlagern",12,"event administratemonkeyaddbanana1,object,$thismine;";
  397.     button 2,"Fünf Bananen einlagern",12,"event administratemonkeyaddbanana5,object,$thismine;";
  398.     button 3,"Ich habs mir anders überlegt",12,"event extendmine,object,$thismine;";
  399. }
  400.  
  401. on:administratemonkeyaddmonkey {
  402.     local $unitid;
  403.     if ($monkeys>=5) {
  404.         skip;
  405.     }
  406.     loop ("units",44) {
  407.         $unitid=loop_id();
  408.         if (count_inrange("unit",44,150)) {
  409.             free "unit",$unitid;
  410.             $monkeys++;
  411.             event "administratemonkey";
  412.             skip;
  413.         }
  414.     }
  415.     freevar $unitid;
  416. }
  417.  
  418. on:administratemonkeyaddbanana1 {
  419.     if (count_stored("unit",1,14)==0) {
  420.         speech negative;
  421.         msg "Ich trage keine Bananen mit mir.",3;
  422.         skip;
  423.     }
  424.     if ($bananas<100) {
  425.         $bananas++;
  426.         freestored "unit",1,14,1;
  427.         event "administratemonkey";
  428.         skip;
  429.     }
  430.     speech negative;
  431.     msg "Ich kann keine zusätzlichen Bananen mehr einlagern.",3;
  432. }
  433.  
  434. on:administratemonkeyaddbanana5 {
  435.     if (count_stored("unit",1,14)<5) {
  436.         speech negative;
  437.         msg "Ich trage nicht genügend Bananen mit mir.",3;
  438.         skip;
  439.     }
  440.     if ($bananas<96) {
  441.         $bananas=$bananas+5;
  442.         freestored "unit",1,14,5;
  443.         event "administratemonkey";
  444.         skip;
  445.     }
  446.     speech negative;
  447.     msg "Ich kann keine zusätzlichen Bananen mehr einlagern.",3;
  448. }
  449.  
  450. on:buildmonkey {
  451.     closemenu;
  452.     if ($monkeyextension==0) {
  453.         $monkeyextension=1;
  454.         local $monkeybranches;
  455.         local $monkeyiron;
  456.     }
  457.     if (($monkeybranches==100) and ($monkeyiron==50)) {
  458.         $monkeyextension=2;
  459.         local $monkeys;
  460.         local $bananas;
  461.         local $iron;
  462.         local $copper;
  463.         local $crystall;
  464.         local $ironore;
  465.         local $gold;
  466.         local $coal;
  467.         local $stone;
  468.         local $warehousemax;
  469.         $warehousemax=25;
  470.         clear;
  471.         add "Affengehege fertiggestellt";
  472.         add "Ich kann jetzt Trageaffen in die Mine schicken, damit diese für mich arbeiten und mir Rohstoffe liefern.";
  473.         add "Die Affen werden jedoch nur arbeiten, wenn sie Bananen bekommen.";
  474.         add "Unter dem Menüpunkt Affengehege verwalten kann ich Futter hinzufügen.";
  475.         msgbox "Affengehege";
  476.         button 0, "Zurück",12,"event extendmine,object,$thismine;";
  477.     }
  478.     if ($monkeyextension==1) {
  479.         clear;
  480.         add "Ich habe bereits folgende Materialien verbaut:";
  481.         add "- $monkeybranches von 100 Ästen";
  482.         add "- $monkeyiron von 50 Eisenstangen";
  483.         add " ";
  484.         add "Was soll ich nun hinzufügen?";
  485.         msgbox "Affengehege bauen";
  486.         button 0,"Ast hinzufügen",12,"event monkeyaddbranch,object,$thismine;";
  487.         button 1,"Eisenstange hinzufügen",12,"event monkeyaddiron,object,$thismine;";
  488.         button 2,"Ich habs mir anders überlegt",12,"event extendmine,object,$thismine;";
  489.     }
  490. }
  491.  
  492. on:monkeyaddiron {
  493.     if (count_stored("unit",1,86)==0) {
  494.     speech negative;
  495.     msg "Ich trage keine Eisenstangen mit mir.",3;
  496.     skip;
  497.     }
  498.     if ($monkeyiron<50) {
  499.     $monkeyiron++;
  500.     freestored "unit",1,86,1;
  501.     event "buildmonkey";
  502.     skip;
  503.     }
  504.     msg "Ich brauche keine zusätzlichen Eisenstangen mehr.",3;
  505. }
  506.  
  507. on:monkeyaddbranch{
  508.     if (count_stored("unit",1,24)==0) {
  509.     speech negative;
  510.     msg "Ich trage keinen Ast mit mir.",3;
  511.     skip;
  512.     }
  513.     if ($monkeybranches<100) {
  514.     $monkeybranches++;
  515.     freestored "unit",1,24,1;
  516.     event "buildmonkey";
  517.     skip;
  518.     }
  519.     msg "Ich brauche keinen zusätzlichen Ast mehr.",3;
  520. }
  521.  
  522. on:start {
  523.     if (count("object",500)>0) { skip; }
  524.     $inMine = 0;
  525. }
  526.  
  527. on:entermine {
  528.     closemenu;
  529.     $playerinmine=1;
  530.     if ($lightextension==3) {
  531.         addstate "unit",1,"light";
  532.         statesize "unit",1,"light",1000;
  533.     }
  534.     local $Cy,$Cx,$Cz,$ledder,$itemstring,$amount,$etap,$yaw,$square,$square2,$owallsquare,$mineral,$mineral_chance,$ground,$ledderpos;
  535.     local $mine_playerposx,$mine_playerposy,$mine_playerposz,$mine_playeryaw,$mine_playerpitch,$mine_hour,$mine_day,$skilletap;
  536.     local $outweather;
  537.     $itemstring="4.768.782";
  538.     $Cy=1000;
  539.     $ledder=0; 
  540.     $square=10;
  541.     if (count_inrange("object",70,50,"self")) {
  542.         $minerial=980;
  543.     } elseif (count_inrange("object",71,50,"self")) {
  544.         $minerial=978;
  545.     } elseif (count_inrange("object",72,50,"self")) {
  546.         $minerial=993;
  547.     } elseif (count_inrange("object",774,50,"self")) {
  548.         $minerial=992;
  549.     } elseif (count_inrange("object",769,50,"self")) {
  550.         $minerial=979;
  551.     } else {
  552.         $minerial=981;
  553.     }
  554.    
  555.     $owallsquare=$square*60;
  556.     $square2=$square/2-2;
  557.     $ground=0;
  558.     $etap=0;
  559.     $mine_playerposx=getx("unit",1);
  560.     $mine_playerposy=gety("unit",1);
  561.     $mine_playerposz=getz("unit",1);
  562.     $mine_playeryaw=getyaw("unit",1);
  563.     $mine_playerpitch=getpitch("unit",1);
  564.     $inMine = currentid();
  565.     skycolor 1, 40,40,70;
  566.     msg "Bitte Warten...";
  567.     timer "self",200,1,"etap";
  568.     if (skillvalue("mining")>=100)    {$skilletap=10;$mineral_chance=40;}
  569.     elseif (skillvalue("mining")>=75) {$skilletap=8;$mineral_chance=60;}
  570.     elseif (skillvalue("mining")>=50) {$skilletap=6;$mineral_chance=80;}
  571.     elseif (skillvalue("mining")>=25) {$skilletap=4;$mineral_chance=100;}
  572.     else {$skilletap=2;$mineral_chance=120;}
  573.    
  574.        
  575. }
  576.  
  577. on:leave {
  578.     if ($lightextension==3) {
  579.         freestate "unit",1,"light";
  580.     }
  581.     loop ("objects",981) {
  582.         $id=loop_id();
  583.         free "object",$id;
  584.     }
  585.     loop ("objects",973) {
  586.         $id=loop_id();
  587.         free "object",$id;
  588.     }
  589.     loop ("objects",980) {
  590.         $id=loop_id();
  591.         free "object",$id;
  592.     }
  593.     loop ("objects",978) {
  594.         $id=loop_id();
  595.         free "object",$id;
  596.     }
  597.     loop ("objects",993) {
  598.         $id=loop_id();
  599.         free "object",$id;
  600.     }
  601.     loop ("objects",992) {
  602.         $id=loop_id();
  603.         free "object",$id;
  604.     }
  605.     loop ("objects",979) {
  606.         $id=loop_id();
  607.         free "object",$id;
  608.     }
  609.     loop ("objects",1098) {
  610.         $id=loop_id();
  611.         free "object",$id;
  612.     }
  613.     loop ("objects",1201) {
  614.         $id=loop_id();
  615.         free "object",$id;
  616.     }
  617.     loop ("objects",1209) {
  618.         $id=loop_id();
  619.         free "object",$id;
  620.     }
  621.     loop ("objects",1211) {
  622.         $id=loop_id();
  623.         free "object",$id;
  624.     }
  625.     setpos "unit",1,$mine_playerposx,$mine_playerposy,$mine_playerposz;
  626.     setrot "unit",1,$mine_playerpitch,$mine_playeryaw,0;
  627.     ambientsfx "amb_jungle.mp3";
  628.     freetimers "self";
  629.     skycolor 0;
  630.     $inMine = 0;
  631.     weather $outweather;
  632.     freevar $Cy,$Cx,$Cz,$ledder,$itemstring,$amount,$etap,$yaw,$square,$square2,$owallsquare,$mineral,$ground,$ledderpos;
  633.     freevar $mine_playerposx,$mine_playerposy,$mine_playerposz,$mine_playeryaw,$mine_playerpitch,$mine_hour,$mine_day,$skilletap;
  634.     freevar $outweather;
  635. }
  636.  
  637. on:changeweather {
  638.     if ($inMine != currentid()) {
  639.         skip;
  640.     }
  641.     $outweather = getweather();
  642.     if ($outweather != 0) {
  643.         weather "sun";
  644.     }
  645. }
  646.  
  647.  
  648. on:player_set {
  649.     weather "sun";
  650.     ambientsfx "amb_wind.wav";
  651.     $ledder=0;
  652.     $Cy+=60;
  653.     $Cx=0;
  654.     $Cz=0;
  655.     setpos "unit",1,0,$Cy,0;
  656.     loop ("count",$square) {
  657.         event "ground";
  658.     }
  659.     find 978;
  660.     $id=getstored("unit",1,978);
  661.     $cur=currentid();
  662.     setlocal "item",$id,"tele_id",$cur;
  663.     echo "$cur";
  664.     freevar $id,$cur;
  665.     timer "self",60000,0,"skillup";
  666. }
  667.  
  668. on:skillup {
  669.     event "iskill_mining","global";
  670. }
  671.  
  672. on:etap {
  673.     $Cy+=60;
  674.     $etap++;
  675.     event "treasurestart";
  676.     $ground=0;
  677.     $ledderpos=random(1,25);
  678.     loop ("count",$square) {
  679.         event "ground";
  680.     }
  681.     event "wallstart1";
  682.     loop ("count",$square) {
  683.         event "wall1";
  684.     }
  685.     event "wallstart2";
  686.     loop ("count",$square) {
  687.         event "wall2";
  688.     }
  689.     event "owallstart1";
  690.     loop ("count",$square) {
  691.         event "owall1";
  692.     }
  693.     event "owallstart2";
  694.     loop ("count",$square) {
  695.         event "owall2";
  696.     }
  697.     if ($etap<$skilletap) {
  698.         event "etap";
  699.     } else {
  700.         event "player_set";
  701.     }
  702. }
  703.  
  704. on:treasurestart {
  705.     $Cx=0;
  706.     $Cz=0;
  707. }
  708.  
  709. on:owallstart2{
  710.     $yaw=-90;
  711.     $Cx=0;
  712.     $Cz=-30;
  713. }
  714.  
  715. on:owallstart1{
  716.     $yaw=0;
  717.     $ledder=1;     
  718.     $Cx=-30;
  719.     $Cz=0;
  720. }
  721.  
  722. on:wallstart2{
  723.     $yaw=-90;
  724.     $Cx=0;
  725.     $Cz=90;
  726. }
  727.  
  728. on:wallstart1{
  729.     $yaw=0;
  730.     $ledder=1;     
  731.     $Cx=90;
  732.     $Cz=0;
  733. }
  734.  
  735. on:owall1 {
  736.     $id=create("object",981);
  737.     setpos "object",$id,$Cx,$Cy,$Cz;
  738.     setrot "object",$id,0,$yaw,0;
  739.     $amount=random(-2,2);
  740.     rpos "object",$id,$amount,0,0;
  741.     $Cx+=$owallsquare;
  742.     $yaw+=180;
  743.     $id=create("object",981);
  744.     setpos "object",$id,$Cx,$Cy,$Cz;
  745.     setrot "object",$id,0,$yaw,0;
  746.     $amount=random(-2,2);
  747.     rpos "object",$id,$amount,0,0;
  748.     $yaw+=180;
  749.     $Cx=-30;
  750.     $Cz+=60;
  751. }
  752.  
  753. on:owall2 {
  754.     $id=create("object",981);
  755.     setpos "object",$id,$Cx,$Cy,$Cz;
  756.     setrot "object",$id,0,$yaw,0;
  757.     $amount=random(-2,2);
  758.     rpos "object",$id,$amount,0,0;
  759.     $yaw+=180;
  760.     $Cz+=$owallsquare;
  761.     $id=create("object",981);
  762.     setpos "object",$id,$Cx,$Cy,$Cz;
  763.     setrot "object",$id,0,$yaw,0;
  764.     $amount=random(-2,2);
  765.     rpos "object",$id,$amount,0,0;
  766.     $yaw+=180;
  767.     $Cz=-30;
  768.     $Cx+=60;
  769. }
  770.  
  771.  
  772. on:wall1{
  773.     loop ("count",$square2) {
  774.         $id=create("object",981);
  775.         setpos "object",$id,$Cx,$Cy,$Cz;
  776.         setrot "object",$id,0,$yaw,0;
  777.         $amount=random(-2,2);
  778.         rpos "object",$id,$amount,0,0;
  779.         if (random(1,5)<=2) {free "object",$id;}
  780.         elseif (random($mineral_chance)<=2) {free "object",$id;$id=create("object",$minerial);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  781.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",979);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  782.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",993);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  783.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",992);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  784.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",978);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  785.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",980);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  786.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",1211);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  787.         elseif (random(3)==1) {free "object",$id;$id=create("object",1209);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  788.         $yaw+=180;
  789.         $Cx+=120;
  790.     }
  791.     $Cx=90;
  792.     $Cz+=60;
  793.    
  794. }
  795.  
  796. on:wall2{
  797.     loop ("count",$square2) {
  798.         $id=create("object",981);
  799.         setpos "object",$id,$Cx,$Cy,$Cz;
  800.         setrot "object",$id,0,$yaw,0;
  801.         $amount=random(-2,2);
  802.         rpos "object",$id,$amount,0,0;
  803.         if (random(1,5)<=2) {free "object",$id;}
  804.         elseif (random($mineral_chance)<=2) {free "object",$id;$id=create("object",$minerial);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  805.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",979);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  806.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",993);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  807.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",992);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  808.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",978);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  809.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",980);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  810.         elseif ((random($mineral_chance)==1) && (skillvalue("mining")>=75)) {free "object",$id;$id=create("object",1211);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  811.         elseif (random(3)==1) {free "object",$id;$id=create("object",1209);setpos "object",$id,$Cx,$Cy,$Cz;setrot "object",$id,0,$yaw,0;rpos "object",$id,$amount,0,0;}
  812.         $yaw+=180;
  813.         $Cz+=120;
  814.     }
  815.     $Cz=90;
  816.     $Cx+=60;
  817.    
  818. }
  819.  
  820. on:ground {
  821.     loop ("count",$square) {
  822.         $ground++;
  823.         $id=create("object",973);
  824.         setpos "object",$id,$Cx,$Cy-5,$Cz;
  825.         $amount=random(-1,1);
  826.         rpos "object",$id,0,$amount,0;
  827.        
  828.         if (($ground==$ledderpos) && ($ledder==1)) {
  829.             free "object",$id;
  830.             $id=create("object",1098);
  831.             setpos "object",$id,$Cx,$Cy-50,$Cz;
  832.             if ($ground<26) {$ledderpos=random(26,50);}
  833.             elseif ($ground<50) {$ledderpos=random(51,75);}
  834.             elseif ($ground<75) {$ledderpos=random(76,100);}
  835.         }
  836.    
  837.         elseif ((random(200)==1) && (skillvalue("mining")>=75)) {
  838.             $id2=create("object",826);
  839.             setpos "object",$id2,$Cx,$Cy,$Cz;
  840.             $item=random(0,2); 
  841.             $item=split("$itemstring",".",$item);
  842.             $amount=random(1,3);
  843.             $item=create("item",$item,0,0,$amount);
  844.             store $item,"object",$id2;
  845.             addstate "object",$id,53;
  846.             statesize "object",$id,53,$id2;
  847.         }
  848.  
  849.         elseif ((random(200)==1) && ($ledder==1)) {
  850.             $id=create("object",1200);
  851.             addstate "object",$id,"24";
  852.             setpos "object",$id,$Cx,$Cy+$amount,$Cz;
  853.             statecolor "object",$id, "24", 143, 234, 231;
  854.             statesize "object",$id, "24", 50;
  855.             statevalue "object",$id, "24", 100;
  856.             $id2=create("object",1201);
  857.             setpos "object",$id2,$Cx,$Cy+$amount,$Cz;
  858.             addstate "object",$id2,53;
  859.             statesize "object",$id2,53,$id;
  860.         }
  861.         $Cx+=60;
  862.     }
  863.     $Cx=0;
  864.     $Cz+=60;
  865. }
  866. script=end
  867.  
  868. #######1211 - Höhlensystem (Kohleader)
  869. id=1211
  870. name=Höhlensystem (Kohleader)
  871. group=stuff,ext,mining_system
  872. icon=gfxmining_systemiconsicon_Hoehlensystem_Kohleader.bmp
  873. model=gfxmining_systemHoehlensystem_Kohleader.3DS
  874. health=2000
  875. mat=stone
  876. find=23,20,1
  877. find=21,30,5
  878. find=900,30,1
  879. find=900,200,1,1,88

Achtung:Die Kohleader greift auf die Dateien gfxmining_systemiconsicon_Hoehlensystem_Kohleader.bmp
und gfxmining_systemHoehlensystem_Kohleader.3DS zu. Diese müssen natürlich erst erstellt werden. Ich habe als Modell für die Kohleader das der Eisenader verwendet.

Definition Kohle
Code: (text) [Auswählen]
  1. #!NEXT
  2. ##################
  3. # BID:  ??    
  4. # GID:  ??    
  5. # File: items_trewq
  6. ##################
  7. id=900
  8. name=Kohle
  9. icon=gfxmc_leaficon_copper.bmp
  10. group=food,std
  11. model=gfxmc_leafcopper.b3d
  12. scale=0.15
  13. mat=stone
  14. weight=400
  15. info=Ein Stück Kohle. Ich glaube nicht, dass die Temperaturen im Lagerfeuer hoch genug sind, um es zu entzünden.

Kombination: Kohle+Hammer=5Holzkohle
Code: (text) [Auswählen]
  1. #!NEXT
  2. #!NAME=
  3. ##################
  4. # BID:  ??       
  5. # GID:  ??       
  6. # File: combinations_trewq
  7. ##################
  8. combi=start
  9. id=crushcoal
  10. req=900,1
  11. req=30,1,stay
  12. gen=779,5
  13. script=start
  14.     speech "positive";
  15.     process "Kohle zerschlagen",1000;
  16. script=end
  17. combi=end

Allerdings fehlt mir noch etwas:
Ich habe es nicht geschafft die Modelle für die Eisenader und für das Eisen einzufärben (das Modell für das Eisen konnte ich nicht einmal öffnen, das für die Eisenader nicht mit den Änderungen abspeichern) um so Kohle abbaubar zu machen. Deshalb befinden sich derzeit Eisenaderwände in der Mine die Kohle (Modell und Icon: Kupfer -> das Modellieren liegt mir einfach nicht) liefern.

Achja, gleich noch eine Anmerkung zur Beleuchtung: wenn diese nicht aktiv ist und ihr Leuchtkristalle einlagert wird euch evtl auffallen, dass sobald der 6. Kristall eingelagert werden soll die Anzeige wieder auf 1 springt. Dies liegt daran, dass die Beleuchtung aktiviert wurde, da genügend Leuchtkristalle vorhanden waren und somit 5 Leuchtkristalle abgezogen wurden. Hierbei handelt es sich also ausnahmnsweise nicht um einen Bug.

Ich bitte um Kommentare.

mfg
trewq
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
gAvqAVAvkOd
« Antwort #169 am: November 28, 2012, 08:10:42 Vormittag »

What an atrocious piece of code. It's eytrvehing but clear and logic. Like a previous commenter wrote: programming isn't easy and in my opinion shouldn't be treated as such. Programming is an art. It's the skill that makes the difference between good and poor code. If Google would really want to lower the hurdles and invite moer people to write software for their Android platform, why not look at modern "easy" programming languages? Python or even more so, Ruby would do nicely. No need to "invent" something new and confuse the world a wee bit more...
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Dunkler Lord

  • Newbie
  • *
  • Beiträge: 23
Re: DISKUSSION: Modifikation von Standardobjekten aus S2Ext
« Antwort #170 am: Dezember 08, 2012, 10:59:00 Vormittag »

Hallo alle zusammen,
euch ist sicherlich auch schon längst aufgefallen, dass Stranded viele ehemalige Spieler verloren hat. Wäre es da nicht an der Zeit endlich mal wieder ein bisschen Leben in das Spiel zu bringen?
Und so machte ich mich auf die Suche nach einer "Wiederbelebungstherapie" ;)
Da ich auch viel auf Steam spiele fiel mir früher oder später das Greenlightprojekt ins Auge:
Es handelt sich hierbei um eine Plattform auf der junge Entwickler ihre Spiele hochladen können und diese dann von fleißigen Spielern bewertet werden. Wenn ein Spiel viele positive Beiträge gewinnt wird es auf Steam als vollwertiges Spiel veröffentlicht.
Und so frage ich euch, liebe Stranded Anhänger, wäre dies nicht die perfekte Möglichkeit das beste Endlos-Survive-Escape from an Island-Spiel :D wieder populärer zu machen?
Die Entscheidung liegt an euch und so würde ich mich über Antworten sehr freuen.
Euer Dunkler Lord
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

gothicmaster8888

  • Newbie
  • *
  • Beiträge: 164
Re: DISKUSSION: Modifikation von Standardobjekten aus S2Ext
« Antwort #171 am: Dezember 08, 2012, 12:56:19 Nachmittag »

ein Versuch wärs auf jedenfall wert.


evtl. werden dann auch mal alte Projekte wieder belebt so wie das hier

http://s2ext.icetruck.de/forum/viewtopi ... 806d7cdc04
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert