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

Eliminar una habilidad o característica de un objeto.


4 respuestas al tema

#1 Obsidiana

Obsidiana

    Humano

  • Miembro
  • Pip
  • 38 posts

Posteado 14 September 2018 - 05:47 PM

Buenas a todos, he estado buscando la forma de poder eliminar las propiedades concretas, como fuerza, usar objeto mágico, entre otras parecidas, de un objeto.

 

Mi problema interviene cuando uso el siguiente script:

             while (GetIsItemPropertyValid (ipLoop))
             {
             if (GetItemPropertyType(ipLoop)== ITEM_PROPERTY_ABILITY_BONUS)
             RemoveItemProperty (oObjetoModifica , ipAdd1);
             ipLoop = GetNextItemProperty (oObjetoModifica);
             }

Que no logro señalizar que de todas esas "ABILITY" la que quiero borrar del item es la fuerza.

Supongo que tendré el mismo problema con las habilidades, para eliminar una habilidad concreta.



#2 Rk.Sayan

Rk.Sayan

    Ancillae

  • Miembro
  • PipPipPip
  • 420 posts

Posteado 14 September 2018 - 07:49 PM

borrado,

voy a probar esa opción q ignoraba totalmente, gracias Althor


Editado por Rk.Sayan, 15 September 2018 - 01:05 AM.


#3 AlthorDeMalavir

AlthorDeMalavir

    Neonato

  • Miembro
  • PipPip
  • 116 posts

Posteado 15 September 2018 - 12:14 AM

Pues tienes que usar esta función para especificarle exactamente lo que quieres que te borre

 

// Returns the SubType number of the item property. See the 2DA files for value definitions.
int GetItemPropertySubType(itemproperty iProperty)

Te pego la función que yo uso para hacer eso

 

void SOP_DestroyProperty(object oItem, int iTipoPropiedad, int iSubTipoPropiedad)
{
itemproperty ipPropiedad = GetFirstItemProperty(oItem);
while(GetIsItemPropertyValid(ipPropiedad))
    {
    if(iSubTipoPropiedad == -1)
        {
        if (GetItemPropertyType(ipPropiedad) == iTipoPropiedad) RemoveItemProperty(oItem, ipPropiedad);
        }
    else
        {
        if( GetItemPropertyType(ipPropiedad) == iTipoPropiedad
            && GetItemPropertySubType(ipPropiedad) == iSubTipoPropiedad)
                RemoveItemProperty(oItem, ipPropiedad);
        }
    ipPropiedad = GetNextItemProperty(oItem);
    }
}

Tienes que mirar en el 2da el número del subtipo, en el caso delas skills, pues el skills.2da, dentro de ese 2da están las skills numeradas. Si no me equivoco es así puesto que el script lo hice hace bastante y no o he vuelto a tocar desde entonces.

 

Edito:

 

No estoy seeguro de si esto funcionaría para especificarle la habilidad en concreto, pruebalo

 

        if( GetItemPropertyType(ipPropiedad) == ITEM_PROPERTY_ABILITY_BONUS
            && GetItemPropertySubType(ipPropiedad) == IP_CONST_ABILITY_STR)

Editado por AlthorDeMalavir, 15 September 2018 - 12:21 AM.

YourServerList.com Listado de servidores de Minecraft, Neverwinter Nights 1 y 2 y Terraria.


#4 Obsidiana

Obsidiana

    Humano

  • Miembro
  • Pip
  • 38 posts

Posteado 15 September 2018 - 12:41 AM

Me ha funcionado la segunda opción!



#5 Zoraga

Zoraga

    Neonato

  • Miembro
  • PipPip
  • 213 posts

Posteado 20 September 2018 - 05:43 AM

Está buena la idea para borrar automaticamente habilidades de objeto como "Acelerar" por ej.


Colaborando en:



Nombre servidor: ES) Rebelión del Submundo
Tipo de servidor: rol/acción/jvj
Jugadores: 1-25
Niveles: 1-30
Base literaria: Reinos Olvidados
IP (conectar directamente): sombrasdefaerun.no-ip.org
Foro: http://usn-rol.foroes.org/



 




Responder



  


A Bragol. Tus amigos te echan de menos.