Ir para conteúdo
  • Cadastre-se

Mod TFS 0.X [TFS] New Auto Loot Unlimited Edition 2.0


Posts Recomendados

30 minutos atrás, nizin disse:

@Vodkart Deu este erro

Sem título.png

 

acho que na hora de você copiar deve ter faltado algo!

 

[19/12/2020 11:57:54] > Loading new_perfect_autoloot_tfs.xml... done.

 

 

tenta copiar do pastebin:

 

https://pastebin.com/raw/0Xah6UFK

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  • Respostas 56
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

[ + ] Descrição: Autoloot refeito para VERSÃO TFS e adicionado algumas outras funções que estarei explicando ao decorrer do tópico.   [ + ] Se você quer o Autoloot para VERSÃO OTX clica nest

VERSÃO ATUALIZADA, INFORMAÇÕES ESTÃO DO TÓPICO!!   DATA: 16/02/2021

O autoloot para OTX se encontra nesse tópico:    

Posted Images

1 hora atrás, Vodkart disse:

 

acho que na hora de você copiar deve ter faltado algo!

 


[19/12/2020 11:57:54] > Loading new_perfect_autoloot_tfs.xml... done.

 

 

tenta copiar do pastebin:

 

https://pastebin.com/raw/0Xah6UFK

Funcionou! mt obrigado <3 sz 

Link para o post
Compartilhar em outros sites

Agora funcionou perfeitamente, hehe.

 

 

 

 

 

                                                                                                                                                     tumblr_nwmv2z4VEM1ujiquxo1_100.gif.2db64bb36f0f565e68ff2a90cb98f439.gif.59f4c4cf234d2f6906621cac0553a862.gif

https://github.com/italoxxx1

 

Link para o post
Compartilhar em outros sites
15 horas atrás, Vodkart disse:

 

 

 

Estranho, no meu coleta normalmente, por favor testem dessa maneira:

 

  Mostrar conteúdo oculto


<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Perfect Auto Loot" version="1.0" author="Vodkart" contact="none.com" enabled="yes">
<config name="Loot_func"><![CDATA[

info = {
	distro = 1, -- 1 = TFS // 2 = talk modificada
	directory = "data/logs/autoloot",
	Warn_Bp_Slots = 5, -- quando tiver 5 ou menos slots na BP vai avisar o jogador
	Talkaction_delay = 5, -- em segundos // delay para remover e adicionar item
	BlockMonsters = {},
	BlockItemsList = {2123,2515},
	Money_ids = {2148, 2152, 2160}, -- id das moedas do ot
	Max_Slots = {free = 3, premium = 5},
	Storages = {988801, 988802, 988803, 988804, 988805, 988806, 988807}
}


Color_Loot = {
           [0] = {MESSAGE_EVENT_ORANGE, "Orange"},
           [1] = {MESSAGE_STATUS_CONSOLE_BLUE, "Blue"},
           [2] = {MESSAGE_INFO_DESCR, "Green"},
           [3] = {MESSAGE_STATUS_CONSOLE_RED, "Red"},
           [4] = {MESSAGE_STATUS_SMALL, "White"}
}
function getPlayerColorLootMessage(cid)
	return getPlayerStorageValue(cid, info.Storages[5]) <= 0 and 0 or getPlayerStorageValue(cid, info.Storages[5])
end
function isInTable(cid, item)
	for _,i in pairs(getItensFromAutoloot(cid)) do
		if tonumber(i) == tonumber(item) then
			return true
		end
	end
	return false
end
function doremoveItemFromAutoloot(cid, itemid)
    local file, fileContent = io.open(info.directory.."/"..getCreatureName(cid)..".txt", 'r'),{}
    for line in file:lines() do
	 if line ~= "" and tonumber(line) ~= tonumber(itemid) then
             fileContent[#fileContent + 1] = line
    	end
    end
    io.close(file)
    file = io.open(info.directory.."/"..getCreatureName(cid)..".txt", 'w')
    for index, value in ipairs(fileContent) do
    file:write(value..'\n')
    end
    io.close(file)
end
function doAddItemFromAutoloot(cid, itemid)
         if not existsAutoloot(cid) then
            doCreateLootUserName(cid, itemid) return true
         end 
         local file = io.open(info.directory.."/"..getCreatureName(cid)..".txt", "a+")							
         file:write('\n'..itemid)
         file:close()
end
function existsAutoloot(cid)
  local f = io.open(info.directory.."/"..getCreatureName(cid)..".txt", "rb")
  if f then f:close() end
  return f ~= nil
end
function doCreateLootUserName(cid, itemid)
    newFile = io.open(info.directory.."/"..getCreatureName(cid)..".txt", "w+" )
    newFile:write(itemid)
    newFile:close()
end
function getItensFromAutoloot(cid)
  if not existsAutoloot(cid) then return {} end
  lines = {}
  for line in io.lines(info.directory.."/"..getCreatureName(cid)..".txt") do
	  if line ~= "" then
          	lines[#lines + 1] = tonumber(line)
	  end
  end
  return lines
end
function doCleanAutoloot(cid)
return os.remove(info.directory.."/"..getCreatureName(cid)..".txt")
end
function ShowItemsTabble(cid)
	local auto_list = getItensFromAutoloot(cid)	
	local n,str = 0,"[+] Auto Loot Commands [+]\n\n!autoloot item name --> To add ou Remove item from list.\n!autoloot money --> To collect gold automatically.\n!autoloot clear --> To clear the list.\n!autoloot on/off --> To enable or disable the collecting of items in the system.\n!autoloot message --> To enable or disable message from Collect items.\n!autoloot color --> To change Color message in Auto Loot Collect.\n!autoloot warn --> To enable or disable message warning of "..info.Warn_Bp_Slots.." or less slots in the backpack.\n!autoloot deposit --> To enable or disable automatic money deposit at the bank.\n\n[+] Auto Loot Info [+]\n\nSystem: "..(getPlayerStorageValue(cid, info.Storages[1]) <= 0 and "Activated" or "Disabled")..".\nGold Collecting: "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "Disabled")..".\nMessage: "..(getPlayerStorageValue(cid, info.Storages[6]) <= 0 and "Activated" or "Disabled")..".\nColor Message: "..Color_Loot[getPlayerColorLootMessage(cid)][2]..".\nWarn Backpack: "..(getPlayerStorageValue(cid, info.Storages[3]) <= 0 and "Activated" or "Disabled")..".\nAutomatic Gold Deposit: "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "Disabled")..".\nTotal Bank Balance: ["..getPlayerBalance(cid).."]\nMaximum Slots: ["..#auto_list.."/"..(isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free).."]\n\n[+] Auto Loot Slots [+]\n\n"
	if #auto_list > 0 then
		for i = 1, #auto_list do
			n = n + 1
			str = str.."Slot "..n.." - "..getItemNameById(auto_list[i]).."\n"
		end
	end
	return doPlayerPopupFYI(cid, str)
end
function getContainerItems(container, array, haveCap)
    array = array or {}
    haveCap = haveCap or false
    if not isContainer(container.uid) or getContainerSize(container.uid) == 0 then
        array[#array +1] = container
    else
        local size = getContainerSize(container.uid)
        haveCap = (getContainerCap(container.uid) -size) > 0
        for slot = 0, (size -1) do
            local item = getContainerItem(container.uid, slot)
            if item.itemid > 1 then
                getContainerItems(item, array, haveCap)
            end
        end
    end
    return #array >= 1 and array, haveCap
end
function getContainerItemsById(container, itemid)
    local founds = {}
    local items = not container.uid and container or getContainerItems(container)
    for index, item in pairs(items) do
        if item.itemid == itemid then
            founds[#founds +1] = item
        end
    end
    return #founds >= 1 and founds
end
function AutomaticDeposit(cid, item, n)
	if isInArray(info.Money_ids, item) and getPlayerStorageValue(cid, info.Storages[4]) > 0 then
		local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n)
		doPlayerDepositMoney(cid, deposit)
	end
	return true
end
function getAllContainerFree(container) -- by vodka
	local containers,soma = {},0
	for i = 0, getContainerSize(container)-1 do
		local item = getContainerItem(container, i)
		if isContainer(item.uid) then
			table.insert(containers, item.uid)
		end
	end
	for _, check in pairs(containers) do
		soma = soma + getContainerSlotsFree(check)	
	end
	return (soma + getContainerSlotsFree(container))
end
function getContainerSlotsFree(container) -- by vodka
         return getContainerCap(container)-getContainerSize(container)
end
function doPlayerAddItemStackable(cid, itemid, count)
    local container = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
    if container.itemid > 1 then
        local items = getContainerItemsById(container, itemid)
        if not items then
            return doPlayerAddItem(cid, itemid, count)
        else
            local piles = #items
            for index, item in pairs(items) do
                if item.type < 100 then
                    local sum = item.type + count
                    local result = doTransformItem(item.uid, itemid, sum)
                    if sum <= 100 then
                        return result
                    else
                        return doPlayerAddItem(cid, itemid, sum - 100)
                    end
                else
                    piles = piles - 1
                    if piles == 0 then
                        return doPlayerAddItem(cid, itemid, count)
                    end
                end
            end
        end
    end
    return false
end
function corpseRetireItems(cid, pos)
	local check, slots = false, 0
	for i = 0, 255 do
		pos.stackpos = i
		tile = getTileThingByPos(pos)
		if tile.uid > 0 and isCorpse(tile.uid) then
			check = true break
		end
	end
	if check == true then
		local str, var = "", getContainerItems(tile)
		if var then
			local list = getItensFromAutoloot(cid)
			for _, item in pairs(var) do
				local id = item.itemid
				if #list > 0 and isInArray(list, id) or getPlayerStorageValue(cid, info.Storages[2]) > 0 and isInArray(info.Money_ids, id) then
					local info = getItemInfo(id)
					local amount = isItemStackable(id) and item.type or 1
					local total_cap = getItemWeight(item.uid)*amount
					if getPlayerSlotItem(cid, 3).itemid ~= 0 then
						slots = getAllContainerFree(getPlayerSlotItem(cid, 3).uid)
					end
					if slots > 0 and getPlayerFreeCap(cid) >= total_cap then
						if isItemStackable(id) then
							str = str.." "..amount.." "..(amount > 1 and info.plural or info.name)..","
							doPlayerAddItemStackable(cid, id, amount)
							AutomaticDeposit(cid, id, amount)
						else
							str = str.." ".. info.article.." " .. info.name ..","
							doPlayerAddItem(cid, id)
						end 
						doRemoveItem(item.uid)	
					end
				end
			end
			if str ~= "" and getPlayerStorageValue(cid, info.Storages[6]) <= 0 then 
				doPlayerSendTextMessage(cid, Color_Loot[getPlayerColorLootMessage(cid)][1],"[Auto Loot Collect]:"..string.sub(str, 1, -2)..".") 
			end
			if getPlayerStorageValue(cid, info.Storages[3]) <= 0 and slots > 0 and slots <= info.Warn_Bp_Slots then
				doPlayerSendTextMessage(cid,18,"[Auto Loot Warn] You only have "..slots.." slots free in your backpack!") 
			end
		end
	end
end
function ExistItemByName(name) -- by vodka
    local items = io.open("data/items/items.xml", "r"):read("*all")
    local get = items:lower():match('name="' .. name:lower() ..'"')
    if get == nil or get == "" then
        return false
    end
return true
end
]]></config>
<event type="login" name="LootLogin" event="script"><![CDATA[
domodlib('Loot_func')
function onLogin(cid)
	registerCreatureEvent(cid, "LootEventKIll")
	if isPremium(cid) and getPlayerStorageValue(cid, 853608) <= 0 then
		setPlayerStorageValue(cid, 853608, 1)
	elseif getPlayerStorageValue(cid, 853608) > 0 and not isPremium(cid) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Auto Loot] You premium is Over, Start a new list!")
		setPlayerStorageValue(cid, 853608, -1)
		doCleanAutoloot(cid)
	end
	return true
end]]></event>
<event type="kill" name="LootEventKIll" event="script"><![CDATA[
domodlib('Loot_func')
function onKill(cid, target, lastHit) 
	if isPlayer(cid) and getPlayerStorageValue(cid, info.Storages[1]) <= 0 and isMonster(target) and not isInArray(info.BlockMonsters, getCreatureName(target):lower()) then
		addEvent(corpseRetireItems, 0, cid ,getThingPos(target))
	end
	return true
end]]></event>
<talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[
domodlib('Loot_func')
local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free
if not param or param == "" then
	ShowItemsTabble(cid) return true
elseif tonumber(param) then
	doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true
elseif isInArray({"clean","limpar", "clear"}, param) then
	if existsAutoloot(cid) then doCleanAutoloot(cid) end
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true
elseif isInArray({"start","stop","on","off"}, param) then
	setPlayerStorageValue(cid, info.Storages[1], getPlayerStorageValue(cid, info.Storages[1]) <= 0 and 1 or 0)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot "..(getPlayerStorageValue(cid, info.Storages[1]) > 0 and "Stopped" or "Started")..".") return true
elseif isInArray({"warn","aviso"}, param) then
	setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Backpack Warn "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "disabled" or "Activated")..".") return true
elseif isInArray({"mensagem","message","mensagen","msg"}, param) then
	setPlayerStorageValue(cid, info.Storages[6], getPlayerStorageValue(cid, info.Storages[6]) <= 0 and 1 or 0)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message "..(getPlayerStorageValue(cid, info.Storages[6]) > 0 and "disabled" or "Activated")..".") return true
elseif isInArray({"cor","color","type"}, param) then
	setPlayerStorageValue(cid, info.Storages[5], getPlayerColorLootMessage(cid) == #Color_Loot and 0 or getPlayerColorLootMessage(cid)+1)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message Color Changed to "..Color_Loot[getPlayerColorLootMessage(cid)][2]..".") return true
elseif isInArray({"money","gold","gps","dinheiro"}, param) then
	setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Gold Colleting "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true
elseif isInArray({"deposito","bank","gbank","deposit","autodeposit"}, param) then
	setPlayerStorageValue(cid, info.Storages[4], getPlayerStorageValue(cid, info.Storages[4]) <= 0 and 1 or 0)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Automatic Gold Bank "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "disabled")..".") return true
end
if info.distro ~= 1 then
	item = ExistItemByName(tostring(param))
	if not item then
		doPlayerSendCancel(cid, "This item does not exist.") return true
	end
	item = getItemIdByName(tostring(param))
else
	item = getItemIdByName(param, false)
	if not item then
		doPlayerSendCancel(cid, "This item does not exist.") return true
	end
end
local var = isInTable(cid, item)
if isInArray(info.Money_ids, item) then 
	doPlayerSendTextMessage(cid, MESSAGE_FIRST, "Enter !autoloot money to add money in your list!") return true	
elseif isInArray(info.BlockItemsList, item) then
	doPlayerSendCancel(cid, "You can not add this item in the list!") return true
elseif not var and #getItensFromAutoloot(cid) >= slots then
	doPlayerSendCancel(cid, "max "..slots.." from auto loot") return true
elseif getPlayerStorageValue(cid, info.Storages[7]) - os.time() > 0 then
		doPlayerSendCancel(cid, "wait a second to use this command again") return true
end
if not var then
	doAddItemFromAutoloot(cid, item)
else
	doremoveItemFromAutoloot(cid, item)
end
setPlayerStorageValue(cid, info.Storages[7], os.time()+info.Talkaction_delay)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "you added the item "..param.." in the list" or "you removed the item "..param.." from the list, please wait 5 seconds to save the directory.")
return true]]></talkaction>
</mod>

 

 

 

Existe um MOD antigo do meu autoloot no seu servidor ainda!! Remova ele!!

 

Eu tinha feito uma outra versão, mas já tirei site pq ele tinha alguns bugs.

----------------------

 

@RaafaGobetti9494

 

ou também você pode executar no seu banco de dados:

 


ALTER TABLE `accounts` ADD loot_time INT(15) NOT NULL DEFAULT 0;

 

creio que irá parar com esse erro, porém é melhor deletar esse autoloot antigo, já que ele tinha alguns bugs que foram fixados nessa nova versão.

O problema que ja exclui todos MOD ou script de AUTOLOOT e sempre aparece isso, alterei a tabela no Banco de Dados. tem algum autoloot funcional ? que eu possa usar ?

Link para o post
Compartilhar em outros sites
10 horas atrás, RaafaGobetti9494 disse:

O problema que ja exclui todos MOD ou script de AUTOLOOT e sempre aparece isso, alterei a tabela no Banco de Dados. tem algum autoloot funcional ? que eu possa usar ?

 

 

executa no seu bando de dados essa query

 

ALTER TABLE `accounts` ADD loot_time INT(15) NOT NULL DEFAULT 0;

 

pelo menos irá parar o erro quando abrir o servidor

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
1 hora atrás, Vodkart disse:

 

 

executa no seu bando de dados essa query

 


ALTER TABLE `accounts` ADD loot_time INT(15) NOT NULL DEFAULT 0;

 

pelo menos irá parar o erro quando abrir o servidor

Ok executei, posso por algum mod de autoloot que vai funcionar certim ? pq eu uso o comando aparece o autoloot, porem nao pega nada.

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Comigo funcionou bem, muito obrigado e parabéns pelo trabalho. Eu tenho um sistema de VIP que atribui um storage para players, consigo limitar a quantidade de slots ao invés de premium, por esse storage?

Link para o post
Compartilhar em outros sites
  • Vodkart mudou o título para [TFS] New Auto Loot Unlimited Edition 2.0
  • 1 month later...
  • 4 weeks later...

Boa tarde! me parece um sistema excelente gostaria de usar no meu servidor, no entanto estou com um erro para instalar.

 

As talks funcionam porem sem nenhuma ação ao matar algum monster.

 

image.thumb.png.69b9880fa40591a2010f54b895d8c279.png

 

Poderia me ajudar? (tfs 0.4 3996)

Link para o post
Compartilhar em outros sites
  • 2 months later...

Salve, funcionou perfeito, uns dos melhores!

 

Só tenho uma dúvida, eu tenho alguns monstros que não dropa o corpo dele quando more, e sim bag, como faria para abrir as bag e recolher os money?

Link para o post
Compartilhar em outros sites
  • 1 month later...

O meu da essa monte de erro quando executo autoloot nome do item

o autoloot money nao da erro, mas tambem nao coleta o dinheiro.

usei o distro 1 e 2 e deu mesma coisa.

Spoiler

erroautoloot1.PNG

 

 

Editado por underpunk (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
19 horas atrás, underpunk disse:

O meu da essa monte de erro quando executo autoloot nome do item

o autoloot money nao da erro, mas tambem nao coleta o dinheiro.

usei o distro 1 e 2 e deu mesma coisa.

  Mostrar conteúdo oculto

erroautoloot1.PNG

 

 

 

Não está criando o arquivo... vc instalou corretamente? criou a pasta lá como foi pedido e talz?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
6 horas atrás, Vodkart disse:

 

Não está criando o arquivo... vc instalou corretamente? criou a pasta lá como foi pedido e talz?

Nossa que desatenção eu pulei essa parte, mil perdões, agora ta funcionando.

Link para o post
Compartilhar em outros sites
  • 6 months later...
  • 1 month later...

esta dando esse erro

 

[12:16:52.076] [Error - CreatureScript Interface]
[12:16:52.080] In a timer event called from:
[12:16:52.082] domodlib('Loot_func')
[12:16:52.084] function onKill(cid, target, lastHit)
[12:16:52.086]  if isPlayer(cid) and getPlayerStorageValue(cid, info.Storages[1]) <= 0 and isMonster(target) and not isInArray(info.BlockMonsters, getCreatureName(target):lower()) then
[12:16:52.087]          addEvent(corpseRetireItems, 0, cid ,getThingPos(target))
[12:16:52.089]  end
[12:16:52.090]  return true
[12:16:52.091] end:onKill
[12:16:52.093] Description:
[12:16:52.097] [string "info = {..."]:124: 'for' initial value must be a number
[12:16:52.098] stack traceback:
[12:16:52.100]  [string "info = {..."]:124: in function 'getAllContainerFree'
[12:16:52.101]  [string "info = {..."]:195: in function <[string "info = {..."]:176>

Link para o post
Compartilhar em outros sites
  • 4 weeks later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por willian646
      Olá a todos, é a minha primeira vez aqui, e não sei se já possui algum tutorial disso ou se estou na área correta, mas vou mostrar aqui como fazer com que o chat no jogo suma quando não tiver nenhuma mensagem e quando tiver ,enviar, é bem simples.
       
      Primeiro vá na pasta do seu client>modules>game_console e abra o console.lua
       
      tendo feito isso procure por
      g_keyboard.bindKeyPress('Enter', sendCurrentMessage, consolePanel)  
      e troque por 
      g_keyboard.bindKeyPress('Enter', hideChat)  
      agora procure por essa função: 
      e troque por: 
      Pronto agora só testar.
    • Por paulo thush
      Advanced Pet System By Races
      Nome: Advanced Pet System By R.aces
      Versão: Bom eu testei no meu 8.60.
      Descrição: Bom eu procurei esse systema por muito tempo nunca achei um que funcionase perfeito, porem com muito esforço retirando de muitos servidores consegui fazer que ele funcionase com todos os script sem erro ao logar o char e nem deslogar os npc funcionando perfeitamente, Esse Pet pelo que eu saiba foi feito pelo josejunior. Como eu sempre vivi pedindo ajuda para comunidade, hoje eu resolvi trazer esse sistema para ajudar também muitos que precisa... E bom você ser ajudado e lembrar de ajudar também. Um pelo outro.
      Comandos:
       
      Pet-trainer.xml (em data/npc)
       
      Pet-trainer.lua (em npc/scripts)
       
      Va na pasta data/lib crie e nomeie para APS_lib.lua 
       
      Agora e so baixar o resto dos arquivos e jogar dentro da pasta do seu Ot principal. E ser feliz... Não dou suporte para algum tipo de erro pois não sou Scripter kk apenas um Fuçado kkk.
       
      Ah: Caso der erro quando você for logar no servidor e de erro nos arquivos do PET, Pode ter algo em conflito com ele, ou Você tera que mudar algo do seu login.lua, Qual quer coisa eu passo o meu que ta muito fuçado porem sem erro em nada kkkk. Por Enquanto...
       
      CREDITOS: josejunior
       
       
      Advanced Pet System By Races.rar
    • Por Vodkart
      [ + ] Descrição: Autoloot refeito para VERSÃO OTX e adicionado algumas outras funções que estarei explicando ao decorrer do tópico.
       
      [ + ] Se você quer o Autoloot ara Versão TFS clica neste Link: AUTOLOOT TFS
       

       
       
      [ + ] Imagem do comando:
       

       
      [ + ] Features:
       
      [ - ] Você pode ativar ou desativar o autoloot a hora que achar necessário.
      [ - ] Também existe um comando para ativar ou desativar mensagens do loot que o autoloot coleta!
      [ - ] Você pode escolher a cor do texto em que irá aparecer a coleta do loot!
      [ - ] O autoloot informará para você se estiver com pouco slots na sua backpack, e o jogador poderá escolher se quer habilitar ou não está função no autloot.
      [ - ] Versão ilimitada de itens(não ficam armazenadas em storages.
      [ - ] O jogador poderá optar por depositar direto no banco os golds que forem dropados.
       
      [ + ] Instalação:
       
      Primeiramente CRIE uma PASTA VAZIA chamanda "autoloot" em DATA/LOGS, ficando assim:
       

       
      Depois instale o MODS normalmente na pasta MODS do seu servidor.
       

       
      new_perfect_autoloot_otx.xml
       
      Link: https://pastebin.com/raw/CW6jgerg
       
       
       [ + ] Configuração:
       
      Dentro do mods tem essa tabela
      info = { directory = "data/logs/autoloot", -- não mexer Warn_Bp_Slots = 5, -- quando tiver 5 ou menos slots na BP vai avisar o jogador Talkaction_delay = 5, -- em segundos // delay para remover e adicionar item BlockMonsters = {}, -- Lista de monstros que o autoloot nao vai funcionar BlockItemsList = {2123,2515}, -- Lista de itens que o autoloot nao coleta Money_ids = {2148, 2152, 2160}, -- id das moedas do ot Max_Slots = {free = 3, premium = 5}, -- quantidade de itens que podem ser adicionados no autoloot por free e premium Storages = {988801, 988802, 988803, 988804, 988805, 988806, 988807} -- não mexer }  
      Basta ler acima para esclarecer as dúvidas!!
       
      Estarei anexando o autoloot 2.0 versão atualizada para quem tiver preguiça de copiar e colar!!
       
       
       
      new_perfect_autoloot_otx.xml
    • Por xWhiteWolf
      Aeeeeeee carai, hoje vim trazer pra vocês meu mais novo sistema *-*. É uma fodenda spell que você seleciona alguém pra ser seu voodoo e a partir disso durante um tempo X ela vai receber todos os hit's que você deveria receber... INCRÍVEL, NÃO?
      Agora se nesse meio tempo ela deslogar ou entrar em pz você vai tomar o dano normal, mas se ainda tiver nesse tempo X e ela sair ela vai receber o dano instantaneamente (É BOM DEMAIS PRA SER VERDADE).

      Agora você deve estar imaginando, e se eu usar a magia pra transferir o dano pra um amigo e ele fizer a mesma coisa em mim, pra onde vai o dano?
      PRA LUGAR NENHUM!!!! Até porque eu já me previni contra esse bug fazendo com que não seja possível fazer alguém de voodoo se ele já tiver alguém de voodoo.
      Testado em versão 8.54 TFS Crying Damnson mas deve funcionar em todas as versões que tenham a função onStatsChange no creaturescripts.
      Bom, o script tá 100% funcional e livre de bugs (se vc achar algum eu te dou 3 REP).

      Agora vamos à mágica:
       
      Crie um arquivo em mods com extensão .xml e adiciona isso daqui nele
      <?xml version="1.0" encoding="UTF-8"?> <mod name="Voodoo System" version="1.0" author="Night Wolf" contact="none" enabled="yes"> ------------------------------------------------------------------------------------ <config name="feitisso"><![CDATA[ configuration = { storage = 24567,  tempo = 20, cooldown = 45, effect1 = 13, effect2 = 65 } storagecool = 24568 ]]></config> ---------------------------------------------------------------------------------- <event type="login" name="registerVoodoo" event="script"><![CDATA[ function onLogin(cid) domodlib('feitisso') if getPlayerStorageValue(cid, configuration.storage) > 0 then doPlayerSendTextMessage(cid, 22, "Your victim is not receiving your hits anymore.") doPlayerSetStorageValue(cid, configuration.storage, 0) end registerCreatureEvent(cid,"voodoo") return true end ]]></event> ------------------------------------------------------------------------------------ <instant name="Feitiço" words="voodoo" lvl="50" mana="10" prem="1" range="3" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> <![CDATA[ function onCastSpell(cid, var) domodlib('feitisso') if not (isPlayer(variantToNumber(var))) then doPlayerSendCancel(cid, "You can only use this spell in players.") return false end if getPlayerStorageValue(variantToNumber(var), configuration.storage) > 0 then doPlayerSendCancel(cid, "You can't make a voodoo of someone who already has a voodoo.") return false end if (os.time() - getPlayerStorageValue(cid, storagecool)) >= configuration.cooldown then if getPlayerStorageValue(cid, configuration.storage) <= 0 then timeleft = (os.time() + configuration.cooldown) doPlayerSetStorageValue(cid, storagecool, timeleft) local target = getPlayerGUID(variantToNumber(var)) doPlayerSetStorageValue(cid, configuration.storage, target) doSendMagicEffect(getPlayerPosition(cid), configuration.effect1) doSendMagicEffect(getThingPos(variantToNumber(var)), configuration.effect1) addEvent(function()   if isCreature(cid) then doSendMagicEffect(getPlayerPosition(cid), configuration.effect2) doPlayerSendTextMessage(cid, 22, "Your victim is not receiving your hits anymore.") doPlayerSetStorageValue(cid, configuration.storage, 0) end  end, 100+1000*configuration.tempo) elseif getPlayerStorageValue (cid, configuration.storage) > 0 then doPlayerSendCancel(cid, "You've already set a target.") end else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(configuration.cooldown - (os.time() - getPlayerStorageValue(cid, storagecool))).." seconds.") end return true end ]]></instant> ------------------------------------------------------------------------------------ <event type="statschange" name="voodoo" event="script"><![CDATA[ function onStatsChange(cid, attacker, type, combat, value) domodlib('feitisso') if isPlayer(cid) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and getPlayerStorageValue(cid, configuration.storage) >= 1 then local name = getPlayerNameByGUID(getPlayerStorageValue(cid, configuration.storage)) local victim = getCreatureByName(name) if isCreature(victim) and not (getTilePzInfo(getPlayerPosition(victim)))  then dano = math.ceil(value) doSendMagicEffect(getPlayerPosition(cid), configuration.effect2) if attacker == victim then doTargetCombatHealth(cid, victim, combat, -dano, -dano, configuration.effect2) else doTargetCombatHealth(attacker, victim, combat, -dano, -dano, configuration.effect2) end return false end end return true end ]]></event> ------------------------------------------------------------------------------------ </mod> aqui você edita os storages da magia e do cooldown, além do tempo que ela dura, o tempo de cooldown (um uso e outro) e os efeitos que vão sair.
      -------------------------------------------------------------------------------------------------------------
       
      aqui você edita o nome da spell, as palavras pra ela sair, level, custo de mana, se é preciso ser premium pra usar, o range dela, e as vocações que podem usá-la.

      OBS: se vc quiser que essa spell seja ganha em uma quest (por se tratar de algo bastante apelativo), é só colocar needlearn = "1" e fazer uma quest pra ganhar a spell (tem no meu Darkness Pact Quest uma quest de ganhar Spell, é só ir lá no meu perfil e procurar o tópico).

      Essa spell não serve somente pra ATS, use a criatividade pra criar uma história e fazer ela se encaixar... foque nos elementos de RPG e tcharam, está feito!.

      Façam bom uso e espero que não saiam postando em outros lugares sem os devidos créditos. Abraços do lobinho pra vcs

      PS: a foto ficou meio bosta mas vou postar mesmo assim 

       
      Eu (sorc) ataquei a zuera e tomei o dano de volta e ainda saiu esse efeitinho bonito. 

      Espero que tenham gostado e usem essa spell como base pra fazer outras coisas maravilhosas pra esse fórum   
      E não esqueça de clicar em "gostei" caso tenha curtido a idéia.

      Ahhh, e antes que eu me esqueça dos agradecimentos:
      @ViitinG por me ajudar a testar
      @CreatServer por me dar a idéia
      @MaXwEllDeN por me orientar a trocar a table pelo storage possibilitando que o script fosse possível.
    • Por MaXwEllDeN
      #Introdução
      Bem, este é um sistema no qual você pode protejer o seu locker(depot) com senha, assim evitando hackers http://forums.otserv.com.br/images/smilies/biggrin.gif.
      #Instalação
      http://1.imgland.net/3CaRNl.png
      Primeiro faça o download do sistema e cole na sua pasta data.
      Após ter instalado os arquivos nas suas respectivas pastas adicione as tags:
      @Actions
        <action itemid="2589; 2590; 2591; 2592" event="script" value="DPPass.lua"/> <!-- DP Pass --> @Creaturescripts
        <event type="login" name="LockerPass" event="script" value="DPPass.lua"/> <!-- DPPass --> @Movements
        <movevent type="StepOut" actionid="96475" event="script" value="DPPass.lua"/> <!-- DPPass --> @Talkactions
        <talkaction words="!locker" script="DPPass.lua"/> <!-- DP Pass --> Talvez eu poste uma V. 2, podendo recuperar a senha via Recovery Key!
      Abraço.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo