Script de tp de plusieurs personnages

Répondre
Partager Rechercher
Hello there.
S'il reste des scripteurs ici, j'aurai besoin d'un coup de main pour fignoler un script.

Je m'explique...
La Tour des Arcanes de mon serveur possède un ascenseur, avec un panneau de commande. Une fois les pj à l'intérieur (attention ils ne sont pas forcément groupés), l'un d'eux utilise le panneau de commande, qui tp tout ce beau monde à l'étage demandé.
Mon soucis est que, au moment de la tp... tous les personnages du serveur sont tp, y compris ceux qui ne se trouvent PAS dans l'ascenseur.
J'ai du manquer quelque chose dans mon script, je sens que je suis très proche de la solution, mais si quelqu'un peut m'aider à y voir clair, cela m'aiderait.

[php]
Code PHP:

void main()
{
/*
sFloor est à définir dans les variables des options de dialogue.

oTarget identifie les Waypoints de destination: le tag de ces waypoint doit être "TM_" + le nombre correspondant à la variable sFloor dans le dialogue.
exemple: "TN_6"

La variable Actual_floor est à définir sur le panneau de commande, en INT. Elle permet de définir l'étage actuel.

La variable "ETAGE_TM" est définie par le script du trigger de l'élévateur. Elle se place via le script sur le pj et permet de vérifier qu'il est au mêmne étage
que le panneau de commande en cours d'utilisation.
*/


object oUser GetPCSpeaker();
string sFloor GetScriptParam("ETG");
object oTarget GetWaypointByTag("TM_" sFloor);
object oNextPc GetFirstPC();
int nFloor StringToInt(sFloor);
int nActual_Floor GetLocalInt(OBJECT_SELF,"Actual_Floor");
int nNextPc_Etage GetLocalInt(oNextPc"ETAGE_TM");
object oTrigger GetObjectByTag("TM_Elevateur"+IntToString(nActual_Floor));
object oTag GetTag(OBJECT_SELF);

/*
La boucle sélectionne oNextPC, défini d'abord comme le premier membre de la liste des joueurs.
Elle vérifie que la variable ETAGE_TM correspond à la variable Actual_Floor
Si oui, le personnage est téléporté à l'étage sélectionné et la boucle vérifie le personnage suivant.
SendCreature est utilisé pour envoyer les henchmen, familiers et autres invocations au waypoint de destination, au cas
ou un élévateur serait utilisé pour simuler des étages sur une même map.
*/


    
while (GetIsObjectValid(oNextPc) == TRUE)
        {
        if (
nNextPc_Etage == nActual_Floor)
            {
            
            
AssignCommand(oNextPcJumpToObject(oTarget,FALSE));
            
object oAnimal GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANIONoNextPc);
            
object oDominated GetAssociate(ASSOCIATE_TYPE_DOMINATEDoNextPc);
            
object oFamiliar GetAssociate(ASSOCIATE_TYPE_FAMILIARoNextPc);
            
object oHenchman GetAssociate(ASSOCIATE_TYPE_HENCHMANoNextPc);
            
object oSummoned GetAssociate(ASSOCIATE_TYPE_SUMMONEDoNextPc);
            
SendCreature(oAnimaloTarget);
            
SendCreature(oDominatedoTarget);
            
SendCreature(oFamiliaroTarget);
            
SendCreature(oHenchmanoTarget);
            
SendCreature(oSummonedoTarget);
            }
        
oNextPc GetNextPC();
        }

Répondre

Connectés sur ce fil

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