• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    NPC que venda items x premium point

    Compartir:

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

    1NPC que venda items x premium point Empty NPC que venda items x premium point Jue Jun 29, 2023 10:43 am

    Psycho

    Psycho
    Moderador
    Moderador
    Buenas alguien me puede ayudar con este script, necesito que venda los items por premium point, se los agradecería mucho:

    Script:
    Código:

    local keywordHandler = KeywordHandler:new()
    local npcHandler = NpcHandler:new(keywordHandler)
    NpcSystem.parseParameters(npcHandler)
    local talkState = {}
    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 talkState = {}
    local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
    local shopWindow = {}
    local moeda = 36216
    local t = {
     [38740] = {price = 10000}, -- DNA
     [36218] = {price = 7000}, -- beelzemon
     [36219] = {price = 3000}, -- metalgarurumon
     [36220] = {price = 3000}, -- ophanimon
     [36221] = {price = 3000}, -- sakuyamon
     [36222] = {price = 3000}, -- wargreymon
     [36224] = {price = 5000}, -- gankoomon
     [36225] = {price = 4000}, -- cherubimon
     [36226] = {price = 6000}, -- kerpymon
     [36227] = {price = 7000}, -- magnamon
     [36223] = {price = 20000} -- omegamon

        }
          
    local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
      local player = Player(cid)

        if  t[item] and not player:removeItem(moeda, t[item].price) then
              selfSay("You do not have "..t[item].price.." online x-antibody factor exchange ticket.", cid)
                 else
            player:addItem(item)
            selfSay("Here you go.", cid)
           end
        return true
    end
    if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE') or msgcontains(msg, 'troca') or msgcontains(msg, 'TROCA'))then
                for var, ret in pairs(t) do
                    local itemType = ItemType(var)
                    local itemName = itemType:getName()
                        table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = itemName})
                    end
                openShopWindow(cid, shopWindow, onBuy, onSell)
                end
    return true
    end
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())



    AFC By Psycho & DMOT Server
    [Tienes que estar registrado y conectado para ver este vínculo]
    2 participantes
    http://digidarkss.com

    2NPC que venda items x premium point Empty Re: NPC que venda items x premium point Jue Jun 29, 2023 9:11 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    puedes usar este

    Código:

    local keywordHandler = KeywordHandler:new()
    local npcHandler = NpcHandler:new(keywordHandler)
    NpcSystem.parseParameters(npcHandler)
    local talkState, xmsg = {}, {}
     
    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
     

     
    local items = {
        ["thaian sword"] = {cantidad = 100, itemid = 7391}, 
        ["golden helmet"] = {cantidad = 100, itemid = 2471}
    }

    local function getPremiumPoints(cid)
    local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'')
    if(res:getID() == -1) then
    return 0
    end
    local ret = res:getDataInt("premium_points")
    res:free()
    return tonumber(ret)
    end
     
    function creatureSayCallback(cid, type, msg)
        if not npcHandler:isFocused(cid) then
            return false
        end
     
        local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
     
        local x = items[msg:lower()]
     
        if msgcontains(msg, 'buy') then
       
       
            selfSay('Which donate item would you like to buy?', cid)
           
           
            talkState[talkUser] = 2
           
           
        elseif x and talkState[talkUser] >= 1 then
       
       
            selfSay('Do you want to buy 1 '..msg..' for '..x.cantidad..' soul orb?', cid)
           
           
            xmsg[cid] = msg
           
           
            talkState[talkUser] = 3
           
           
        elseif msgcontains(msg, 'yes') and talkState[talkUser] == 3 then
       
       
       
       
            x = items[xmsg[cid]:lower()]
           
           
       
          if getPremiumPoints(cid) >= x.cantidad then
         
           
                selfSay('Here you are, have fun with it.', cid)
               
               
                doPlayerAddItem(cid, x.itemid, 1)
               

           db.executeQuery('UPDATE accounts SET premium_points=premium_points-'..x.cantidad..' WHERE id=' .. getPlayerAccountId(cid))

               
               
         
               
                talkState[talkUser] = 1
            else
                selfSay('You don\'t have enough soul orb.', cid)
                talkState[talkUser] = 1
            end
        elseif msgcontains(msg, 'list') then
            text = 'Donation Items\n'
            for i, x in pairs(items) do
                    text = text .. "\n" .. i .. " - "..x.cantidad.." soul orb"
            end
            doShowTextDialog(cid, 7391, "" .. text)
            talkState[talkUser] = 1
        elseif talkState[talkUser] == 2 then
            selfSay('You can\'t buy this item from me, look in the {list} which items you can buy.', cid)
        else
            selfSay('What? I don\'t understand what you mean with '..msg..'.', cid)
        end
        return true
    end
     
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())


    Código:


    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Riona" script="defaultt.lua" walkinterval="2000" floorchange="0">
      <health now="100" max="100"/>
      <look type="138" head="57" body="59" legs="40" feet="76" addons="0"/>
    <parameters>
          <parameter key="message_greet" value="Hola |PLAYERNAME|.  {list} para comprar items"/>
          <parameter key="message_decline" value="Is |TOTALCOST| gold coins too much for you? Get out of here!"/>
      </parameters>
    </npc>


    post original

    [Tienes que estar registrado y conectado para ver este vínculo]



    NPC que venda items x premium point YNU5B25
    2 participantes
    http://www.tibiaface.com

    3NPC que venda items x premium point Empty Re: NPC que venda items x premium point Vie Jun 30, 2023 8:17 pm

    Psycho

    Psycho
    Moderador
    Moderador
    no funciono!:.



    AFC By Psycho & DMOT Server
    [Tienes que estar registrado y conectado para ver este vínculo]
    2 participantes
    http://digidarkss.com

    4NPC que venda items x premium point Empty Re: NPC que venda items x premium point Sáb Jul 01, 2023 9:48 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Psycho escribió:no funciono!:.

    que error salio o que problema paso



    NPC que venda items x premium point YNU5B25
    2 participantes
    http://www.tibiaface.com

    5NPC que venda items x premium point Empty Re: NPC que venda items x premium point Vie Jul 07, 2023 11:23 pm

    Psycho

    Psycho
    Moderador
    Moderador
    se se podia comprar escribiendo todo, por ejemplo hi - buy - datas - yes, no puedes hacer por shopWindow?



    AFC By Psycho & DMOT Server
    [Tienes que estar registrado y conectado para ver este vínculo]
    2 participantes
    http://digidarkss.com

    6NPC que venda items x premium point Empty Re: NPC que venda items x premium point Jue Jul 13, 2023 10:45 pm

    Psycho

    Psycho
    Moderador
    Moderador
    Solucione lo del npc premium aquí les va por si alguien quiere ponerse un npc que venda cosas con premium point, con znote acc.

    **NPC QUE VENDA X ITEM POR PREMIUM POINTS (ZNOTE ACC)**

    VERSION: TFS 1.2
    DATA: NPC

    Bueno aqui les va el script:
    1º Vamos a lib/player.lua y pegamos esto donde desee (recomendable al final de todo)
    Código:

    function playerSetPoints(player, amount)
        local plural = ''
        db.query("UPDATE `znote_accounts` SET `points` = " .. amount .. " WHERE `account_id` = " .. player:getAccountId() .. ' LIMIT 1;')
        if amount > 1 then plural = 's' end
        return true
    end
    function playerAddPoints(player, amount)
        local plural = ''
        db.query("UPDATE `znote_accounts` SET `points` = `points` + " .. amount .. " WHERE `account_id` = " .. player:getAccountId() .. ' LIMIT 1;')
        if amount > 1 then plural = 's' end
        return true
    end
    function playerRemovePoints(player, amount)
        local plural = ''
        db.query("UPDATE `znote_accounts` SET `points` = `points` - " .. amount .. " WHERE `account_id` = " .. player:getAccountId() .. ' LIMIT 1;')
        if amount > 1 then plural = 's' end
        return true
    end
    function playerGetPoints(player)
    local resultId = db.storeQuery("SELECT `points` FROM `znote_accounts` WHERE `account_id` = " .. player:getAccountId())
        if resultId ~= false then
        local pointsId = result.getNumber(resultId, "points")
        result.free(resultId)
        return pointsId
    end
        return 0
    end

    2º Vamos al npc: data/npc, creamos un xml para el npc.
    Código:

    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Nombre NPC" script="premium.lua" walkinterval="0" floorchange="0">
     <health now="100" max="100" />
     <look type="160" head="39" body="39" legs="39" feet="76" addons="0" />
    </npc>

    3º Creamos el script: Data/npc/scripts (premium.lua)
    Código:

     local keywordHandler = KeywordHandler:new()
                local npcHandler = NpcHandler:new(keywordHandler)
                NpcSystem.parseParameters(npcHandler)
                local talkState = {}
                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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
                local shopWindow = {}
                local t = {
                [2302] = {price = 5, price2 = 0}, -- [ITEMID TO SELL] = {Buy cost (0 = not buyable), sell cost (0 = not sellable)}
                [2303] = {price = 10, price2 = 0},          
     [2304] = {price = 15, price2 = 0},
     [2160] = {price = 1, price2 = 0},
     [26724] = {price = 3, price2 = 0}
     
                }
              
                local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
     local player = Player(cid)
     
                if playerGetPoints(player) < t[item].price*amount then
                selfSay("Tu no tienes premium points.", cid)
                else
                player:addItem(item)
                playerRemovePoints(cid, t[item].price*amount)            
                selfSay("Tu no tienes  " .. amount .. "x " .. itemName .. " por " .. t[item].price*amount .. " Premium points.", cid)
                end
                return true
                end
                local onSell = function(cid, item, subType, amount)
                player:removeItem(item, amount)
                playerAddPoints(cid, t[item].price2*amount)
                
                selfSay("Tu vendiste " .. amount .. "x " .. itemName .. " por " .. t[item].price*amount .. " Premium points.", cid)
                --selfSay("Aqui esta!", cid)
                return true
                end
                if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then
                for var, ret in pairs(t) do
                table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = ret.price2, name = itemName})
                end
                openShopWindow(cid, shopWindow, onBuy, onSell) end
                return true
                end
                npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
                npcHandler:addModule(FocusModule:new())

    Si desea agregar mas items solo tienes que agregar una lina mas:
    [2160] = {price = 1, price2 = 0},
    [26724] = {price = 3, price2 = 0}


    el ultimo debe quedar sin la coma (,).

    Y LISTO RECUERDEN QUE ESTO ES PARA LOS SERVIDORES CON ZNOTE ACC



    AFC By Psycho & DMOT Server
    [Tienes que estar registrado y conectado para ver este vínculo]
    2 participantes
    http://digidarkss.com

    7NPC que venda items x premium point Empty Re: NPC que venda items x premium point Sáb Jul 15, 2023 2:38 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Psycho escribió:Solucione lo del npc premium aquí les va por si alguien quiere ponerse un npc que venda cosas con premium point, con znote acc.

    **NPC QUE VENDA X ITEM POR PREMIUM POINTS (ZNOTE ACC)**

    VERSION: TFS 1.2
    DATA: NPC

    Bueno aqui les va el script:
    1º Vamos a lib/player.lua y pegamos esto donde desee (recomendable al final de todo)
    Código:

    function playerSetPoints(player, amount)
        local plural = ''
        db.query("UPDATE `znote_accounts` SET `points` = " .. amount .. " WHERE `account_id` = " .. player:getAccountId() .. ' LIMIT 1;')
        if amount > 1 then plural = 's' end
        return true
    end
    function playerAddPoints(player, amount)
        local plural = ''
        db.query("UPDATE `znote_accounts` SET `points` = `points` + " .. amount .. " WHERE `account_id` = " .. player:getAccountId() .. ' LIMIT 1;')
        if amount > 1 then plural = 's' end
        return true
    end
    function playerRemovePoints(player, amount)
        local plural = ''
        db.query("UPDATE `znote_accounts` SET `points` = `points` - " .. amount .. " WHERE `account_id` = " .. player:getAccountId() .. ' LIMIT 1;')
        if amount > 1 then plural = 's' end
        return true
    end
    function playerGetPoints(player)
    local resultId = db.storeQuery("SELECT `points` FROM `znote_accounts` WHERE `account_id` = " .. player:getAccountId())
        if resultId ~= false then
        local pointsId = result.getNumber(resultId, "points")
        result.free(resultId)
        return pointsId
    end
        return 0
    end

    2º Vamos al npc: data/npc, creamos un xml para el npc.
    Código:

    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Nombre NPC" script="premium.lua" walkinterval="0" floorchange="0">
     <health now="100" max="100" />
     <look type="160" head="39" body="39" legs="39" feet="76" addons="0" />
    </npc>

    3º Creamos el script: Data/npc/scripts (premium.lua)
    Código:

     local keywordHandler = KeywordHandler:new()
                local npcHandler = NpcHandler:new(keywordHandler)
                NpcSystem.parseParameters(npcHandler)
                local talkState = {}
                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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
                local shopWindow = {}
                local t = {
                [2302] = {price = 5, price2 = 0}, -- [ITEMID TO SELL] = {Buy cost (0 = not buyable), sell cost (0 = not sellable)}
                [2303] = {price = 10, price2 = 0},          
     [2304] = {price = 15, price2 = 0},
     [2160] = {price = 1, price2 = 0},
     [26724] = {price = 3, price2 = 0}
     
                }
              
                local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
     local player = Player(cid)
     
                if playerGetPoints(player) < t[item].price*amount then
                selfSay("Tu no tienes premium points.", cid)
                else
                player:addItem(item)
                playerRemovePoints(cid, t[item].price*amount)            
                selfSay("Tu no tienes  " .. amount .. "x " .. itemName .. " por " .. t[item].price*amount .. " Premium points.", cid)
                end
                return true
                end
                local onSell = function(cid, item, subType, amount)
                player:removeItem(item, amount)
                playerAddPoints(cid, t[item].price2*amount)
                
                selfSay("Tu vendiste " .. amount .. "x " .. itemName .. " por " .. t[item].price*amount .. " Premium points.", cid)
                --selfSay("Aqui esta!", cid)
                return true
                end
                if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then
                for var, ret in pairs(t) do
                table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = ret.price2, name = itemName})
                end
                openShopWindow(cid, shopWindow, onBuy, onSell) end
                return true
                end
                npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
                npcHandler:addModule(FocusModule:new())

    Si desea agregar mas items solo tienes que agregar una lina mas:
    [2160] = {price = 1, price2 = 0},
    [26724] = {price = 3, price2 = 0}


    el ultimo debe quedar sin la coma (,).

    Y LISTO RECUERDEN QUE ESTO ES PARA LOS SERVIDORES CON ZNOTE ACC

    pero aqui hay que dejar un poco de infomacion si no tienes dinero o monedas del juego no podra comprar ?



    NPC que venda items x premium point YNU5B25
    2 participantes
    http://www.tibiaface.com

    8NPC que venda items x premium point Empty Re: NPC que venda items x premium point Mar Jul 18, 2023 9:02 pm

    Psycho

    Psycho
    Moderador
    Moderador
    cierto pero quien anda sin dinero del juego xd!..
    - Deben tener dinero para poder comprar pero no se les gasta!...
    Solo consume los puntos de cash shop!...



    AFC By Psycho & DMOT Server
    [Tienes que estar registrado y conectado para ver este vínculo]
    2 participantes
    http://digidarkss.com

    Contenido patrocinado


    2 participantes

    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).