Not logged inClonkspot Forum
Forum Home Help Search Register Login
Up Topic Deutsch / Hilfestellung / [Gelöst] eine Aktion für Zeit x ausführen
- - By Serpens66 (More than 200 posts.) Date 30.09.2015 21:01
ich möchte eine Axt machen, mit der man bereits gefällte Bäume zerlegen kann.  Dabei soll der Clonk dann einfach die Chop Action ausführen. Z.b 5 sekunden für jedes Stück Holz im Baum.
Nur wie sorge ich dafür, dass der Clonk x Sekunden lang die Aktion Chop ausführt?

protected func Activate(object pByObj)
{
  var ptree = FindObject2(Find_Func("IsTree"),Find_Distance(20));
  if (!ptree->~IsStanding())
  {
        var iWoodCount = ptree->GetComponent(WOOD);
        ObjectSetAction(pByObj, "Chop",ptree);    // soll noch auf x sekunden verlängert werden
        RemoveObject(ptree);
        for(var i=0;i<=iWoodCount;i++)
            CreateObject (WOOD, 0, 0, -1);
        return;
    }
  else return(_inherited());
}


so wie die funktion jetzt istm scheint die chop funktion garnicht ausgeführt zu werden... jedenfalls sieht man den clonk nicht ausholen, sondern der baum verwandelt sich sofort in holz.

(im Siedelzubehör Pack von Wolli, welches recht neu auf ccan ist, gibt es zwar so eine Axt, aber sie verwendet die nicht existierende Funktion "AxeDown", weshalb sie nicht funktioniert (genauso wie die Wolken, die ein Fehler haben... wundert mich, dass das da noch keiner angemerkt hat)
Parent - - By Serpens66 (More than 200 posts.) Date 01.10.2015 15:56
habs gelöst, indem ich eine neue Aktion erstellt habe, mit denselben Animationen wie die Chop Aktion. Offenbar gibt es wirgendwo irgendwas in der Chop Aktion, die dafür sorgt, dass die aktion auffhört, wenn kein zu fällender Baum in der nähe ist.

Mit der neuen Aktion kann ich einfach sagen ObjectSetAction(pByObj, "AxeDown",ptree);  und er macht es so lange, bis ich ihm sage er soll aufhören.
Den Check ob er aufhören kann mache ich mit einem TimerCall in der Axt selbst. Der wird alle 5 sekunden aufgerufen, und wenn ein Clonk gerade damit AxeDown macht, dann wird ein Counter erhöht, sodass es 5 sekunden pro Stück holz dauert und dann der Baum zerlegt ist :)
Parent - By Clonkonaut (More than 200 posts.) Date 02.10.2015 06:57
Die Prozedur CHOP schaut, dass der Clonk einen Baum fällt und kann nicht ohne Actiontarget laufen.
Up Topic Deutsch / Hilfestellung / [Gelöst] eine Aktion für Zeit x ausführen

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill