inmensia |
Allods Online Addons (8/10): AutoSellGreyAddon
Juan Mellado, 1 Octubre, 2010 - 16:15
En este artículo se analiza un addon de Allods llamado "AutoSellGreyAddon". Su función es la de vender todos los objetos grises que lleva en la bolsa nuestro personaje, de forma automática, en el momento que se abra una ventana de diálogo con un vendedor. El autor utiliza el alias de Valltron, así que vayan para él todos los correspondientes créditos. El addon se compone de sólo dos ficheros: el obligatorio "AddonDesc.(UIAddon).xdb", y un script llamado "ScriptAutoSell.lua". No hay más. Ni formularios, ni imágenes, ni nada más. Aunque la verdad es que no lo necesita. El código del script empieza con la habitual llamada a la función "Init", que en ese caso se encarga de registrar dos eventos. El evento "EVENT_TALK_STARTED", que se lanza cuando se inicia una conversación con cualquier NPC del juego, no necesariamente vendedor. Y el evento "EVENT_TALK_STOPPED", que se lanza cuando se termina una conversación. function Init()Al iniciarse una conversación con un NPC el juego invoca a la función "OnTalkStarted", donde se registra el evento "EVENT_VENDOR_LIST_UPDATED", que es el que Allods lanza cuando un vendedor solicita a nuestro personaje la lista de objetos que tiene en la bolsa disponibles para la venta. Y por su parte, al terminar una conversación, se invoca a la función "OnTalkStopped" que elimina el registro de dicho evento "EVENT_VENDOR_LIST_UPDATED". function OnTalkStarted()Finalmente, la función "OnVendorListUpdated" es la que realmente hace todo el trabajo en una serie de pasos muy claros: function OnVendorListUpdated()La función "avatar.InventoryGetBaseBagSlotCount" es la que obtiene el número de objetos de la bolsa nuestro personaje. La función "avatar.GetInventoryItemId(slotIndex)" es la que obtiene el ID de un objeto concreto de la bolsa dada su posición dentro de la misma, que recordemos que puede ser de una casilla que está vacía, por lo que es necesario comprobar que ha devuelto un ID de un objeto válido. La función "avatar.GetItemInfo(itemId)" es la que obtiene el detalle de los atributos del objeto dado, siendo el atributo "quality" el que indica el nivel del objeto, aunque este es sólo uno de las varias decenas de atributos que devuelve la función y merecen la pena echar un vistazo en la documentación. Finalmente, la función "avatar.Sell(slotIndex, itemInfo.stackCount)" es la que vende el objeto de la bolsa dada su posición, y en su cantidad total además. Sin lugar a dudas este addon es muy claro ejemplo de sencillez y utilidad. ¿No encontró lo que buscaba?Utilice el buscador para encontrar más páginas en esta web o en toda Internet. |