JVLIVS CAESAR MODS FORUM
Estimado usuario invitado: Si se registra/conecta podrá tener la mejor ventaja, postear en el foro, ya que los invitados solo pueden leer.

JVLIVS CAESAR MODS FORUM

Imperium III Mods Forvm. Último Mod - MCI 9.0!
 
ÍndiceÍndice  FAQFAQ  BuscarBuscar  RegistrarseRegistrarse  ConectarseConectarse  

Comparte | 
 

 Ayuda con un script para crear una tormenta.

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Asur
Veterano
Veterano
avatar

Cantidad de envíos : 462
Reputación : 74
Fecha de inscripción : 20/04/2014

MensajeTema: Ayuda con un script para crear una tormenta.   Miér Oct 28, 2015 7:32 pm

A ver si alguien entiende porque no funciona este .VS en SUBAI. Es una comando para desatar una tormenta alrededor del sacerdote que la crea, dañar a todas las unidades cercanas a cada rayo que cae y después que el sacerdote muera. El ScriptEditor no le reconoce fallos, sin embargo no funciona, no hace nada.

Aquí el script:

// void, Obj This




Druid this;

ObjList ol;

Unit u;

int i, nCount;

point pt1, pt2, pt3, pt4, pt5, pt6, pt7, pt8, pt9, pt10, pt11, pt12, pt13, pt14, pt15, pt16, pt17, pt18, pt19, pt20;




this = This.AsDruid();




pt1 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt2 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt3 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt4 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt5 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt6 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt7 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt8 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt9 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt10 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt11 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt12 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt13 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt14 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt15 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt16 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt17 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt18 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt19 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));

pt20 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));




if (.IsValid()){




CreateFeedback("Lightning", pt1);

ol = ObjsInCircle(pt1,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt2);

ol = ObjsInCircle(pt2,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt3);

ol = ObjsInCircle(pt3,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt4);

ol = ObjsInCircle(pt4,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt5);

ol = ObjsInCircle(pt5,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt6);

ol = ObjsInCircle(pt6,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt7);

ol = ObjsInCircle(pt7,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt8);

ol = ObjsInCircle(pt8,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt9);

ol = ObjsInCircle(pt9,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt10);

ol = ObjsInCircle(pt10,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt11);

ol = ObjsInCircle(pt11,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt12);

ol = ObjsInCircle(pt12,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt13);

ol = ObjsInCircle(pt13,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt14);

ol = ObjsInCircle(pt14,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt15);

ol = ObjsInCircle(pt15,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt16);

ol = ObjsInCircle(pt16,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt17);

ol = ObjsInCircle(pt17,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt18);

ol = ObjsInCircle(pt18,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt19);

ol = ObjsInCircle(pt19,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

Sleep(rand(1000));

CreateFeedback("Lightning", pt20);

ol = ObjsInCircle(pt20,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)

    for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {

        u = ol[rand(ol.count)];

        if (u.IsDead()) continue;

        if (.IsEnemy(u)) {

            nCount+=1;

            u.Damage(10);

            ol.Remove(u);

        }

    }

.Damage(.health);

}








A ver si alguien tiene idea de que puede pasar.

Gracias de antebrazo!




EDIT: RESUELTO POR HARENOR, muchas gracias!


Última edición por Asur el Jue Oct 29, 2015 8:58 pm, editado 1 vez
Volver arriba Ir abajo
http://www.moddb.com/mods/asurmod
Harenor
Pretoriano
Pretoriano
avatar

Cantidad de envíos : 62
Location : Ninguna
Reputación : 18
Fecha de inscripción : 26/03/2015

MensajeTema: Re: Ayuda con un script para crear una tormenta.   Jue Oct 29, 2015 3:12 pm

Código:
// void, Obj This


Druid this;

ObjList ol;

Unit u;

int i, k, nCount;

point pt, pt1;

this = .AsDruid();

pt = .pos;


if (.IsValid()){

for(k=0;k<20;k+=1){
pt1 = pt+Point(-rand(300) + 150, -rand(300) + 150);

CreateFeedback("Lightning", pt1);

ol = ObjsInCircle(pt1,(50),cUnit).GetObjList();

nCount=0;

if (ol.count>0)
   for (i=0; ol.count!=0 && i<100 && nCount<10; i+=1) {
       u = ol[rand(ol.count)];
       if (u.IsDead()) continue;

       if (.IsEnemy(u)) {
           nCount+=1;
           u.Damage(10);
           ol.Remove(u);
       }
   }
Sleep(rand(1000));
}
.Damage(.health);

}
Prueba con este, lo hice con un código parecido en el editor y me funcionó.
La próxima vez prueba a usar [code] o [spoiler] para que el post no se haga tan largo D:
Volver arriba Ir abajo
Camarada
Equipo de Diseño
Equipo de Diseño
avatar

Cantidad de envíos : 295
Location : España
Reputación : 122
Fecha de inscripción : 01/05/2010

MensajeTema: Re: Ayuda con un script para crear una tormenta.   Jue Oct 29, 2015 4:24 pm

Creo que el principal problema es el conjunto de scrips usados para coger las cordenadas del mago ,creo que no te las coge .
pt1 = (.pos+Point(-(rand(300) + 100), (rand(300) + 100)));
Yo he probado en el editor usando un mago con un nombre de scrip y si me funciona , al menos los rallos , que es lo único que he probado

Intenta quitandole algún paréntesis "()" , aunque a mi me funciona tal y como lo tienes escrito
pt1 = .pos+Point(-(rand(300) + 100), (rand(300) + 100));
Volver arriba Ir abajo
Asur
Veterano
Veterano
avatar

Cantidad de envíos : 462
Reputación : 74
Fecha de inscripción : 20/04/2014

MensajeTema: Re: Ayuda con un script para crear una tormenta.   Jue Oct 29, 2015 5:25 pm

Gracias a ambos! El caso es q el script que hice no da ningún error en el editor, pero a la hora de la verdad no funciona.

Cuando pueda veo si me funciona ese que has hecho Harenor. Yo también creo que es por que no reconoce los pt camarada, pero no se como hacer q si los reconozca. Luego os cuento a ver si lo he logrado.

Gracias Smile
Volver arriba Ir abajo
http://www.moddb.com/mods/asurmod
Asur
Veterano
Veterano
avatar

Cantidad de envíos : 462
Reputación : 74
Fecha de inscripción : 20/04/2014

MensajeTema: Re: Ayuda con un script para crear una tormenta.   Jue Oct 29, 2015 7:36 pm

Pues sigo sin saber porque pero no funciona. Tu código harenor me lo reconoce sin problema el editor de scripts, pero al ponérselo en un botón a la unidad (como las otras habilidades que hice) no funciona, algo no reconoe por lo que sea...
Volver arriba Ir abajo
http://www.moddb.com/mods/asurmod
Contenido patrocinado




MensajeTema: Re: Ayuda con un script para crear una tormenta.   

Volver arriba Ir abajo
 
Ayuda con un script para crear una tormenta.
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Algun Programa para Crear Modelos de Autobuses?
» Programa para crear o modificar skins
» Programa para crear Models
» "¡AYUDA CON TUTORIALES PARA CREAR SPRITE ESTILO KOF XIII!
» Tutorial - Pasos para crear tu item (.obj-.md3)

Permisos de este foro:No puedes responder a temas en este foro.
JVLIVS CAESAR MODS FORUM :: Modding en General :: Modding en General :: Edición de Scripts-
Cambiar a: