• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [NPC] NPC DE SPELLS POR TRADE

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [NPC] NPC DE SPELLS POR TRADE Mar Abr 19, 2022 6:02 pm

    ruta66

    ruta66
    Miembro
    Miembro
    Descripcion escribió:Chicos les quiero dejar este Script , Espero les guste

    antes de empezar tienen que entrar en data/spells/xml
    y agregar esto si no lo tiene en dichos spells que ustedes quieren poner en venta

    ejemplo
         
    Código:
     </instant>
       <instant name="DEATH TIME" words="Focus Flame" lvl="7" mana="50" prem="1" range="7" needtarget="1" exhaustion="2000" blockwalls="1" needlearn="0" event="script" value="attack/Focus Flame.lua">
          <vocation id="7"/>
                    <vocation id="10"/>

    este spell tiene una parte que dice (needlearn="0") lo cambiamos a (needlearn="1") y asi con todos los spells que quieran modificar , ok prosigamos

    ejemplo terminado   ...

         
    Código:
      </instant>
       <instant name="DEATH TIME" words="Focus Flame" lvl="7" mana="50" prem="1" range="7" needtarget="1" exhaustion="2000" blockwalls="1" needlearn="1" event="script" value="attack/Focus Flame.lua">
          <vocation id="7"/>
                    <vocation id="10"/>

    Ahora iremos a data/npc/scripts    copian un archivo y le ponen como nombre Spells.lua
    y agregaremos esto

    Código:
    local keywordHandler = KeywordHandler:new()
    local npcHandler = NpcHandler:new(keywordHandler)
    NpcSystem.parseParameters(npcHandler)

    function onCreatureAppear(cid)                 npcHandler:onCreatureAppear(cid)             end
    function onCreatureDisappear(cid)             npcHandler:onCreatureDisappear(cid)         end
    function onCreatureSay(cid, type, msg)         npcHandler:onCreatureSay(cid, type, msg)     end
    function onThink()                             npcHandler:onThink()                         end

    function creatureSayCallback(cid, type, msg)
        if(not npcHandler:isFocused(cid)) then
            return false
        end

        local shopWindow = {}
        local spells = {
            {id=7722, buy = 125000, name = "Focus Flame", spell = "DEATH TIME", vocations = {7}, level = 7},  
            {id=7726, buy = 200000, name = "Enigma Power", spell = "Push Zone", vocations = {8}, level = 7},
            {id=2239, buy = 150000, name = "Ubergang", spell = "True Damage", vocations = {5}, level = 7},
            {id=7724, buy = 100000, name = "Frozend Heart", spell = "Come On My Friend", vocations = {6}, level = 7}
        }
        
        local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
        if not getPlayerLearnedInstantSpell(cid, shopWindow[item].Words) then
            if getPlayerLevel(cid) >= shopWindow[item].Level then
                if isInArray(shopWindow[item].Vocs, getPlayerVocation(cid)) then
                    doPlayerRemoveMoney(cid, shopWindow[item].Price)
                    doPlayerLearnInstantSpell(cid, shopWindow[item].Words)
                    npcHandler:say("You have learned " .. shopWindow[item].Words, cid)
                else
                    npcHandler:say("This spell is not for your vocation.", cid)
                end
            else
                npcHandler:say("You need to obtain a level of " .. shopWindow[item].Level .. " or higher to be able to learn this spell.", cid)
            end
        else
            npcHandler:say("You already know this spell.", cid)
        end
        return true
    end

    if msgcontains(msg, 'trade') or msgcontains(msg, 'spells') then
        for var, item in pairs(spells) do
            shopWindow[item.id] = {Level = item.level, Vocs = item.vocations, Price = item.buy, subType = 0, Words = item.spell, SpellName = item.name}
        end
        openShopWindow(cid, spells, onBuy, onSell) end
        return true
    end

    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())


    Obvio las lineas de los spells names " " se pueden cambiar por los que ocupen , dejare un ejemplo de eso , espero me entiendan

    Código:
    {id=7722, buy = 125000, name = "Focus Flame", spell = "DEATH TIME", vocations = {7}, level = 7},


    el ID se puede modificar por cuqluier item que ustedes quieran usar
    traten de que los ides sean diferentes si son para diferente vocacion
    en BUY es el costo de dicho item que dara el spell , NAME es el name del spell , SPELL es la descripcion del spell, ese no es el que lanzara solo es la descripcion del spell, VOCATION es la vocacion ID que tendra el spell
    y LVL es el nivel minimo para pedirlo

    Ok continuamos.....      Vamos a data/npc    y copiamos cualquier npc y renombran esto  Mythical Spells.xml
    y pegan esto dentro:  

    Código:
    <?xml version="1.0"?>
    <npc name="Mythical Spell" script="data/npc/scripts/Spells.lua" walkinterval="50000" floorchange="0">
       <health now="100" max="100"/>
       <look type="129" head="95" body="116" legs="121" feet="115" addons="3"/>
       <parameters>
          <parameter key="message_greet" value="Hello |PLAYERNAME|.I have many {spells} to sell for you! {trade}" />
       </parameters>
    </npc>

    y listo . pruebenlo y me dicen que onda  Very Happy
    Imagen Explicativa escribió:Imagen Explicativa: [NPC] NPC DE SPELLS POR TRADE Tibiaf10
    Version del Scripts: TFs 0.3.7



    Última edición por [Admin] God Maya el Mar Abr 19, 2022 6:19 pm, editado 1 vez (Razón : en la proxima usar las etiquetas code para mejorar la presentacion del tema)

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).