[Gelöst] Beschränkung beim Kauf von Dingen

Ich möchte, dass man maximal 10 Clonks aufeinmal haben kann.  Wenn welche sterben, soll man aber wieder neue dazu kaufen können.

Spontan würde ich jetzt sagen, ich muss dazu die Funktion finden, die für das Kaufen von Dingen zuständig ist… und dort dann eine Zählung der Clonks durchführen und eben eine Meldung rausgeben, wenn es zuviele sind… Wisst ihr ob es die offen gibt, und wenn ja wo?

Oder wie könnte ich es stattdessen lösen?

Du kannst ja einfach im OnClonkDeath-Callback die Zahl der kaufbaren Clonks einfach erhöhen. Also:

func OnClonkDeath(object pClonk, int iKiller) {
  DoHomebaseMaterial(GetOwner(pClonk), GetID(pClonk), 1);
}

im Szenarienskript. Wenn du dann auch noch Nachschub ausschaltest, sollte man ja nicht mehr Clonks bekommen können.

das ist ein super hinweis, danke :)   hab mich schon lange gefragt, wie ich allgemein die kaufbaren Dinge etwas beschränke, z.b dass etwas erst zum zeitpunkt x kaufbar wird :) 

die Funktion wird immer aufgerufen, wenn ein Clonk (egal ob hazard oder sonst einer) stirbt?

>die Funktion wird immer aufgerufen, wenn ein Clonk (egal ob hazard oder sonst einer) stirbt?


Joa, zumindest für alle Clonks, die sich von CLNK ableiten und die Death-Funktion nicht überschreiben (s. hier).

Den Artikel kannte ich noch nicht. Sehr nützlich, danke!

Und nicht das return _inherited(pClonk, iKiller); vergessen, sonst wunderst du dich irgendwann warum irgendwelche Relaunches nicht mehr gehen

danke, wollte eig noch fragen, ob da ein inherited hinsollte, aber habs gelassen, weil ich dachte, dass in meinem szenarioskript diese funktion bisher eh nicht genutzt wird.
Aber sicher ist sicher, stimmt :slight_smile:

Ja, im Szenarienscript ist das echt ziemlich ungefährlich, wenn du nicht selbst noch am Anfang vom Szenarienscript #include benutzt.