Ir para conteúdo
  • 0

Como Botar Essa Talkaction Para Vip?


Leoxtibia

Pergunta

Alguém aí poderia me tirar essa dúvida? Como eu faço para botar essa talkaction para vip (uso vip system by account v 1.0 Kydrai):

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, 'You already have ' .. limit .. ' autolooting items.')	    end	    local item = tonumber(rst)	    if not item then		    item = getItemIdByName(rst, false)		    if not item then			    return doPlayerSendCancel(cid, 'not valid item.')		    end	    end	    if not allow_container and isItemContainer(item) then		    return doPlayerSendCancel(cid, 'this item can not be autolooted.')	    end	    local attrs = getItemInfo(item)	    if not attrs then		    return doPlayerSendCancel(cid, 'not valid item.')	    elseif not attrs.movable or not attrs.pickupable then		    return doPlayerSendCancel(cid, 'this item can not be autolooted.')	    end	    if isInArray(list, item) then		    return doPlayerSendCancel(cid, 'already added.')	    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) .. '<< has been added to the autoloot list.')    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, 'You dont have any item added.')	    end	    if (#list >= limit) then		    return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.')	    end	    local item = tonumber(rst)	    if not item then		    item = getItemIdByName(rst, false)		    if not item then			    return doPlayerSendCancel(cid, 'not valid item.')		    end	    end	    if not isInArray(list, item) then		    return doPlayerSendCancel(cid, 'This item is not in the list.')	    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) .. '<< removed from the autoloot list.')    end		    return trueend

 

Link do tópico: http://www.xtibia.com/forum/topic/164233-auto-loot/

Desde já, agradeço e Rep+ quem ajudar =P

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
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)
if getPlayerStorageValue(15001) == 1 then
   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
else
doPlayerSendTextMessage(cid,22,"Voce precisa ser vip.")
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, 'You already have ' .. limit .. ' autolooting items.')
       end
       local item = tonumber(rst)
       if not item then
           item = getItemIdByName(rst, false)
           if not item then
               return doPlayerSendCancel(cid, 'not valid item.')
           end
       end
       if not allow_container and isItemContainer(item) then
           return doPlayerSendCancel(cid, 'this item can not be autolooted.')
       end
       local attrs = getItemInfo(item)
       if not attrs then
           return doPlayerSendCancel(cid, 'not valid item.')
       elseif not attrs.movable or not attrs.pickupable then
           return doPlayerSendCancel(cid, 'this item can not be autolooted.')
       end
       if isInArray(list, item) then
           return doPlayerSendCancel(cid, 'already added.')
       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) .. '<< has been added to the autoloot list.')
   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, 'You dont have any item added.')
       end
       if (#list >= limit) then
           return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.')
       end
       local item = tonumber(rst)
       if not item then
           item = getItemIdByName(rst, false)
           if not item then
               return doPlayerSendCancel(cid, 'not valid item.')
           end
       end
       if not isInArray(list, item) then
           return doPlayerSendCancel(cid, 'This item is not in the list.')
       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) .. '<< removed from the autoloot list.')
   end        
   return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

Vlw cara por ajudar, jaja eu testo. Vi ali que você tá usando o storage 15001... geralmente nos script pro meu sistema de vip usam isVip(cid) mas não sei como que é kk.. Vo testar aqui..

Link para o comentário
Compartilhar em outros sites

  • 0

Eu abri o script que voce passo que ta usando aí lá tava essa storage, mas se nao der certo aqui vai como vc falo:

 

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)
if isVip(cid) then
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
else
doPlayerSendTextMessage(cid,22,"Voce precisa ser vip.")
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, 'You already have ' .. limit .. ' autolooting items.')
	end
	local item = tonumber(rst)
	if not item then
		item = getItemIdByName(rst, false)
		if not item then
			return doPlayerSendCancel(cid, 'not valid item.')
		end
	end
	if not allow_container and isItemContainer(item) then
		return doPlayerSendCancel(cid, 'this item can not be autolooted.')
	end
	local attrs = getItemInfo(item)
	if not attrs then
		return doPlayerSendCancel(cid, 'not valid item.')
	elseif not attrs.movable or not attrs.pickupable then
		return doPlayerSendCancel(cid, 'this item can not be autolooted.')
	end
	if isInArray(list, item) then
		return doPlayerSendCancel(cid, 'already added.')
	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) .. '<< has been added to the autoloot list.')
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, 'You dont have any item added.')
	end
	if (#list >= limit) then
		return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.')
	end
	local item = tonumber(rst)
	if not item then
		item = getItemIdByName(rst, false)
		if not item then
			return doPlayerSendCancel(cid, 'not valid item.')
		end
	end
	if not isInArray(list, item) then
		return doPlayerSendCancel(cid, 'This item is not in the list.')
	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) .. '<< removed from the autoloot list.')
end		
return true
end

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

  • 0

Lucas, vlw mesmo cara por ta ajudando Rep + logo ^^ Mas o script deu um erro aqui (não foi com relação a permissão de ser VIP nao). Vo te passar outra talkaction para você ver se consegue por so pra Vip usá-la (se alguém puder ajudar aí tbm...)

function onSay(cid, words, param)
    setPlayerStorageValue(cid, 6616, getPlayerStorageValue(cid, 6616) == -1 and 1 or -1)
    doPlayerSendTextMessage(cid, 25, "Auto Loot: " .. (getPlayerStorageValue(cid, 6616) == -1 and "OFF" or "ON"))
    return true
end

Taí o link http://www.xtibia.com/forum/topic/173582-talk-action-auto-gold/ --- É o segundo script do MatheusMkalo.. Se alguém puder ajudar aí...

Link para o comentário
Compartilhar em outros sites

  • 0

function onSay(cid, words, param)
	  if isVip(cid) then
		setPlayerStorageValue(cid, 6616, getPlayerStorageValue(cid, 6616) == -1 and 1 or -1)
		doPlayerSendTextMessage(cid, 25, "Auto Loot: " .. (getPlayerStorageValue(cid, 6616) == -1 and "OFF" or "ON"))
           end
  return true
end

 

Obrigado pelo Rep + :)

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

×
×
  • Criar Novo...