• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [NPC] Dicer Npc (Tfs 1.xx)

    Compartir:

    Responder al tema

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

    1default [NPC] Dicer Npc (Tfs 1.xx) el Jue Feb 22, 2018 2:24 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Hola usuarios de tibiaface


    Bueno aqui le vengo a dejar un npc de dados que siginifica que ustedes apuestan dindero al mayor o menor osea el dado esta compuesto por los numeros 1,2,3,4,5,6

    los numero menores son = 1, 2, 3 o en ingles (low)

    los numero mayores son = 4, 5, 6 o en ingles (high)

    o tambien le pueden decir a al npc cualquier numero del 1 al 6

    configuracion del npc:

    dentro del archivo del npc encontramos estas dos lineas

    Código:
    playerPosition = Position(408, 199, 7), ---posicion del player donde estara parado

    dicerCounter = Position(409, 198, 7), -- posicion donde se colocara el dinero

    listo con eso lo tenemos configurado nuestro npc

    Ahora nos vamos a instalarlo a nuestro servidor:

    nos vamos a:

    Data/npc/scripts

    copiamos cualquier archivo y renombramos por dicer.lua y pegamos esto dentro

    Código:
    -- written by Nekiro#5727 // otland: https://otland.net/members/nekiro.214311/
     
    local config = {
        bet = {
            min = 30000, -- gold coins // 30k
            max = 6000000,
            win = 120, -- 120% high/low
            winNum = 300, -- 300% numbers
        },
     
        playerPosition = Position(408, 199, 7), -- player must stay on this position to talk with npc
        dicerCounter = Position(409, 198, 7), -- counter position
    }
     
    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()
        local tile = Tile(config.playerPosition)
        if tile then
            local player = tile:getTopCreature()
            if not player then
                npcHandler.focuses = {}
                npcHandler:updateFocus()
            end
        end
    end
     
    local function getCoinValue(id)
        if id == 2160 then
            return 10000
        elseif id == 2152 then
            return 100
        elseif id == 2148 then
            return 1
        end
        return 0
    end
     
    local function getBetValue()
        local value = 0
        local tile = Tile(config.dicerCounter)
        if tile then
            local items = tile:getItems()
            if not items or #items == 0 then
                return 0
            end
     
            local tempMoney = {}
            for _, item in pairs(items) do
                if table.contains({2160, 2152, 2148}, item:getId()) then
                    value = value + getCoinValue(item:getId()) * item:getCount()
                    tempMoney[#tempMoney + 1] = item
                end
            end
     
            if value >= config.bet.min and value <= config.bet.max then -- valid bet
                for _, item in pairs(tempMoney) do
                    item:remove()
                end
                return value
            end
        end
        return nil
    end
     
    local function createMoney(money)
        local table = {}
        local currentMoney = money
        local crystals = math.floor(currentMoney / 10000)
        currentMoney = currentMoney - crystals * 10000
        while crystals > 0 do
            local count = math.min(100, crystals)
            table[#table + 1] = {2160, count}
            crystals = crystals - count
        end
     
        local platinums = math.floor(currentMoney / 100)
        if platinums ~= 0 then
            table[#table + 1] = {2152, platinums}
            currentMoney = currentMoney - platinums * 100
        end
     
        if currentMoney ~= 0 then
            table[#table + 1] = {2148, currentMoney}
        end
        return table
    end
     
    local function greetCallback(cid)
        local player = Player(cid)
        if player:getPosition() ~= config.playerPosition then
            npcHandler:say("If you want to play with me please come near me.", cid)
            return false
        end
        return true
    end
     
    local function creatureSayCallback(cid, type, msg)
        if not npcHandler:isFocused(cid) then
            return false
        end
     
        local player = Player(cid)
        if player:getPosition() ~= config.playerPosition then
            npcHandler:unGreet(cid)
            return false
        end
     
        local thisNpc = Npc(getNpcCid())
        if table.contains({"low", "high", "h", "l", "1", "2", "3", "4", "5", "6"}, msg) then
            local bet = getBetValue()
            if not bet then
                npcHandler:say("Your bet is higher or lower than the max (".. config.bet.max ..") or min (".. config.bet.min ..") bet.", cid)
                npcHandler.topic[cid] = 0
                return true
            end
     
            local number = math.random(1, 6)
            thisNpc:say(thisNpc:getName() .. " rolled a ".. number .. ".", TALKTYPE_MONSTER_SAY)
            thisNpc:getPosition():sendMagicEffect(CONST_ME_CRAPS)
            if table.contains({"low", "l"}, msg) then
                if table.contains({1, 2, 3}, number) then
                    local wonMoney = bet * (config.bet.win / 100)
                    npcHandler:say("Congratulations, you won! Here's your (".. wonMoney ..") gold coins.", cid)
                    config.dicerCounter:sendMagicEffect(math.random(29, 31))
                    for _, coin in pairs(createMoney(wonMoney)) do
                        Game.createItem(coin[1], coin[2], config.dicerCounter)
                    end
                else
                    npcHandler:say("No luck this time, you lost.", cid)
                end
            elseif table.contains({"high", "h"}, msg) then
                if table.contains({4, 5, 6}, number) then
                    local wonMoney = bet * (config.bet.win / 100)
                    npcHandler:say("Congratulations, you won! Here's your (".. wonMoney ..") gold coins.", cid)
                    config.dicerCounter:sendMagicEffect(math.random(29, 31))
                    for _, coin in pairs(createMoney(wonMoney)) do
                        Game.createItem(coin[1], coin[2], config.dicerCounter)
                    end
                else
                    npcHandler:say("No luck this time, you lost.", cid)
                end
            elseif table.contains({"1", "2", "3", "4", "5", "6"}, msg) then
                if number == tonumber(msg) then
                    local wonMoney = bet * (config.bet.winNum / 100)
                    npcHandler:say("Congratulations, you won! Here's your (".. wonMoney ..") gold coins.", cid)
                    config.dicerCounter:sendMagicEffect(math.random(29, 31))
                    for _, coin in pairs(createMoney(wonMoney)) do
                        Game.createItem(coin[1], coin[2], config.dicerCounter)
                    end
                else
                    npcHandler:say("No luck this time, you lost.", cid)
                end
            end
        end
        return true
    end
     
    npcHandler:setMessage(MESSAGE_GREET, "Welcome to my cassino! I'm offering {high/low} and {numbers}, to start just put your {money} on {counter} and say {number} or {high/low}.")
    npcHandler:setMessage(MESSAGE_FAREWELL, 'Good bye.')
    npcHandler:setMessage(MESSAGE_WALKAWAY, 'Good bye.')
     
    npcHandler:setCallback(CALLBACK_GREET, greetCallback)
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())
     

    Ahora nos vamos a:

    Data/Npc

    copiamos cualquier archivo y renombramos por dicer.xml y pegamos esto dentro

    Código:
    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Dicer" script="dicer.lua" walkinterval="0" floorchange="0">
      <health now="100" max="100"/>
      <look type="540"/>
    <parameters>
       <parameter key="module_shop" value="1" />
       </parameters>

    </npc>

    y listo


    creditos: Nekiro



    Ver perfil de usuario http://www.tibiaface.com

    2default Re: [NPC] Dicer Npc (Tfs 1.xx) el Vie Feb 23, 2018 11:29 pm

    hermano me da ese error y le edited hasta la posicion y nada


    [23:26:28.974] [Error - NpcScript Interface]
    [23:26:28.984] data/npc/scripts/dicer.lua
    [23:26:28.992] Description:
    [23:26:28.999] data/npc/scripts/dicer.lua:11: attempt to call global 'Position' (a nil value)
    [23:26:29.022] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/dicer.lua

    Ver perfil de usuario

    3default Re: [NPC] Dicer Npc (Tfs 1.xx) el Sáb Feb 24, 2018 11:38 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:hermano me da ese error y le edited hasta la posicion y nada


    [23:26:28.974] [Error - NpcScript Interface]
    [23:26:28.984] data/npc/scripts/dicer.lua
    [23:26:28.992] Description:
    [23:26:28.999] data/npc/scripts/dicer.lua:11: attempt to call global 'Position' (a nil value)
    [23:26:29.022] [Warning - NpcEventsNpcEvents] Cannot load script: data/npc/scripts/dicer.lua

    estas usando que version de ot que protocolo



    Ver perfil de usuario http://www.tibiaface.com

    4default Re: [NPC] Dicer Npc (Tfs 1.xx) el Sáb Feb 24, 2018 1:04 pm

    8.6 server evolution... con tfs de aqui!

    Ver perfil de usuario

    5default Re: [NPC] Dicer Npc (Tfs 1.xx) el Dom Feb 25, 2018 10:25 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:8.6 server evolution... con tfs de aqui!


    SI LEE el titulo dice para tfs 1.xx en adelante



    Ver perfil de usuario http://www.tibiaface.com

    6default Re: [NPC] Dicer Npc (Tfs 1.xx) el Dom Sep 23, 2018 4:58 pm

    guamiro

    guamiro
    Nuevo Miembro
    Nuevo Miembro
    Excelente NPC, sirve de maravilla!

    Ver perfil de usuario

    7default Re: [NPC] Dicer Npc (Tfs 1.xx) el Dom Sep 23, 2018 8:46 pm

    Erickguzma

    Erickguzma
    Miembro
    Miembro
    te la rifaste, mas aportes de estos <3

    Ver perfil de usuario

    Contenido patrocinado


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

    Responder al tema

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