Ir para conteúdo

Auto loot system traduzido para o potugues


XkluivertX

Posts Recomendados

Ola galera tava sem fazer nada ai meu amigo pergunto se dava pra traduzir alguns scripts para portugues ai eu falei da sim ai ele me mando o auto loot system ai traduzir e resolvi postar aqui pra todos.

 

 

1:Va em Data/Talkactions/Scripts e crie um aquivo lua com nome de "aloot" e ponho isso dentro.

 

 

local stor, limit = 7575, 5 --storage, limit to add.

 

local allow_container = false --empty! not looted with items, atleast for now.

 

function onSay(cid, words, param)

local expl = param:explode(':')

local action, rst = expl[1], expl[2]

if (action:lower() == 'check') then

local infos, list = getPlayerStorageValue(cid, stor), {}

if (infos ~= -1) then

list = tostring(infos):explode(',')

end

local txt = 'Autoloot List:\n'

if (#list > 0) then

for k, id in ipairs(list) do

id = id:gsub('_', '')

if tonumber(id) then

txt = txt .. getItemNameById(tonumber(id)) .. ((k < #list) and '\n' or '')

end

end

else

txt = 'Empty'

end

doPlayerPopupFYI(cid, txt)

elseif (action:lower() == 'add') then

local infos, list = getPlayerStorageValue(cid, stor), {}

if (infos ~= -1) then

list = tostring(infos):gsub('_', ''):explode(',')

end

if (#list >= limit) then

return doPlayerSendCancel(cid, 'Você já tem ' .. limit .. ' autolooting itens.')

end

local item = tonumber(rst)

if not item then

item = getItemIdByName(rst, false)

if not item then

return doPlayerSendCancel(cid, 'Esse item nao existe.')

end

end

if not allow_container and isItemContainer(item) then

return doPlayerSendCancel(cid, 'Este item não pode se adicionado no autoloot lista.')

end

local attrs = getItemInfo(item)

if not attrs then

return doPlayerSendCancel(cid, 'Esse item nao existe.')

elseif not attrs.movable or not attrs.pickupable then

return doPlayerSendCancel(cid, 'Este item não pode se adicionado no autoloot lista.')

end

if isInArray(list, item) then

return doPlayerSendCancel(cid, 'Ja foi adicionado.')

end

table.insert(list, tostring(item))

local new = ''

for v, id in ipairs(list) do

new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '')

end

doPlayerSetStorageValue(cid, stor, tostring(new))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< Foi adicionado à lista autoloot.')

elseif (action:lower() == 'remove') then

local infos, list = getPlayerStorageValue(cid, stor), {}

if (infos ~= -1) then

list = tostring(infos):gsub('_', ''):explode(',')

end

if (#list == 0) then

return doPlayerSendCancel(cid, 'Você não tem nenhum item adicionado.')

end

local item = tonumber(rst)

if not item then

item = getItemIdByName(rst, false)

if not item then

return doPlayerSendCancel(cid, 'Este item não existi.')

end

end

if not isInArray(list, item) then

return doPlayerSendCancel(cid, 'Este item não está na lista.')

end

local new = ''

for v, id in ipairs(list) do

if (tonumber(id) ~= item) then

new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '')

end

end

doPlayerSetStorageValue(cid, stor, tostring(new))

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< Removido da lista autoloot.')

end

return true

end

 

 

 

2: Va em Data/Talkactions e bote la na parte do playrs isso.

 

 

<talkaction words="/aloot" hide="yes" event="script" value="aloot.lua"/>

 

 

 

Ei galera desculpa esqueci de por a parte de creaturescripts.

 

3: Va em Data/Creaturescripts/Scripts fala um arquivo lua com nome de aloot e ponha isso la dentro.

 

 

function onLogin(cid)

registerCreatureEvent(cid, "aloot_kill")

return true

end

 

local stor = 7575

 

function autoloot(cid, target, pos)

local function doStack(cid, itemid, new)

local count = getPlayerItemCount(cid, itemid)

if (count > 100) then

count = count - math.floor(count / 100) * 100

end

local newCount = count + new

if (count ~= 0) then

local find = getPlayerItemById(cid, true, itemid, count).uid

if (find > 0) then

doRemoveItem(find)

else

newCount = new

end

end

local item = doCreateItemEx(itemid, newCount)

doPlayerAddItemEx(cid, item, true)

end

 

local function scanContainer(cid, uid, list)

for k = (getContainerSize(uid) - 1), 0, -1 do

local tmp = getContainerItem(uid, k)

if (isInArray(list, tmp.itemid)) then

if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then

doStack(cid, tmp.itemid, tmp.type)

else

local item = doCreateItemEx(tmp.itemid, tmp.type)

doPlayerAddItemEx(cid, item, true)

end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.')

doRemoveItem(tmp.uid)

elseif isContainer(tmp.uid) then

scanContainer(cid, tmp.uid, list)

end

end

end

 

local items = {}

for i = getTileInfo(pos).items, 1, -1 do

pos.stackpos = i

table.insert(items, getThingFromPos(pos))

end

 

if (#items == 0) then

return

end

 

local corpse = -1

for _, item in ipairs(items) do

local name = getItemName(item.uid):lower()

if name:find(target:lower()) then

corpse = item.uid

break

end

end

 

if (corpse ~= -1) and isContainer(corpse) then

scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(','))

end

end

 

function onKill(cid, target, lastHit)

if not isPlayer(target) then

local infos = getPlayerStorageValue(cid, stor)

if (infos == -1) then

return true

end

local list = tostring(infos):explode(',')

if (#list == 0) then

return true

end

addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target))

end

return true

end

 

 

 

 

4: Va em creaturescripts.xml e ponha o seguinte tag:

 

 

 

<event type="login" name="aloot_reg" event="script" value="aloot.lua"/>

 

<event type="kill" name="aloot_kill" event="script" value="aloot.lua"/>

 

 

 

 

 

Se gostarem rep+button_ok.png

Editado por XkluivertX
Link para o comentário
Compartilhar em outros sites

  • 5 months later...
×
×
  • Criar Novo...