• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] NPC Reseter y Look​ reset player

    Compartir:

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

    1default [Sistema] NPC Reseter y Look​ reset player el Lun Oct 01, 2018 12:18 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Hola usuarios de tibiaface


    Bueno este es una npc para servidores 999x donde necesitan que sus player hagan reset, bueno este npc resetea el nivel del player cuando llega al limite de level fijado simple no hay cosa del otro mundo bueno sin mas preangulo aqui le dejo el npc y el look reset player

    nos vamos a data\npc\scripts y creamos un archivo llamado reset.lua y pegamos dentro

    Código:

    --
    -- config
    local minlevel = 3000 -- level to reset
    local minlevel_vip = 2500 --  level for VIP
    local price = 100000 --Price of reset
    local newlevel = 10 -- level after reset
    local newexp = 9300 -- Exp after reset
    -- end config
     
    function addReset(cid)
        return setPlayerStorageValue(cid, 36874, getResets(cid) + 1)
    end
     
    function getResets(cid)
        return math.max(0, getPlayerStorageValue(cid, 36874))
    end
     
    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
     
        if msgcontains(msg, 'reset') then
            selfSay('Voce aceita o reset? se voce confirmar tera que deslogar para que o reset tenha efeito. voce tera que pagar a quantia de '..price..' GP para o reset.', cid)
            talkState[cid] = 1
        elseif(msgcontains(msg, 'yes') and talkState[cid] == 1) then
            if getPlayerMoney(cid) < price then
                selfSay('You must pay '..price..' gold coins to reset.', cid)
            elseif getPlayerLevel(cid) < (vip.hasVip(cid) and minlevel_vip or minlevel) then
                selfSay('Voce precisa ter no minimo level '.. minlevel ..' para o reset.', cid)
            else
                doPlayerRemoveMoney(cid,price)
                addReset(cid)
                playerid = getPlayerGUID(cid)
                doRemoveCreature(cid)
                db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")
            end
            talkState[cid] = 0
        elseif msgcontains(msg, 'no') and isInArray({1}, talkState[cid]) then
            talkState[cid] = 0
            selfSay('Yes', cid)
        elseif msgcontains(msg, 'resets') then
            selfSay('You Have '..getResets(cid)..' reset(s).', cid)
        end
     
        return true
    end
     
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())

    nos vamos a data\npc y creamos un archivo llamado reset.xml y pegamos dentro

    Código:
    <?xml version="1.0"?>
    <npc name="Reseter" script="data/npc/scripts/reset.lua" walkinterval="0" floorchange="0">
    <health now="100" max="100"/>
    <look type="133" head="10" body="122" legs="19" feet="10"/>
    <parameters>
    <parameter key="message_greet" value="Hello, |PLAYERNAME|. for reset say {reset}, or you wanna see how many resets you have say {resets}."/>
    </parameters>
    </npc>

    ahora nos vamos a data/creaturescript/scripts creamos un archivo llamado resetlook.lua y pegamos dentro

    Código:
    function onLook(cid, thing, position, lookDistance)
    if isPlayer(thing.uid) then
    doPlayerSetSpecialDescription(thing.uid, (getPlayerSex(thing.uid) == 0 and ".\nShe" or ".\nHe") .." has "..math.max(0, getPlayerStorageValue(thing.uid, 36874)).." resets")
    return true
    end
    return true
    end

    registramos en login.lua

    Código:
    registerCreatureEvent(cid, 'ResetLook')

    Ahora nos vamos a data/creaturescript y agregamos esta tag

    Código:
    <event type="look" name="ResetLook" event="script"  value="resetlook.lua"/>

    creditos: Stewie



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

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