Spawn Aléatoire, le script-cadeau de mars

Répondre
Partager Rechercher
Je viens de finir de me prendre la tête sur une fonction pour faire réapparaitre un placeable quelconque aléatoirement dans sa zone de destruction.

Et comme ça marche, je vous l'offre:

Code PHP:

void CreateAleaFrom()
{
object oArea=GetArea(OBJECT_SELF);
string sTag=GetResRef(OBJECT_SELF);
object oSpawn =GetObjectByTag("Tag_de_lobjet_de_reference_des_spawn");
location lBoum GetLocation(OBJECT_SELF); //Point de destruction
float fXMove IntToFloat(Random(7)); //Deplacement sur l'axe des X
float fYMove IntToFloat(Random(7)); //Deplacement sur l'axe des Y
vector vOldVector GetPositionFromLocation(lBoum);
vector vNewVector;
if(
Random(2) == 1)
vNewVector vOldVector Vector(fXMove,fYMove,0.0); }
else
vNewVector vOldVector Vector(fXMove,fYMove,0.0); }//Creation du vecteur
location lLoca Location(oArea,vNewVector,10.0); //Creation de la Location

AssignCommand(oSpawn,DelayCommand(10.0,CreateObject(OBJECT_TYPE_PLACEABLE,sTag,lLoca,FALSE)));

Il suffit de modifier les deux chiffres 7 pour augmenter le rayon de respawn.

A placer dans une bibliothèque et insérer via un include. Je vous invite à la prudence, il est possible que le placeable spawn dans un endroit inaccessible. gardez ça en tête quand vous l'utiliserez.
Sympa, mais effectivement comme tu le dis un contrôle de la validité de la destination serait mieux, sinon je pense que ça doit pouvoir faire crasher le jeu

une condition qui force une relocalisation du spawn, du genre: if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) , devrait pouvoir limiter ça je pense
Insuffisant hélas, l'Area reste valide, l'objet se créé juste dans le décor. C'est bien le problème.

Une solution pourrait être de stocker la position de depart et d'empêcher un éloignement trop excessif
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés