Saltar al contenido

Más en DLAN: Nuestras Traducciones | Otras Traducciones | Mods y modding | Revisiones y Guías | Videojuegos | Arte | Literatura | Rol y Rol por foro e IRC | Mapa de la web
Foto

Forja rollo diablo


6 respuestas al tema

#1 Rk.Sayan

Rk.Sayan

    Ancillae

  • Miembro
  • PipPipPip
  • 419 posts

Posteado 22 July 2018 - 07:44 PM

Buenas, estoy algo despistado con este tema

la pregunta es sencilla , pero el método más acertado se me escapa

 

¿Si tengo 3 gemas del mismo tipo, cómo lo convierto en otra ?

 

Por conversación?

Por baúl?

¿qué me recomiendan?

 

 

¿se podría plantear así?

 

Ejemplo:

 

If que te pilla la gema por tag y comprueba que tengas 3 del mismo tipo
   {
    borro 3 gemas del mismo tipo (ni más ni menos)
     }
else
      {
      mensaje: "no tienes suficientes gemas" 
      }

¿algo así es posible?

 

estuve mirando el sistema forja txibi , pero no se si debería tirar por ese lado para algo aparentemente tan sencillo

 

¿alguna idea?  (el caso es que me suena que hace años use algo parecido y no alcanzo a recordar)

 

Gracias.

 

 

 



#2 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 395 posts

Posteado 23 July 2018 - 08:33 AM

Pues miras si coincide el tag de la primera gema y de la segunda y de la tercera....destruir...crear objeto en object.
No tengo el nwn instalado pero algo asi:
if GetItemPossessedBy((baul,tag de la gema)&& otro possesed con la otra gema && otro possesed con la otra gema)
{Destruir gema, destruir gema, destruir gema
CreateItemOnObject
}

Y si las tres gemas son iguales miras la cantidad apilada con GetItemStackSize y con SetItemStackSize le das el nuevo valor si son 6 apiladas nuevo valor 3 no se si el valor es cero imagino que quede una gema tendras que mirarlo y si al dar el nuevo valor es cero destruir item

Editado por lavafuego, 23 July 2018 - 08:40 AM.

http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )


#3 Rk.Sayan

Rk.Sayan

    Ancillae

  • Miembro
  • PipPipPip
  • 419 posts

Posteado 04 August 2018 - 06:04 PM

tuve que rediseñar todo el script pero valió la pena, muchas gracias por la información, muy útil

 

a continuación un tramo del script, omitiendo los subprogramas por si le sirve a alguien

/*------------------------------------------------------------------------------------------------------------------*/
          /*MEJORA ARMA +20*/                                                                                                                                                                        
 if (GetLocalInt(oArma,  "ArmaManoDerechaBonificacionMejora+19"))  /*si tengo la variable de la mejora anterior*/
{   if (GetItemPossessedBy(oPC,  "gema_roja_6") != OBJECT_INVALID ) /*si tengo el objeto para subirla*/
     { 
       quita_roja_6();/*sub programa que me resta 1 piedra roja*/ 

             
  switch (Random(/*tirada dados*/3 )) /*33 porciento de posibilidades de que ocurra el Exito, Fallo o Estropeado*/
        {
         case 0:  SendMessageToPC(GetPCSpeaker(), "<c|ý >¡ÉXITO!</c> en la mejora de "+Nombre_arma_falso+"  a "+Nombre_arma+" +20" );
                  DeleteLocalInt( oArma, "ArmaManoDerechaBonificacionMejora+19" );  /*borra variable actual*/ 
                  SetLocalInt   (oArma, "ArmaManoDerechaBonificacionMejora+20", 1); /*da nueva variable*/
                  IPRemoveMatchingItemProperties(oArma,ITEM_PROPERTY_ATTACK_BONUS, -1 ); /*borra ataque anterior*/

                 if (!GetIsObjectValid(oArma))return;
                     AddItemProperty(DURATION_TYPE_PERMANENT, Ataque20/*int customizado*/ , oArma); /*da nuevo ataque*/

                  /*mas arriba cogi el nombre con este int*/ SetName(oArma,Nombre_arma+" +20") ;break; 
                  /*le cambia el nombre al arma, basandose en el base por ejemplo: "espada larga", la renombra a "espada larga +20"*/



case 1:  SendMessageToPC(GetPCSpeaker(), "FALLO"  );break; /*simplemente fallas la tirada y no pasa nada, en cualquier caso pierde las gema*/

case 2:

if (GetItemPossessedBy(oPC,   "G_no_17a20"    ) != OBJECT_INVALID ) /*si tienes la gema antirotura, evita que se el arma baje de nivel, pero no sube*/
    {
     quita_ocre_2(); /*sub programa para restar la piedra ocre*/ 
     SendMessageToPC(GetPCSpeaker(),"FALLO"); /*mensaje de fallo normal*/
     }

else /*si no tienes la piedra ocre*/
   {
    IPRemoveMatchingItemProperties(oArma,ITEM_PROPERTY_ATTACK_BONUS, -1    ); /*borra tu ataque actual*/
    AddItemProperty(DURATION_TYPE_PERMANENT,     Ataque18   , oArma);         /*te da el ataque anterior*/
    DeleteLocalInt( oArma,   "ArmaManoDerechaBonificacionMejora+19"   /*borra la variable de tu arma actual*/ );
    SetLocalInt   (oArma,  "ArmaManoDerechaBonificacionMejora+18", 1  ); /*te da una variable anterior a la actual*/
    SendMessageToPC(GetPCSpeaker(),"<c–2È>¡ESTROPEADO!</c> se reduce la mejora de "+Nombre_arma_falso+"  a "+Nombre_arma+" +18"); /*te dice que bajas de nivel*/
    SetName(oArma,Nombre_arma+/*cambia nombre a (-) */  " +18") ;}break;} /*te cambia el nombre del arma al anterior*/                             
}
         else{SendMessageToPC(GetPCSpeaker(),"Necesitas mínimo 1 <cúaU>Piedra Roja (17 a 19)</c> para mejorar "+Nombre_arma_falso+" a +20");}}

/*si no tienes la piedra correcta no te deja subir nivel y te lo dice*/
/*------------------------------------------------------------------------------------------------------------------*/

Gracias Lava!



#4 Rk.Sayan

Rk.Sayan

    Ancillae

  • Miembro
  • PipPipPip
  • 419 posts

Posteado 12 August 2018 - 09:05 PM

No quería crear otro post  para una duda que tengo por que no creo que lo merezca.

Bueno dicho lo dicho quería saber si existe una función.

 

Hay una función que hace que las armas que posees se conviertan en trama(osea invendibles)

y la pregunta es si hay otra función para convertirlas a objetos robados, imagino que si, pero lo ignoro

¿alguien se la sabe?

 

Gracias.



#5 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 395 posts

Posteado 12 August 2018 - 10:02 PM

Me suena la funcion setplotflag ... joder esto de estar sin aurora es un asco, miralo en el lexicon no obstante lo mismo ni existe lo que te digo

Editado por lavafuego, 12 August 2018 - 10:02 PM.

http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )


#6 MenemDoIt

MenemDoIt

    Antediluvian

  • Miembro
  • PipPipPipPipPip
  • 1213 posts

Posteado 12 August 2018 - 10:07 PM

tenes las funciones SetStolenFlag y SetPlotFlag ( que menciono lavafuego ).


10016077DS1515734551.gif


#7 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 395 posts

Posteado 12 August 2018 - 10:51 PM

Jaja acerté, no las tenía todas conmigo. De mañana no pasa instalo el nwn y el aurora xD

http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )




Responder



  


A Bragol. Tus amigos te echan de menos.