|
-
Zufallswerte
Ist es möglich den Tieren Zufallsattribute zu verpassen bis zu einen Maximalwert? Z.b. Ein Scavenger hat eine Maximalstärke von 50, stärker kann er nicht werden. Aber bis dahin ist es möglich das es Scavenger gibt die Stärke 20, 30 oder 40 haben. Es ist ja nicht jedes Tier auf Erden gleichentwickelt, das wär ja langweilig oder? Also meine Frage: Könnte man das so umsetzen? Ich kenn mich damit noch nicht so gut aus, deswegen meine Frage.
-
Vielleicht suchst du die Funktion Hlp_Random()?
Sie gibt einen Zufallswert zwischen 0 und dem Maximalwert, den du als Parameter übergeben musst, zurück. Also zum Beispiel:
Code:
var int zufall;
zufall = Hlp_Random(50); // 'zufall' enthält einen Wert zwischen 0 und 50
osterliche Grüße, Rolus
-
Und wie müsste man die jetzt da einbauen? Hat das schonmal einer probiert?
-
 Originally Posted by Bautsen
Hat das schonmal einer probiert?
Ja, gerade eben, extra für dich. Weil heute Ostern ist. 
Ist ja auch nicht sehr viel Arbeit. Wir müssen nur etwas an das Scavenger-Skript anhängen. Zuerst mal die Funktion, die uns einen zufälligen Wert liefert:
Code:
func int B_Set_Random_Strength()
{
var int zufalls_str;
zufalls_str = Hlp_Random(4);
zufalls_str = zufalls_str * 10 + 50;
return zufalls_str;
};
Der Rückgabewert ist 50, 60, 70 oder 80. In der Variable zufalls_str wird erst ein Wert von 0 bis 3 gespeichert (Hlp_Random(4) gibt nämlich maximal 3 zurück - also den angegeben Maxwert minus eins). Im nächsten Schritt wird die Variable neu initialisiert, mit dem zahnfachen des ursprünglichen Wertes plus 50. Das heißt das Maximum ist 80 (wenn Hlp_Random eine 3 zurückgegeben hat) und das Minimum ist 50 (wenn Hlp_Random eine 0 zurückgegeben hat). Dieser Zufallswert wird jetzt am Ende der Funktion als Rückgabewert zurückgegeben.
Okay, das war schonmal das wichtigste. Jetzt erstellen wir nur noch eine neue Instanz des Proto-Scavengers:
Code:
INSTANCE Zufalls_Scavenger (Mst_Default_Scavenger)
{
B_SetVisuals_Scavenger();
Npc_SetToFistMode(self);
attribute [ATR_STRENGTH] = B_Set_Random_Strength();
CreateInvItems (self, ItFoMuttonRaw, 1);
};
Wie man sieht ist es bis auf eine Zeile der ganz normale Scavenger. Die Stärke des Prototypen wird durch diese Zeile geändert und mit dem Rückgabewert unserer B_Set_Random_Strength-Funktion neu initialisiert. Also hat unser Zufalls-Scavenger eine Stärke von 50, 60, 70 oder 80. Wenn man diesen Zufalls-Scavenger häufiger einfügt gibt es unterschiedlich starke Scavenger.
Du kannst natürlich auch andere Attribute mit dieser Funktion dem Zufall überlassen und die Funktion nach belieben anpassen. Und ich hoffe, dass ich alles verständlich erklärt habe, schließlich sollst du ja was lernen und nicht nur Fertig-Code benutzen. Sonst einfach nochmal nachfragen.
osterliche Grüße, Rolus
Last edited by Rolus; 27.03.2005 at 23:24.
-
Danke dir Rolus! Nettes Easteregg
Also das mit der Zufallsfunktion ist verständlich erklärt, hab ich verstanden. Hat auch alles funktioniert, bloss die Werte muss ich ein bischen verändern
Last edited by Bautsen2004; 28.03.2005 at 10:43.
-
@Rolus
yo das war verdammt gut erklärt (das kann ich sagen weil sogar ich das verstanden hab, und das heißt schon was )
ist sicher praktisch
kann man die auch bei Waffen verwenden???
ich hab da nämlich ne Idee das kann man sicher mit ner OnEquip funktion machen
 Nichts geht über die volle Power der drei Akkorde.
Original von Farin Urlaub, Bela B. Felsenheimer und Rod Gonzales "Als ich den Punk erfand..."
[Bild: ava_024.gif]verdammt jetzt hab ich schon wieder die Blitz-Substanz vergessen
-
Das mit dem Zufallswerten ist praktisch, das macht das Spiel irgendwie "unberechenbarer".
-
 Nichts geht über die volle Power der drei Akkorde.
Original von Farin Urlaub, Bela B. Felsenheimer und Rod Gonzales "Als ich den Punk erfand..."
[Bild: ava_024.gif]verdammt jetzt hab ich schon wieder die Blitz-Substanz vergessen
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
|
|