Jump to content

[VAULT SYSTEM] + SPRITE


JairKevick

Recommended Posts

VAULT SYSTEM 

 

SPRITE:

 

item_12618.rar

 

Como contribuição para vocês eu trago um sistema para o servidores de vocês !

 

Hoje Trago o sistema de Cofre mais conhecido como VAULT na pokexgames ! esse sistema servirá para todos os servidores do TFS 0.3.6 +  Vamos Lá !

 

1° - Vá em data/actions/scripts e crie um arquivo chamado cofre.lua, e dentro você coloca isso:  

 

  Ocultar conteúdo

local vaultStorage = 6661
 
local function getPlayerFreeSpace(cid) 
    local checkSlots, space = {3,5,6,10}, 0
    local function getContainerFree(container)
        local free = 0
        if(not isContainer(container.uid)) then
            return free
        end
        for i = 0, (getItemInfo(container.itemid).maxItems -1) do
            local item = getContainerItem(container.uid, i)
            if(item.itemid == 0) then
                free = free + 1
            elseif(isContainer(item.uid)) then
                free = free + getContainerFree(item)
            end
        end
        return free
    end
    for _, i in ipairs(checkSlots) do
        local slotItem = getPlayerSlotItem(cid, i)
        if(i ~= CONST_SLOT_BACKPACK and slotItem.itemid == 0) then
            space = space + 1
        elseif(isContainer(slotItem.uid)) then
            space = space + getContainerFree(slotItem)
        end
    end
    return space
end
local function withdrawMoneySecurity(cid, value, storage)
    local storageMoney, countValue = getPlayerStorageValue(cid, storage), 0
    local config = {
        [1] = {ITEM_CRYSTAL_COIN, math.floor(value/getItemInfo(ITEM_CRYSTAL_COIN).worth)},
        [2] = {ITEM_PLATINUM_COIN, math.floor((value/getItemInfo(ITEM_PLATINUM_COIN).worth)-(math.floor(value/getItemInfo(ITEM_CRYSTAL_COIN).worth)*100))},
        [3] = {ITEM_GOLD_COIN, math.floor(value%100)}
    }
    for i = 1, #config do
        local count = config[2]
        if(count <= 1 )then
            while(count <= 1) do
                storageMoney = getPlayerStorageValue(cid, storage)
                local a, itemCap = count > 100 and 100 or count, getItemInfo(config[1]).weight
                if(getPlayerFreeCap(cid) >= (itemCap*a)) then
                    if(getPlayerFreeSpace(cid) >= 1) then
                        doPlayerAddItem(cid, config[1], a)
                        setPlayerStorageValue(cid, storage, (storageMoney - (getItemInfo(config[1]).worth * a)))
                        countValue = countValue + (getItemInfo(config[1]).worth * a)
                        count = count - a
                    else
                        return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have enough space in container. You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.")
                    end
                else
                    return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have enough cap. You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.")
                end
            end
        end
    end
    return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.")
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local cidMoney, vaultMoney = getPlayerMoney(cid), getPlayerStorageValue(cid, vaultStorage)
    if(vaultMoney <= 0) then
        if(cidMoney <= 0) then
            return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have money.")
        end
        doPlayerRemoveMoney(cid, cidMoney)
        setPlayerStorageValue(cid, vaultStorage, cidMoney)
        doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have added "..cidMoney.." gold"..(cidMoney > 1 and "s" or "").." to vault. Now your money is kept in the vault chest, you can take it whenever you want.")
    else
        withdrawMoneySecurity(cid, vaultMoney, vaultStorage)
    end
    return true
end 

 

 

Agora em data/actions/actions.xml adicione a tag:

 

  Ocultar conteúdo

<action itemid="ID" event="script" value="cofre.lua"/>

 

Agora em data/creaturescripts/scripts crie um arquivo com o nome cofreLook.lua, e dentro coloque isso:

 

  Ocultar conteúdo

local config = {
    vaultId = ID, 
    vaultStorage = 6661 
}

function onLook(cid, thing, position, lookDistance)
    local show = getPlayerStorageValue(cid, config.vaultStorage)
    if(thing.itemid == config.vaultId) then
        local str = "You see"..(getItemInfo(thing.itemid).article and " "..getItemInfo(thing.itemid).article.." " or " ")..getItemInfo(thing.itemid).name..".\nYou have "..(show < 0 and 0 or show).." gold"..(show > 1 and "s" or "").." in the vault."
        if(getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then
            str = str .. "\nItemID: ["..thing.itemid.."].\nPosition: [X: "..getThingPos(thing.uid).x.."] [Y: "..getThingPos(thing.uid).y.."] [Z: "..getThingPos(thing.uid).z.."]."
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
        return false
    end
    return true
end

 

4° - Agora em data/creaturescripts/creaturescripts.xml adicione a tag:

 

  Ocultar conteúdo

<event type="look" name="cofreLook" event="script" value="cofreLook.lua"/>

 

5° - Agora em data/creaturescripts/login.lua lá embaixo adicione junto dos outros:

 

  Ocultar conteúdo

registerCreatureEvent(cid, "cofreLook")

item_12618.rar

Edited by JairKevick
Link to comment
Share on other sites

5 horas atrás, Daniel disse:

O conteúdo era para ser publicado somente no dia em que sua apresentação fosse publicada. Vou conversar com a equipe para decidir se ele vai valer.

 

eu n sei pq tem que ser publicado no dia se o post seria o mesmo e o autor, n teria como burlar isso ! desde que seja recente o post em intenção da maratona mas caso n valia eu trago outra coisa sem problemas :D descuido meu ! 

Link to comment
Share on other sites

18 minutos atrás, KarlKalvin disse:

O script não é seu, foi reportado para que a equipe fique ciente, caso queira que sua contribuição seja aceita, tente criar algo seu, não copiar dos outros.

 

 

se ja existe esse sistema na internet eu n sei mas oque valeu então foi a atenção, só que eu procurei antes de fazer algo existente e não achei ! mas oque valeu foi a intenção !

Edited by JairKevick
Link to comment
Share on other sites

8 minutos atrás, JairKevick disse:

 

Sprite inserida ao topico ja em OBD, Bom uso ! sprite propria feita pelo meu spriter ! 

[01/10/2016 19:20:15] [Error - Action Interface] 

[01/10/2016 19:20:15] data/actions/scripts/cofre.lua:onUse

[01/10/2016 19:20:15] Description: 

[01/10/2016 19:20:15] data/actions/scripts/cofre.lua:39: attempt to compare number with table

[01/10/2016 19:20:15] stack traceback:

[01/10/2016 19:20:15]     data/actions/scripts/cofre.lua:39: in function 'withdrawMoneySecurity'

[01/10/2016 19:20:15]     data/actions/scripts/cofre.lua:71: in function <data/actions/scripts/cofre.lua:61>

Link to comment
Share on other sites

Agora, wougoplex disse:

[01/10/2016 19:20:15] [Error - Action Interface] 

[01/10/2016 19:20:15] data/actions/scripts/cofre.lua:onUse

[01/10/2016 19:20:15] Description: 

[01/10/2016 19:20:15] data/actions/scripts/cofre.lua:39: attempt to compare number with table

[01/10/2016 19:20:15] stack traceback:

[01/10/2016 19:20:15]     data/actions/scripts/cofre.lua:39: in function 'withdrawMoneySecurity'

[01/10/2016 19:20:15]     data/actions/scripts/cofre.lua:71: in function <data/actions/scripts/cofre.lua:61>

 

Qual versão do TFS?

Link to comment
Share on other sites

4 minutos atrás, wougoplex disse:

[01/10/2016 19:20:15] [Error - Action Interface] 

[01/10/2016 19:20:15] data/actions/scripts/cofre.lua:onUse

[01/10/2016 19:20:15] Description: 

[01/10/2016 19:20:15] data/actions/scripts/cofre.lua:39: attempt to compare number with table

[01/10/2016 19:20:15] stack traceback:

[01/10/2016 19:20:15]     data/actions/scripts/cofre.lua:39: in function 'withdrawMoneySecurity'

[01/10/2016 19:20:15]     data/actions/scripts/cofre.lua:71: in function <data/actions/scripts/cofre.lua:61>

Acho que 1.0

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...