Plusieures cellules, ayant le même nom, ne disent pas réellement leur position dans le monde.
De plus si le nom est trop grand, le teste échoue.
Voici un truc pour tester une cellule suivant sa position X/Y.
Forme pour des cellules allant de X-99 à X99 et de Y99 à Y-99
Begin _TestCell ; Explication générale : ; La position X de la cell est calculée dans la variable Cell, puis multipliée par 100 si elle est positive ou par -100 si elle est négative. ; Si la position X est négative on ajoute 10000 pour retenir le signe négatif ; La position Y de la cell est calculée dans la variable Cell en l'ajoutant a Cell sans multiplication si elle est positive ou par -1 si elle est négative. ; Si la position Y est négative on ajoute 20000 pour retenir le signe négatif ; En resultat : ; dans les unitées/dizaine la cellule Y, dans les centaines/millier la cellule X et dans la dizaine de millier le signe X/Y. ; Les signes sont retenus ainsi : ; 3 -> X négatif et Y négatif ; 2 -> X positif et Y négatif ; 1 -> X négatif et Y positif ; rien ( 0 ) -> X positif et Y positif ; ; Exemple : ; 31616 -> Cellule Y -16 / X -16 ; 11616 -> Cellule Y 16 / X -16 ; 21616 -> Cellule Y -16 / X 16 ; 1616 -> Cellule Y 16 / X 16 ; CQFD ! float xpos float ypos float zpos short Cell set xpos to ( Player->GetPos x ) set ypos to ( Player->GetPos y ) set zpos to ( Player->GetPos z ) If ( xpos < 0 ) set Cell to ( ( xpos / 8192 ) - 1 ) set Cell to ( Cell * -100 ) + 10000 Else set Cell to ( xpos / 8192 ) set Cell to ( Cell * 100 ) Endif If ( ypos < 0 ) set Cell to Cell + ( ( ( ypos / 8192 ) - 1 ) * -1 ) set Cell to Cell + 20000 Else set Cell to Cell + ( ypos / 8192 ) Endif ; ICI ACTION SUIVANT LE RESULTAT ( UNE SEULE CONDITION A EFFECTUEE ) If ( Cell == 30209 ) ; ICI SEYDA NIHYN POUR EXEMPLE (-2/-9) ; BlaBlaBla... Endif End _TestCell
Forme pour des cellules allant de X-999 à X999 et de Y999 à Y-999
Begin _TestCell ; Explication générale : ; La position X de la cell est calculée dans la variable Cell, puis multipliée par 1000 si elle est positive ou par -1000 si elle est négative. ; Si la position X est négative on ajoute 1000000 pour retenir le signe négatif ; La position Y de la cell est calculée dans la variable Cell en l'ajoutant a Cell sans multiplication si elle est positive ou par -1 si elle est négative. ; Si la position Y est négative on ajoute 2000000 pour retenir le signe négatif ; En resultat : ; dans les unitées/dizaine/centaine la cellule Y, dans les millier/dizaine de millier/centaine de millier la cellule X ; et dans le million le signe X/Y. ; Les signes sont retenus ainsi : ; 3 -> X négatif et Y négatif ; 2 -> X positif et Y négatif ; 1 -> X négatif et Y positif ; rien ( 0 ) -> X positif et Y positif ; ; Exemple : ; 3016016 -> Cellule Y -016 / X -016 ; 1016016 -> Cellule Y 016 / X -016 ; 2016016 -> Cellule Y -016 / X 016 ; 16016 -> Cellule Y 016 / X 016 ; CQFD ! float xpos float ypos float zpos long Cell set xpos to ( Player->GetPos x ) set ypos to ( Player->GetPos y ) set zpos to ( Player->GetPos z ) If ( xpos < 0 ) set Cell to ( ( xpos / 8192 ) - 1 ) set Cell to ( Cell * -1000 ) + 1000000 Else set Cell to ( xpos / 8192 ) set Cell to ( Cell * 1000 ) Endif If ( ypos < 0 ) set Cell to Cell + ( ( ( ypos / 8192 ) - 1 ) * -1 ) set Cell to Cell + 2000000 Else set Cell to Cell + ( ypos / 8192 ) Endif ; ICI ACTION SUIVANT LE RESULTAT ( UNE SEULE CONDITION A EFFECTUEE ) If ( Cell == 3002009 ) ; ICI SEYDA NIHYN POUR EXEMPLE (-2/-9) ; BlaBlaBla... Endif End _TestCell