Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 04/05/17 em todas áreas

  1. Perfect Autoloot System Talkaction

    Orientalz e um outro reagiu a Jnetworks por uma resposta no tópico

    2 pontos
    Olá pessoal tudo bem? sou novo aqui no fórum, mais vou tentar ajudar um pouco com meu conhecimento Hoje estarei trazendo para vocês um script que todos tem vontade de ter(eu acho) HUAHAUHAUH quando você entra naquele baiak e digita !autoloot e ve aquele scriptzão de pega loot e fica com vontade de ter, hoje estarei trazendo ele aqui pra vocês: Primeiramente o sistema é contido em 3 arquivos(Talkactions,creaturescripts,login.lua) Vamos começar pelo talkactions! Em talkactions.xml adicione a seguinte tag: <talkaction words="!autoloot" event="script" value="Auto Loot.lua"/> Agora vá na pasta talkactions/scripts e crie 1 arquivo chamado Auto Loot.lua e nele adicione o seguinte codigo: function ExistItemByName(name) -- by vodka local items = io.open("data/items/items.xml", "r"):read("*all") local get = items:match('name="' .. name ..'"') if get == nil or get == "" then return false end return true end local function getPlayerList(cid) local tab = {} if getPlayerStorageValue(cid, 04420021) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420021)) end if getPlayerStorageValue(cid, 04420031) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420031)) end if getPlayerStorageValue(cid, 04420041) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420041)) end if getPlayerStorageValue(cid, 04420051) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420051)) end if #tab > 0 then return tab end return false end local function addToList(cid, name) local itemid = getItemIdByName(name) if getPlayerList(cid) and isInArray(getPlayerList(cid), itemid) then return false end if getPlayerStorageValue(cid, 04420021) == -1 then return doPlayerSetStorageValue(cid, 04420021, itemid) elseif getPlayerStorageValue(cid, 04420031) == -1 then return doPlayerSetStorageValue(cid, 04420031, itemid) elseif getPlayerStorageValue(cid, 04420041) == -1 then return doPlayerSetStorageValue(cid, 04420041, itemid) elseif getPlayerStorageValue(cid, 04420051) == -1 then return doPlayerSetStorageValue(cid, 04420051, itemid) end end local function removeFromList(cid, name) local itemid = getItemIdByName(name) if getPlayerStorageValue(cid, 04420021) == itemid then return doPlayerSetStorageValue(cid, 04420021, -1) elseif getPlayerStorageValue(cid, 04420031) == itemid then return doPlayerSetStorageValue(cid, 04420031, -1) elseif getPlayerStorageValue(cid, 04420041) == itemid then return doPlayerSetStorageValue(cid, 04420041, -1) elseif getPlayerStorageValue(cid, 04420051) == itemid then return doPlayerSetStorageValue(cid, 04420051, -1) end return false end function onSay(cid, words, param) if param == "" then local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420021)) or "" local se = not vip.hasVip(cid) and "Não disponível para free account" or getPlayerStorageValue(cid, 04420031) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420031)) or "" local th = not vip.hasVip(cid) and "Não disponível para free account" or getPlayerStorageValue(cid, 04420041) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420041)) or "" local fo = not vip.hasVip(cid) and "Não disponível para free account" or getPlayerStorageValue(cid, 04420051) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420051)) or "" local stt = getPlayerStorageValue(cid, 04421011) == 1 and "sim" or "não" local str = getPlayerStorageValue(cid, 04421001) == 1 and "sim" or "não" doPlayerPopupFYI(cid, "{Auto-Loot} ---Menu Auto Loot do jogador\n{Auto-Loot} ----------------\n{Auto-Loot} ---Coletar dinheiro: "..stt..". Para ligar/desligar: !autoloot gold \n{Auto-Loot} ---Coletar itens únicos: "..str..". Para ligar/desligar: !autoloot power\n{Auto-Loot} --Configuração dos slots:\n{Auto-Loot} ---Slot 1: "..fi.."\n{Auto-Loot} ---Slot 2: "..se.."\n{Auto-Loot} ---Slot 3: "..th.."\n{Auto-Loot} ---Slot 4: "..fo.."\n{Auto-Loot} ---Para adicionar um novo item aos slots: !autoloot add, <nome do item>\n{Auto-Loot} ---Para retirar um item dos slots: !autoloot remove, <nome do item>\n{Auto-Loot} ---Para limpar todos os slots utilize: !autoloot clear\n{Auto-Loot} ---Para informações de quanto você já fez utilizando a coleta de dinheiro, use: !autoloot goldinfo\n\nSe seu autoloot bugar use !autoloot desbug\n\n{Auto-Loot} ----------------") return true end local t = string.explode(param, ",") if t[1] == "power" then local check = getPlayerStorageValue(cid, 04421001) == -1 and "ligou" or "desligou" doPlayerSetStorageValue(cid, 04421001, getPlayerStorageValue(cid, 04421001) == -1 and 1 or -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você "..check.." o auto loot.") elseif t[1] == "gold" then local check = getPlayerStorageValue(cid, 04421011) == -1 and "ligou" or "desligou" doPlayerSetStorageValue(cid, 04421011, getPlayerStorageValue(cid, 04421011) == -1 and 1 or -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você "..check.." a coleta de dinheiro.") doPlayerSetStorageValue(cid, 04421021, 0) elseif t[1] == "goldinfo" then local str = getPlayerStorageValue(cid, 04421011) == -1 and "O sistema de coleta de dinheiro está desligado" or "O sistema já coletou "..getPlayerStorageZero(cid, 04421021).." gold coins" doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str) elseif t[1] == "add" then if ExistItemByName(t[2]) then local item = getItemIdByName(t[2]) if isInArray({2160, 2148, 2152}, item) then return doPlayerSendCancel(cid, "Você não pode adicionar moedas no autoloot. Para coletar dinheiro use !autoloot gold") end if vip.hasVip(cid) then if getPlayerStorageValue(cid, 04420011) < 3 then if addToList(cid, t[2]) then doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." adicionado à sua lista do auto loot! Para ver sua lista diga !autoloot list") else doPlayerSendCancel(cid, t[2].." já está em sua lista!") end else doPlayerSendCancel(cid, "Sua lista já tem 4 itens! Você deve remover algum antes de adicionar outro.") end else if getPlayerStorageValue(cid, 04420011) == -1 then if addToList(cid, t[2]) then doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." adicionado à sua lista do auto loot! Para ver sua lista diga !autoloot") else doPlayerSendCancel(cid, t[2].." já está em sua lista!") end else doPlayerSendCancel(cid, "Você já tem um item adicionado no auto loot! Para adicionar outro, você deve remover o item atual.") end end else doPlayerSendCancel(cid, "Este item não existe!") end elseif t[1] == "remove" then if ExistItemByName(t[2]) then if removeFromList(cid, t[2]) then doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) - 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." removido da sua lista do auto loot!") else doPlayerSendCancel(cid, "Este item não está na sua lista!") end else doPlayerSendCancel(cid, "Este item não existe!") end elseif t[1] == "clear" then if getPlayerStorageValue(cid, 04420011) > -1 then doPlayerSetStorageValue(cid, 04420011, -1) doPlayerSetStorageValue(cid, 04420021, -1) doPlayerSetStorageValue(cid, 04420031, -1) doPlayerSetStorageValue(cid, 04420041, -1) doPlayerSetStorageValue(cid, 04420051, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Lista limpa!") else doPlayerSendCancel(cid, "Sua lista ja esta limpa!") end elseif t[1] == "desbug" or t[1] == "desbugar" then doPlayerSetStorageValue(cid, 04420011, -1) doPlayerSetStorageValue(cid, 04420021, -1) doPlayerSetStorageValue(cid, 04420031, -1) doPlayerSetStorageValue(cid, 04420041, -1) doPlayerSetStorageValue(cid, 04420051, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Desbugado!") elseif t[1] == "list" then local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420021)).."\n" or "" local se = getPlayerStorageValue(cid, 04420031) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420031)).."\n" or "" local th = getPlayerStorageValue(cid, 04420041) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420041)).."\n" or "" local fo = getPlayerStorageValue(cid, 04420051) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420051)).."\n" or "" doPlayerPopupFYI(cid, "O sistema auto loot está coletando:\n "..fi..""..se..""..th..""..fo) end return true end Lembrando esse script libera dois slots de autoloot pra free account e quatro slots para vip account, o sistema configurado nele é o vipSystemByMock caso use um script diferente basta alterar função vip.hasVip(cid) Vamos continuar? Próximo passo vamos adicionar o creaturescripts! Na pasta creaturescripts, abra o creaturescripts.xml e adicione a seguinte tag: <event type="kill" name="autoloot" event="script" value="Auto Loot.lua"/> Agora dentro da pasta creaturescripts vá ate a pasta scripts e crie um arquivo chamado Auto Loot.lua e adicione o seguinte codigo: local aloot_boost = {[2406] = 36, [2537] = 4800, [2377] = 480, [2663] = 600, [2472] = 195000, [2398] = 36, [2475] = 7200, [2519] = 6500, [2497] = 10700, [2523] = 180000, [2494] = 325000, [2400] = 144000, [2491] = 6000, [2421] = 325000, [2646] = 260000, [2477] = 7200, [2413] = 84, [2656] = 18000, [2498] = 52000, [2647] = 600, [2534] = 32500, [7402] = 19500, [2466] = 26000, [2465] = 240, [2408] = 120000, [2518] = 1800, [2500] = 3000, [2376] = 30, [2470] = 91000, [2388] = 24, [2645] = 26000, [2434] = 2400, [2463] = 480, [2536] = 11700, [2387] = 240, [2396] = 4800, [2381] = 240, [2528] = 4800, [2409] = 1800, [2414] = 12000, [2427] = 9000, [2407] = 7200, [2458] = 42, [2383] = 960, [2392] = 3600, [2488] = 18000, [2525] = 120, [2423] = 240, [7382] = 13000, [2462] = 1300, [2520] = 39000, [2390] = 180000, [2417] = 72, [2436] = 1200, [5741] = 52000, [2378] = 120, [2487] = 24000, [2476] = 6500, [8891] = 36000, [2459] = 36, [2195] = 52000, [2391] = 7200, [2464] = 120, [8889] = 72000, [2432] = 13000, [2431] = 108000, [2492] = 52000, [2515] = 240, [2430] = 2400, [2393] = 13000, [7419] = 36000, [2522] = 130000, [2514] = 65000} local function getPlayerStorageZero(cid, storage) -- By Killua local sto = getPlayerStorageValue(cid, storage) if tonumber(sto) then return tonumber(sto) > tonumber(0) and tonumber(sto) or tonumber(0) end return tonumber(0) end local tabela = {} local function getPlayerList(cid) local tab = {} if getPlayerStorageValue(cid, 04420021) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420021)) end if getPlayerStorageValue(cid, 04420031) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420031)) end if getPlayerStorageValue(cid, 04420041) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420041)) end if getPlayerStorageValue(cid, 04420051) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420051)) end if #tab > 0 then return tab end return {} end local function boost(cid) return tonumber(getPlayerStorageValue(cid,722381)) >= os.time() end local function autoLoot(cid, pos) if not isPlayer(cid) then return end local check = false local str = "" local position = {} for i = 1, 255 do pos.stackpos = i if getThingFromPos(pos).uid and getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then position = pos check = true break end end if check then local corpse = getContainerItemsInfo(getThingFromPos(position).uid) if corpse then for index, info in pairs(corpse) do if index < countTable(corpse) then if info.uid and info.itemid then if isContainer(info.uid) then local bag = getContainerItemsInfo(info.uid) for i = 1, countTable(bag) do if isInArray(getPlayerList(cid), bag[i].itemid) then if bag[i].quant > 1 then doRemoveItem(bag[i].uid, bag[i].quant) doPlayerAddItem(cid, bag[i].itemid, bag[i].quant) str = str.." "..bag[i].quant.." "..getItemNameById(bag[i].itemid).." +" else doRemoveItem(bag[i].uid) if boost(cid) then if aloot_boost[bag[i].itemid] then doPlayerSetBalance(cid,getPlayerBalance(cid) + aloot_boost[bag[i].itemid]) str = str.." 1 "..getItemNameById(bag[i].itemid).." ("..aloot_boost[bag[i].itemid].."gp no banco) +" else doPlayerAddItem(cid, bag[i].itemid, 1) str = str.." 1 "..getItemNameById(bag[i].itemid).." +" end else doPlayerAddItem(cid, bag[i].itemid, 1) str = str.." 1 "..getItemNameById(bag[i].itemid).." +" end end end end end end end if isInArray(getPlayerList(cid), info.itemid) then if info.quant > 1 then doRemoveItem(info.uid, info.quant) doPlayerAddItem(cid, info.itemid, info.quant) str = str.." "..info.quant.." "..getItemNameById(info.itemid).." +" else doRemoveItem(info.uid) if boost(cid) then if aloot_boost[info.itemid] then doPlayerSetBalance(cid,getPlayerBalance(cid) + aloot_boost[info.itemid]) str = str.." 1 "..getItemNameById(info.itemid).." ("..aloot_boost[info.itemid].."gps no banco) +" else doPlayerAddItem(cid, info.itemid, 1) str = str.." 1 "..getItemNameById(info.itemid).." +" end else doPlayerAddItem(cid, info.itemid, 1) str = str.." 1 "..getItemNameById(info.itemid).." +" end end end end end end setPlayerTableStorage(cid,822564,{[1] = str, [2] = 0}) end local function autoGold(cid, pos) if not isPlayer(cid) then return end local check = false local total = 0 local position = {} for i = 1, 255 do pos.stackpos = i if getThingFromPos(pos).uid and getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then position = pos check = true break end end if check then local corpse = getContainerItemsInfo(getThingFromPos(position).uid) if corpse then for index, info in pairs(corpse) do if info.uid and info.itemid then if index < countTable(corpse) then if isContainer(info.uid) then local bag = getContainerItemsInfo(info.uid) for i = 1, countTable(bag) do if isInArray({2148, 2152, 2160}, bag[i].itemid) then local multiplie = 1 if bag[i].itemid == 2148 then multiplie = 1 elseif bag[i].itemid == 2152 then multiplie = 100 elseif bag[i].itemid == 2160 then multiplie = 10000 end doRemoveItem(bag[i].uid, bag[i].quant) doPlayerSetBalance(cid, getPlayerBalance(cid) + tonumber(bag[i].quant) * multiplie) total = total + bag[i].quant * multiplie doPlayerSetStorageValue(cid, 04421021, tonumber(getPlayerStorageZero(cid, 04421021)) + tonumber(info.quant) * tonumber(multiplie)) end end end end if isInArray({2148, 2152, 2160}, info.itemid) then local multiplie = 1 if info.itemid == 2148 then multiplie = 1 elseif info.itemid == 2152 then multiplie = 100 elseif info.itemid == 2160 then multiplie = 10000 end doRemoveItem(info.uid, info.quant) doPlayerSetBalance(cid, getPlayerBalance(cid) + info.quant * multiplie) doPlayerSetStorageValue(cid, 04421021, tonumber(getPlayerStorageZero(cid, 04421021)) + tonumber(info.quant) * tonumber(multiplie)) total = total + info.quant * multiplie end end end end end if total > 0 then total = total - (total * 0.2) total = math.ceil(total) doPlayerSetBalance(cid,getPlayerBalance(cid) + total) local tab = getPlayerTableStorage(cid,822564) tab[2] = total setPlayerTableStorage(cid,822564,tab) end end local function sendMsg(cid) if not isPlayer(cid) then return end local tab = getPlayerTableStorage(cid,822564) if countTable(tab) >= 1 then if tab[1] then if tab[2] and tab[2] > 0 then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "[Auto Loot System] Coletados: ".. tab[1] .." ".. tab[2] .." gold coins.") else if type(tab[1]) == "string" and string.len(tab[1]) > 1 then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "[Auto Loot System] Coletados: "..tab[1]) end end elseif not tab[1] then if tab[2] then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "[Auto Loot System] Coletados: "..tab[2].." gold coins.") end end end doPlayerSetStorageValue(cid,822564,-1) end function onKill(cid, target, lastHit) if isPlayer(cid) and isMonster(target) then if getPlayerStorageValue(cid, 04421001) == 1 and #getPlayerList(cid) > 0 then local pos = getCreaturePosition(target) addEvent(autoLoot, 500, cid, pos) end if getPlayerStorageValue(cid, 04421011) == 1 then local pos = getCreaturePosition(target) addEvent(autoGold, 540, cid, pos) end if getPlayerStorageValue(cid, 04421001) == 1 or getPlayerStorageValue(cid, 04421011) == 1 then addEvent(sendMsg, 560, cid) end end return true end E por fim ainda dentro da pagina scripts procure o arquivo login.lua e registre a seguinte tag: registerCreatureEvent(cid, "autoloot") registerCreatureEvent(cid, "Auto Loot") Créditos: Killua - Vitor cardoso bertolucci Obrigado a todos e até a próxima! JNetworks.com.br Jnetworks agradece a preferência! Está querendo abrir 1 OTServer e não sabe onde hospedar? Acesse: JNetworks.com.br Instalamos seu OTServer apartir da contratação de 3GB de ram!
  2. Gran Castle Event (8.54+)

    koyotestark e um outro reagiu a xWhiteWolf por uma resposta no tópico

    2 pontos
    Olá pessoa, hoje vim trazer pra vocês um script bem requisitado que inclusive é vendido por alguns scripters. Algumas versões "pioradas" dessse script podem ser encontradas em servidores cópias do Fox World porém nenhum desses scripts chegará aos pés desse daqui que foi arrumado por mim. Eu não sou o criador do Script, eu peguei qualquer um na internet e só fui arrumando e adicionando coisas que as pessoas reclamavam que não tinha. O cara que criou a versão que eu editei é esse daqui: Não vou me prolongar e nem falar mal da versão do Roksas, apenas saibam que eu editei ela praticamente inteira e que agora está 100%. Aqui tem um pequeno vídeo de como funciona o evento: Explicação: Gran Castle é um evento para ser feito sozinho ou com a guild, há um limite configurável no script de membros que podem entrar da mesma guild. Em dias determinados é aberto o evento e os players podem entrar ao falar com o NPC Melkrapo. Uma vez dentro do castelo os players batalharão para subir os andares e chegar até a Gran Tower, um monstro lendário que dará glória para aqueles que o derrotarem. Será que você é capaz? Instale no seu server e descubra! Um evento para redefinir o conceito de PVP e onde o seu maior inimigo serão seus semelhantes. Sem mais delongas vamos começar a instalar esse monstrinho.. porque ele é grande pra caralho. Agora crie um arquivo em creaturescripts\scripts chamado Gran Tower.lua e adicione o seguinte: em data\lib crie um arquivo chamado 046-Gran Tower.lua e adicione o seguinte dentro dele: Agora voltando aos creaturescripts crie um arquivo em scripts chamado Gran Aura.lua e adicione: E um arquivo chamado Barrier.lua na mesma pasta com o seguinte conteúdo: Agora em globalevents\globalevents.xml adicione a seguinte linha: <globalevent name="Gran Tower" interval="60" event="script" value="Gran Tower.lua"/> E adicione o script associado em globalevents\scripts com o nome de Gran Tower.lua: Agora na pasta monster procure o seu monsters.xml e adicione essas duas linhas: <monster name="Gran Tower" file="8.4/Gran Tower.xml"/> <monster name="Barrier" file="8.4/barrier.xml"/> Feito isso crie os monstros na pasta data\monster\8.4: O primeiro se chama barrier.xml e deverá conter: O segundo se chamará Gran Tower.xml e deverá conter: Agora vamos para NPC, vá em data\npc e crie um arquivo chamado Melkrapo.xml com o seguinte conteúdo: Agora em npc\scripts crie um arquivo chamado Melkrapo.lua e adicione o seguinte: Agora partindo pra spells vá em data\spells e adicione no spells.xml essas linhas: local function atk(cid) doSendDistanceShoot(pos5, pos6, 3) doSendDistanceShoot(pos7, pos8, 3) end local function atkself(cid) doSendDistanceShoot(pos9, selfpos, 3) doSendDistanceShoot(pos10, selfpos, 3) doSendDistanceShoot(pos11, selfpos, 3) doSendDistanceShoot(pos12, selfpos, 3) doSendDistanceShoot(pos13, selfpos, 3) doSendDistanceShoot(pos14, selfpos, 3) doSendDistanceShoot(pos15, selfpos, 3) doSendDistanceShoot(pos16, selfpos, 3) end local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_DAMAGE, -500, -7000, -300, -9000, 200, 200, 100, 400) --- formula de dano que tira o ataque da gran tower local area = createCombatArea(AREA_TOWER) setCombatArea(combat, area) function onCastSpell(cid, var) selfpos = getCreaturePosition(cid) pos1 = {x=getCreaturePosition(cid).x + 2, y=getCreaturePosition(cid).y + 2, z=getCreaturePosition(cid).z} pos2 = {x=getCreaturePosition(cid).x - 2, y=getCreaturePosition(cid).y + 2, z=getCreaturePosition(cid).z} pos3 = {x=getCreaturePosition(cid).x - 2, y=getCreaturePosition(cid).y - 2, z=getCreaturePosition(cid).z} pos4 = {x=getCreaturePosition(cid).x + 2, y=getCreaturePosition(cid).y - 2, z=getCreaturePosition(cid).z} pos5 = {x=getCreaturePosition(cid).x - 2, y=getCreaturePosition(cid).y + 2, z=getCreaturePosition(cid).z} pos6 = {x=getCreaturePosition(cid).x - 2, y=getCreaturePosition(cid).y - 2, z=getCreaturePosition(cid).z} pos7 = {x=getCreaturePosition(cid).x + 2, y=getCreaturePosition(cid).y - 2, z=getCreaturePosition(cid).z} pos8 = {x=getCreaturePosition(cid).x + 2, y=getCreaturePosition(cid).y + 2, z=getCreaturePosition(cid).z} pos9 = {x=getCreaturePosition(cid).x - 1, y=getCreaturePosition(cid).y + 1, z=getCreaturePosition(cid).z} pos10 = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y + 1, z=getCreaturePosition(cid).z} pos11 = {x=getCreaturePosition(cid).x + 1, y=getCreaturePosition(cid).y + 1, z=getCreaturePosition(cid).z} pos12 = {x=getCreaturePosition(cid).x - 1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} pos13 = {x=getCreaturePosition(cid).x+ 1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} pos14 = {x=getCreaturePosition(cid).x - 1, y=getCreaturePosition(cid).y - 1, z=getCreaturePosition(cid).z} pos15 = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y - 1, z=getCreaturePosition(cid).z} pos16 = {x=getCreaturePosition(cid).x + 1, y=getCreaturePosition(cid).y - 1, z=getCreaturePosition(cid).z} doSendDistanceShoot(pos1, pos2, 3) doSendDistanceShoot(pos3, pos4, 3) addEvent(atkself, 350) addEvent(atk, 350) return doCombat(cid, combat, var) end Feito isso vá em spells\lib e no seu arquivo spells.lua adicione a seguinte area: AREA_TOWER = { {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1} } Agora nós vamos criar a talkaction que vai te permitir ligar o evento a hora que vc quiser. Vá em data\talkactions\talkactions.xml e adicione a seguinte linha: <talkaction hide="yes" words="/grantower" access="5" event="script" value="cleargrantower.lua"/> e em talkactions\scripts adicione o arquivo cleargrantower.lua com o seguinte conteúdo dentro: function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, " ") if (tonumber(t[1]) == 1) then doPrepareGranTower() doSendMagicEffect(getCreaturePosition(cid), 14) elseif (tonumber(t[1]) == 0) then doCloseGranTower() doSendMagicEffect(getCreaturePosition(cid), 14) elseif (tonumber(t[1]) == 2) then print(getGlobalStorageValue(GRANTOWER.SAVELASTWINNER)) doSendMagicEffect(getCreaturePosition(cid), 14) elseif (tonumber(t[1]) == 3) then print(getGlobalStorageValue(GRANTOWER.SAVEWINNERGUILDID)) doSendMagicEffect(getCreaturePosition(cid), 14) end return true end Agora vá em data\creaturescripts\scripts\login.lua e adicione essas linhas antes do ultimo return true: -----------GRAN CASTLE ----------- registerCreatureEvent(cid, "Gran Tower") registerCreatureEvent(cid, "Gran Aura") registerCreatureEvent(cid, "Gran Aura Stats") registerCreatureEvent(cid, "Gran Aura Logout") registerCreatureEvent(cid, "Gran Tower Target") Por último eu acho que eu usei uma das funções da minha lib nesse script, então se der qualquer erro eu recomendo que vcs instalem ela antes de me mandar o print do erro do servidor haha. (Pra instalar é só criar um arquivo em data.lib e coloca aquilo dentro, veja o tópico no meu perfil) Eu testei o script e tá funcionando perfeitamente, a única coisa que não consegui testar foi as guilds e como fica a aura qnd alguém da guild ganha mas acho que vcs podem fazer esse trabalhinho de testar pra mim... Pra finalizar gostaria de dizer que um membro do fórum pagou por esse script e ele não estava funcionando, não comprem scripts, venham ao fórum e peçam por eles. Que fique de lição. Todas as configurações são feitas pelo arquivo 046- Gran Aura que está na LIB (exceto as coisas relacionadas aos monstros/spells que eles tiram) mas está tudo bem explicadinho nos scripts e acho que vocês já sabem editar um monstro, não é mesmo? haha Espero que façam bom proveito, pretendo lançar uma versão 1.0 em breve juntamente com a versão 1.0 do Magnus Challenger. Fiquem ligados! e claro, se você gostou não faz mal clicar em "Gostei". Abraços do lobo. NOTA FINAL: Sei que a maioria dos caras que queriam esse script queriam pra servers 8.4 porém a forma de fazer a barreira ter essa modificação na outfit qnd estiver quebrando é só por statschange. É só modificar a source e adicionar a function onStatsChange do creaturescripts que vai pegar no seu server 8.4. Já vi server 7.6 com statschange então não creio que seja algo dificil.
  3. 2 pontos
    Fala ai Galera vim postar um ot aki que passei algum tempo editando , porem um membro a roubou e para que ele não tenha lucro nenhum irei estar postando aki no TibiaKing. Contém: Tv System Shiny Ditto e Ditto Ditto Memory Cath com exp. PokeDex Mostra status dos pokes. [ Adaptada ao Systema novo de Wildlvl ] Wildlvl Ajustado para dar mais força ao pokemon [ Antes so dava HP ] Bike System Shop Único [ Ametita shop ] Mega Evolution Y e X < Contem todos os Megas da 1 e 2 geração Mapa Unico Npc Daily Box 1 ao 7 Helds Funcionando 100% Client Adaptado Outland Saffari Unica Varias PokeBalls Icone System Moves Infinitos todos que achamos foram removidos Novos Shinys Dungeons Varias Shiny Box. Varias Box Boosted Held Box - 1 ao 7 Varias Ilhas Systema de Npc Que te leva as ilhas. Vários Bugs da DxP Corrigidas Porem não foram todas. Foram Removidas Varias armadilhas e são 11 no total para quem não sabe , e Adaptado melhor para funcionar no DxP porem o cara que adaptou Error 404 não permitiu a Postagem desse Execultavel e nem das Sources , Por motivos pessoais. Prints: Alias Esse [ADM] Jobson que roubou Download Server + Client : https://www.4shared.com/rar/Bwh_EbMwei/Evolution_-_Server.html Site Original da DxP: >> WebSite << >> Scan << Client Descompilado : https://www.4shared.com/rar/fgRPeamaca/PXE_Client_Descompilado.html Obs: 4Shared já tem scan. Creditos: Equipe e criador que disponibilizarão a DxP Smoke [ Eu ] Error 404 Se Gostou decha Pelo menos um Rep ++ Ai :]
  4. [Action+Movement] Cartas ao GOD

    Hokograma e um outro reagiu a thelifeofpbion por uma resposta no tópico

    2 pontos
    Sobre o sistema: Serve para encaminhar cartas ao admin do servidor, nessas cartas vão o que o player achar importante como sugestões, reports, babozeiras... sei lá. Logo a baixo tem spoiler, com imagens... Bom vamos ao que interessa... Em movements.xml adicione a tag: <movement type="AddItem" tileitem="1" uniqueid="44442" event="script" value="moveall.lua"/> moveall.lua EM Actions.xml adicione a tag: <action uniqueid="44443" script="carta.lua"/> carta.lua Agora você só precisa editar seu mapa colocar o mailbox e a bag de cartas. (outra dica é que retire formas de conseguir cartas, como monstros que dropam ela, ou npcs que vendem), caso não queira fazer isso é só mudar o id da carta no script para outra. ID mailbox: 3981 no mailbox você coloca uniqueid: 44442 ID da Bag com cartas: 2330 na bag cartas voce coloca uniqueid: 44443 e actionid: 100 (quando coloca actionid: 100 os players não pode mover a bag) Finalizado.
  5. Bom galera, tem uma coisa bem simples que nem o tibia global fez e que eu to trazendo aqui pra vocês. Trata-se de um pequeno sistema que fará você sempre virar pra direção do seu target ao atacar. Testado em TFS 0.3.6 Cliente 8.54. Imagem auto explicativa: Chega de atacar de costas! Agora pra instalar é bem tranquilo. Abra um arquivo .lua em data\creaturescripts\scripts chamado target e coloque o seguinte conteudo dentro dele: Feito isso adicione essa linha no creaturescripts.xml: <event type="attack" name="targetCreature" script="target.lua"/> E para finalizar adicione a seguinte tag em creaturescripts\scripts\login.lua: registerCreatureEvent(cid, "targetCreature") Espero que vcs tenham curtido, é algo bem simples mas ninguém havia pensado nisso antes (nem o próprio Tibia), é uma coisa bem básica e que torna o jogo bem mais importante e sério. EDIT:: Usem essa versão que está mais completa, na anterior se o target estivesse na diagonal ele não virava.
  6. Sistema de Reset 100%

    bagulhoescroto reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera do TK, hoje vim pra trazer pra vocês um npc criado por mim e pelo Nogard numa madrugada aí para solucionar a dúvida de um cara no suporte. Eu dei uma melhorada no script original, tirei umas coisas repetidas e adicionei novas funções; Você agora pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar). Testado em TFS 0.3.6, Versão 8.45 Sem mais delongas, vamos ao script. Antes de tudo crie um arquivo chamado reseter.lua na pasta data\npc\scripts\ e coloque isso daqui dentro dele: Você pode editar tudo mexendo aqui: local config = { minlevel = 150, --- level inical para resetar price = 10000, --- preço inicial para resetar newlevel = 20, --- level após reset priceByReset = 0, --- preço acrescentado por reset percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total) levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset } Feito isso, crie agora o npc que irá utilizar esse script.. em data\npc crie um arquivo.xml chamado Reseter.xml e coloque isso dentro dele: Agora é só colocar o seu npc no mapa pelo mapa editor e curtir OBS 1: Se seu server for 8.6 ou maior troque no script.lua as funções db.executeQuery por db.query OBS 2: Esse script dava pra ser diminuido ainda mais mas por hora deixa ele assim, se vc tiver alguma proposta melhor por favor poste nos comentários que eu testo a sua versão e edito o tópico se for o caso. OBS 3: Não remova os créditos, isso é a coisa mais baixa e suja que alguém pode fazer.. eu scripto pra ajudar a comunidade do Tibia a evoluir e libero 99% doque eu faço, se vocês não removerem os créditos e não postarem em outros fórums sem minha permissão isso pode continuar assim. --- EDIT: Coloquei algumas imagens pra vcs verem como fica no server EDIT: Arrumei o problema de o npc não dar bye automáticamente qnd o player se afasta, bugando em algumas versões e impedindo de conversar com outros npcs. Apenas substituam o arquivo em scripts pela versão atualizada, grato. EDIT2: Novos erros arrumados, agora o NPC dá bye automaticamente e não buga qnd te reseta. EDIT3: Resolvido bug de dar hi, reset, yes várias vezes e derrubar o servidor (troque tanto o xml qnt o script do npc) O script também foi identado.
  7. 1 ponto
    Boa Noite , Boa Tarde ou Bom Dia TK's não sei a hora que vocês vão ver o Tópico Estava com meu Projeto do "Pokemon H" Fiz várias Ediçoes no Servidor Que Baixei aqui no Tibia King Mesmo e vim disponibilizá-los para vocês. Então bora ao que interessa né? • Menu: ├ Informações; ├ Edições; ├ Erros; ├ Prints; ├ Mapa ├ Download; ├ Atualização; ├ Utilitários; └ Créditos. • Informações Básicas • • Edições / Ajustes • • Erros do Servidor • • Prints• • MAPA • • Downloads • Cliente * MediaFire e Scan Servidor * MediaFire e Scan • Download Atualização 2.0 • Download: https://www.mediafire.com/?ik211gku2hdqz2t Scan : • Download Atualização 3.0 • 2016 OBS: NÃO TERÁ MAIS EDIÇÕES. • Utilitários • Remeres que usei pra editar: AQUI • Créditos • Brun Por Criar o Servidor Slicer Por Editar o Servidor Mulurka (pelas out) Stylo pelo tuto do ícone system noninhu por ajudar em alguns spells tem 2 caras tbm eu eskeci o nome deles agora que ajudaram 1 com as insignias na barra de skill e o outrio pelas scripts da liga pokemon dandanrvb pelas scripts do icone system erondino por algumas caves ih é só bjundão a all Vudi (Eu) Por editar o resto do servidor e trazer as novidades Tioj Pelas edições e Por fazer eu copiar a organização do tópico dele kk obg Kuuhaku pela cave dos geot . Held Itens By Gabriel Sales Gabriel Sales AnnaFeeh pelo script do ditto system pxg Obs: Se Está faltando algum crédito me avise pra mim colocar ( Não sei se está faltando algum) Obs: Qualquer Outra Duvida Estarei de Suporte no Tópico Obs: SENHA GOD/GOD OBS : Se Pegar o Servidor e Postar em Outro Fórum sem as minhas permissão vou pedir para o dono do forum ou site retirar o conteúdo . (Esse Conteúdo é exclusivo do TibiaKing obrigado) Se ajudei Já sabe né
  8. Hirashin Ni No Dan

    betosoares reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera do TK, um cara tinha pedido no suporte pra eu fazer essa spell aqui http://youtu.be/ZWrsRvVYgys?t=1m54s e eu fiz rapidinho e ficou uma bosta, então eu decidi melhorar ela e postar aqui pra vocês. O vídeo é bem explicativo então eu acho que não preciso ficar prologando isso daqui, se vc não quiser ver o vídeo tente entender pelas fotos: Bom, antes de tudo vá em spells.xml e coloque isso daqui: <instant name="Tibia King" words="Hirashin ni no dan" lvl="50" mana="100" prem="1" range="6" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/playerport.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> aqui vc configura nome da magia, palavras pra usar ela, level pra usar, mana que custa, se precisa ser premio, o alcance máximo dela, se precisa de um target (nessa magia em específico eu vou pedir pra que vc não mexa nisso), se ela é bloqueada pelas paredes (1 quer dizer que sim), a exaustão entre um uso e outro (nesse caso vc usa a magia e precisa esperar 1 segundo (1000 milisegundos) pra usá-la novamente) se ela precisa ser aprendida (0 significa que vc já vem com ela) e em value você tem o diretório em que ela vai ficar (no caso dentro da pasta spells\scripts vai ter uma pasta chamada especiais e dentro dessa pasta vai ter um arquivo chamado playerport.lua Feito isso crie o arquivo playerport.lua que deverá conter o seguinte: local config = { storage = 49708, tempo = 1.5, effect = 65 } local exception = {"Trainer", "Training Monk", "GOD"} function onCastSpell(cid, var) local name = getCreatureName(getCreatureTarget(cid)) if not isInArray(exception, name) then if getPlayerStorageValue(cid, config.storage) <= 0 then doPlayerSetStorageValue(cid, config.storage, 1) doSendMagicEffect(getThingPos(cid), config.effect) doSendMagicEffect(getThingPos(variantToNumber(var)), config.effect) addEvent(function() doPlayerSetStorageValue(cid, config.storage, 0) if isCreature(cid) and isCreature(variantToNumber(var)) then if isWalkable(getCreaturePosition(variantToNumber(var)), false, true, true) then doTeleportThing(cid, getThingPos(variantToNumber(var)), true) arr = {3} doAreaCombatHealth(cid, 1, getThingPos(variantToNumber(var)), arr, -getPlayerLevel(cid), -2*(getPlayerLevel(cid)), 0) elseif isCreature(cid) and not isWalkable(getCreaturePosition(variantToNumber(var)), false, true, true) then doPlayerSendCancel(cid, "You can't reach your target") end end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendCancel(cid, "You've already set your target.") end else doPlayerSendCancel (cid, "You can't use this spell in this creature.") return false end return true end Ali no começo é possível configurar algumas coisas do script: o script em si é bem fácil de se configurar. Agora pra evitar possíveis bugs você deve ir em creaturescripts\scripts\login.lua e adicionar essas linhas antes do ultimo return true: ---------- PlayerPort--------------- if getPlayerStorageValue(cid, 49708) ~= 0 then setPlayerStorageValue(cid, 49708, 0) end Lembrando que o storage no login.lua tem que ser igual ao storage no script!! OBS: a fórmula pode ser mudada nessa linha aqui: doAreaCombatHealth(cid, 1, getThingPos(variantToNumber(var)), arr, -getPlayerLevel(cid), -2*(getPlayerLevel(cid)), config.effectdamage) aqui é a fórmula: -getPlayerLevel(cid), -2*(getPlayerLevel(cid)) sendo min, max respectivamente. Em outras palavras, o mínimo que a magia tira é o level do player e o máximo que ela tira é 2x o level; Espero que vcs tenham gostado :]
  9. Instalando Gesior ACC + TFS 1.0

    thiagozim reagiu a tiroleivi por uma resposta no tópico

    1 ponto
    Neste vídeo eu irei mostrar como instalar o Gesior + TFS 1.0 Xampp : Xampp 1.7.3 Servidor : [10.51] Global Map WebSite : [2015] Gesior 2012 1.0 - V2
  10. Mining System

    bagulhoescroto reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Antes de tudo queria agradecer ao cara do suporte que me pediu pra fazer isso, achei muito legal a idéia. Fala galera do TK, vim trazer um script bem simpleszinho mas que abre um leque de opções de RPG e diversão pro seu OT.. Trata-se do Mining System, um sistema que você pode utilizar a pick normal (ou uma outra pick especial) para minerar a terra e tentar conseguir items que você pode trocar por dinheiro, items ou utilizar para craftar items. São 70 leveis de Mining que vão upando conforme vc minera. Enfim, vamos ao script: actions\scripts\mining.lua: terra = {351,352,353,354,355} levels = { [-1] = 2229, ---- skull [0] = 1294, --- small stone [1] = 3976, --- worm [10] = 2149, -- Small Emerald [12] = 2146, -- Small Sapphire [15] = 2145, -- Small Diamond [17] = 2150, -- Small Amethyst [20] = 2147, -- Small Ruby [25] = 2144, -- Black Pearls [27] = 2143, -- White Pearls [30] = 2157, -- Gold Nuggets [35] = 2156, --- red gem [36] = 2158, -- blue gem [37] = 2155, -- green gem [38] = 2153, -- violet gem [39] = 2154, -- yellow gem [40] = 7761, -- small enchanted emerald [42] = 7759, -- Small Enchanted Sapphiire [45] = 7762, -- Small Enchanted Amethyst [50] = 7760, -- Small Enchanted Ruby [70] = 2177 -- Life Crystal } local config = { storage = 19333, chance = 40, --- chance de achar um item ou não k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante) experience = 19334 } function onUse(cid, item, fromPosition, itemEx, toPosition) local drops = {} function getDrops(cid) for i= -1,getPlayerStorageValue(cid, config.storage) do if levels[i] then table.insert(drops, levels[i]) end end return true end if isInArray(terra, itemEx.itemid) then getDrops(cid) doPlayerSetStorageValue(cid, config.experience, getPlayerStorageValue(cid, config.experience)+1) local experience = getPlayerStorageValue(cid, config.experience) if experience >= (8+(getPlayerStorageValue(cid, config.storage)^2))/config.k then doPlayerSetStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage)+1) doPlayerSendTextMessage(cid, 27, "Congratulations, you have leveled! Your currect level is "..getPlayerStorageValue(cid, config.storage) ..".") if getPlayerStorageValue(cid, config.storage) == 50 then doPlayerSendTextMessage(cid, 20, "For reaching level "..getPlayerStorageValue(cid, config.storage) .." you have been awarded with Mining Helmet.") doPlayerAddItem(cid, 7497, 1, true) end end if config.chance >= math.random(1,100) then if #drops >= 1 then local item = drops[math.random(1,#drops)] doPlayerSendTextMessage(cid, 27, "You have found a "..getItemNameById(item)..".") doPlayerAddItem(cid, item, 1, true) end doSendMagicEffect(toPosition, 3) else doSendMagicEffect(toPosition, 2) return true end elseif itemEx.itemid == item.itemid then doPlayerSendTextMessage(cid, 27, "You're currenctly level "..getPlayerStorageValue(cid, config.storage)..".") else return false end return true end em terra vc coloca os ids dos chãos em que é possível minerar, levels é o level da skill e o ID do respectivo item que você fica capaz de conseguir após alcançar esse nível. Em outras palavras, no começo vc só consegue minerar skull, no nv 70 vc vai ter a chance de conseguir todos os items anteriores e não só life crystal. O restante das configurações está no meio do script: local config = { storage = 19333, chance = 40, --- chance de achar um item ou não k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante) experience = 19334 } o storage é onde vai salvar o seu nível chance é a chance de pegar um item cada vez que minera. k é a constante de level, o nivel 10 precisa de 10*10/k de experiencia para ser alcançado (com k sendo 2 dá 50 de experiencia), ou seja, com 50 picaretadas na terra vc pega nivel 10. experience é o storage que fica salvo sua experiencia. Bônus: Ao alcançar level 50 você ganha o Mining Helmet como prêmio, ele não faz nada de especial mas é como se fosse um troféu. No meu server tem uma série de troféus que voce pode colecionar e fica como sendo uma conquista épica para os players. e no actions.xml: <action itemid="2553" script="mining.lua"/> OBS: Sugiro que vcs utilizem uma outra pick pra não dar conflito mas você faz oque quiser. PS: Uma fotinha pra vcs verem Espero que tenham gostado!
  11. 1 ponto
    Bom para quem não sabe como funciona é o seguinte,quando o player usar X item ele vai ganhar X dias de premium points. • Adicionando o script • Em "data/lib" crie um arquivo chamado "048-ppoints.lua" e adicione esse script dentro : function getAccountPoints(cid) local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function doAccountAddPoints(cid, count) return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) + count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end function doAccountRemovePoints(cid, count) return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) - count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end Em "data/actions/actions.xml" adicione está tag : <action itemid="5952" event="script" value="points.lua"/> Em "data/actions/scripts" crie um arquivo lua chamado "points" e cole isso dentro : local cfg = { amount = 10 } function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 8 then doAccountAddPoints(cid, cfg.amount) doCreatureSay(cid, "Parabéns! Você recebeu 10 Premium Points! ", TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(cid), 28) doRemoveItem(item.uid,1) else doPlayerSendCancel(cid,"Você precisa de level 8 para usar este item.") end return TRUE end • Configurando •
  12. [Action] Hiraishin Kunai

    FabiiioH reagiu a ManoTobira por uma resposta no tópico

    1 ponto
    Esse sistema é o da hiraishin kunai uma kunai que teleporta para position que voce escolhe vamos lá Em Actions/Scripts/ Copie um Arquivo.lua e renomeie para hiraishin apague tudo e coloque a seguinte script: em Actions.xml Adicione a seguinte tag: <action itemid="7382" event="script" value="hiraishin.lua" allowfaruse="1"/> explicando local vocs = {250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261} --- aqui é o id das voc que pode usar a kunai local parede = {1030, 1029, 1025, 1026, 1027, 1259, 1028, 1032, 1034, 1033, 1536, 1533, 873, 919, 874, 1037, 4472, 4475, 4471, 3388, 3373, 3363, 3398, 3408, 3417, 3420, 3407, 3368, 2701, 5130, 6170, 6166, 1596} são as parede que não podem passar etc... Créditos Luan Mello
  13. Pokemon Dash v10.1 (Revolution)

    MitsukoHikaru reagiu a Poul Lennon por uma resposta no tópico

    1 ponto
    Bom galera, primeiramente o server não é meu! Este server já tem aqui no TK, porém com os links quebrados, como podem ver no seguinte link: Eu resouvi upá-los novamente, com algumas pequenas edições que fiz, são elas: -Troca de sprites das natures -Troca de sprites das citys -Pequenas mudanças no mapa -Corrigido um bug que dava no spawn.lua -Uma nova quest para iniciantes entre Saffron e Cerulean Sistemas: Prints: Download Servidor + Client: http://www.mediafire.com/download/pf0zw8636dd819j/Poke_DASH_Revolution_V10.1.rar Scan: https://www.virustotal.com/pt/file/12c95481f072a14849fc1040ebfcb82164c23e69ce3cb694ec042ec1a5ee1b92/analysis/1463791416/ Créditos Mario (Aberos) Valakinhas Muniz Felipe Sukitorick Eu (por ter re-upado o server e pelas pequenas mudanças citadas no inicio) Bom galera, este é o meu primeiro tópico aqui no TK sobre um otserver. Me desculpem qualquer coisa e é nós!
  14. Experience Weapon System

    JowL reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Eai galera, hoje eu to trazendo pra vocês o meu Experience Weapon System. Pra quem não conhece é um sistema em que conforme você vai matando os monstros sua arma vai adquirindo parte da experiencia e upando de nível junto com você! Eu abri um tópico pra sugestões mas os players foram tão criativos que eu decidi seguir meus instintos e fazer da minha própria maneira se não ia ficar muito ruim pra servers que não fossem derivados. Testado em TFS 0.3.6 mas deve funcionar em qualquer um que tenha getThing(Pos) e onAttack e onKill ;] Foi decidido por mim então fazer da seguinte maneira: • Axes/ Swords/ Bows/ Crossbows: Tem 5% de chance (pra cada nivel) de ferir gravemente o oponente e deixar ele sangrando, o nível do ferimento é proporcional ao nível da arma. • Clubs: Tem 5% de chance (pra cada nivel) de bater com tanta força que faça todos ao redor sentirem o tremor do seu ataque e levarem um dano baseado no nivel da arma e no ataque da mesma. • Wands/ Rods: Tem 5% de chance (pra cada nivel) de retirar uma quantidade de mana do player (proporcional ao nivel da arma) e ficar recuperando mana mais rapidamente durante 5 segundos após isso Dito isso vamos ao que interessa: Adiciona essas duas linhas no seu creaturescripts.xml: <event type="kill" name="itemexp" script="itemexp.lua"/> <event type="attack" name="conditionitem" script="conditionitem.lua"/> e no login.lua: --------------- Experience System ---------------- registerCreatureEvent(cid,"itemexp") registerCreatureEvent(cid,"conditionitem") Agora crie um arquivo em data\lib\ chamado 037 - Experience System.lua e coloque isso dentro dele: Feito isso crie um arquivo em creaturescripts\scripts chamado itemexp.lua e adicione isso daqui: Agora crie outro arquivo em creaturescripts\scripts, adicione isso daqui nele e chame de conditionitem.lua: Agora configurando: Obs: tudo que está no local um serve pros locais dois, tres, quatro e cinco pra configurar o nivel de sangramento em cada nível, tanto a velocidade que sangra como o dano que sai. No caso, sendo nivel 1 ele vai tirar 3x de -5, 3x de -3 e 3x de -2 antes de sumir, isso dá -30 de dano total em 9 segundos. Bom, é isso aí, a minha idéia era trazer um pouco a mais de RPG e fazer o pessoal pensar 2x antes de sair trocando suas armas pela primeira que ele dropa que tenha + ataque que a dele pois assim ele passa a ter que valorizar mais os itens que já possui a um bom tempo; Outro motivo é que agora os items vão valer mais e agora seu server vai ter mais movimento nas trocas ;] Espero que tenham gostado e qualquer coisa é só falar nos comentários. Abraço do lobinho. Ps: aqui tem duas fotinhas mas o resto só instalando mesmo porque tem bastante coisa pra mostrar. E lembrando, se te ajudei clica em Gostei aqui embaixo. Fuis
  15. Boa galera estamos mais uma vez trazendo o que a de melhor pra todos e esse sistema é muito top pra qualquer administrador de OTserver. Um parceiro meu Felipe Funck administrador do ImperialOT chegou pra mim com essa ideia de fazer um backup de point me explicou como deveria ser, achei uma ideia muito interessante e fui atrás de fazer o sistema. Esse sistema tem a função de registrar todos os pontos adquiridos por uma ACC em outras palavras ele faz um backup de todos os pontos que essa ACC recebe, sim mais e dai? As vezes temos a obrigação de resetar a database e eu confesso não tem nada mais chato do que devolver os pontos, simplesmente porque é muito trabalhoso você devolver pontos. Veja abaixo como adicionar o sistema no seu server: Acesse sua database e na tabela accounts execute está query: ALTER TABLE `accounts` ADD `backup_points` INT NOT NULL AFTER `premium_points`; Feito né? Essa query é a coluna backup_points nela vai ficar registrado todos os pontos que serão adicionados na ACC. Agora abra o seu retpagseguro.php e na linha 151 vai ter esse code: mysql_query("UPDATE accounts SET premium_points = premium_points + '$NumItens' WHERE name = '".htmlspecialchars($accname)."'"); Adicione abaixo o seguinte code: mysql_query("UPDATE accounts SET backup_points = backup_points + '$NumItens' WHERE name = '".htmlspecialchars($accname)."'"); Quem não tiver o sistema de pagseguro automático veja esse TUTORIAL. Cuidado a você que utiliza o double points pra não esquecer da multiplicação * 2. Certo, pra você que ainda não utiliza o sistema pagseguro utilize este shopadmin abaixo que já está configurado pra adicionar os pontos nas duas colunas. shopadmin.php Serve para todos os Gesior ACC. Pronto dessa forma todos os pontos adicionados em premium_points vai ficar registrado em backup_points. Bom galera o sistema está feito, beleza, quando você for resetar você vai executar a query abaixo. Mais qual a função dela? A função dessa query é limpar a coluna premium_points e leva os pontos que tiverem na coluna backup_points pra coluna premium_points, assim todos os pontos que entraram naquela ACC estaram de volta e corretamente. Nunca apague os registros do backup_points. Cuidado antes de usa a query faça um backup da sua database, só pra precaver nada de mais! UPDATE `accounts` SET `premium_points` = `accounts`.`backup_points` WHERE `backup_points` > 0; Query feita por, Raphael Luiz. Galera quem gostar clica em GOSTEI e valeu!
  16. 1 ponto
    Ola pessoa tudo bem? espero que sim hoje eu vim mostrar para vocês um tutorial de como criar um site(você pode fazer uploads de arquivos nele, só que você tem um limite de 2gb e 100gb de download) você vai poder criar até launchers com autoupdate!! Então vamos lá: Primeiro acessem esse site: HOSTINGER e criem uma conta ou loguem pela sua conta google ou facebook: Depois de logar, você clica em Área de Membros e siga o tutorial: Pronto você já tem uma host!! mais como editar? você vai precisar de um programa chamado FILEZILA depois que você baixar abra ele: Agora como logar o filezila no nosso site? Pronto agora só você editar o seu site da maneira que quiser, eu ainda não tentei colocar um site pronto de tibia mais provavelmente funciona GOSTOU? QUE TAL UM +REP?
  17. [BUG] Depot Player Passa por dentro

    mattos123 reagiu a thelifeofpbion por uma resposta no tópico

    1 ponto
    verdade, é que eu gosto de power abusers e sempre coloco/jogo em servidores Protection level = 1
  18. [BUG] Depot Player Passa por dentro

    thelifeofpbion reagiu a mattos123 por uma resposta no tópico

    1 ponto
    @pablobion Colocando no-pvp mode, players com level menor que o "Protection Level", conseguem entrar dentro de outros players.
  19. [BUG] Depot Player Passa por dentro

    mattos123 reagiu a thelifeofpbion por uma resposta no tópico

    1 ponto
    Obrigado, não conhecia esse atributo.
  20. [BUG] Depot Player Passa por dentro

    locauty reagiu a mattos123 por uma resposta no tópico

    1 ponto
    Vá no seu items.xml localize o ID do tile que está usando , e edite a seu gosto. <item id="ID_FLOOR" article="a" name="depot floor"> <attribute key="walkStack" value="0" /> -- [Solução] </item>
  21. (Resolvido)Porta que só passa level 2000

    thelifeofpbion reagiu a ledcar por uma resposta no tópico

    1 ponto
    foi mal taa ae +rep hahahahahaha
  22. [AJUDA] Não sei configurar sources

    tataboy67 reagiu a thelifeofpbion por uma resposta no tópico

    1 ponto
    se você já tem a parta com todos os arquvios do servidor v1. você vai precisar compilar, para ele vira rum .exe (executavel) que você abre o ot... é assim que "entra" no seu servidor.. para compilar você vai precisar de um programa... não sei bem ao certo qual você precisa mas eu sempre usei o dev-c++, basicamente você teria que abrir o programa, colocar os arquivos lá dentro e ele irá compilar... Bom se você uma procurada aqui no fórum você vai achar tutorial de como compilar.. basta dar uma procuradinha.
  23. [Action+Movement] Cartas ao GOD

    Ackerzin reagiu a thelifeofpbion por uma resposta no tópico

    1 ponto
    De nada.. se precisar pode chamar.. qualquer hora eu atualizo ele, sei lá coloco prioridade de cartas pra quem é donate do servidor ou outras coisas.. não sei vou pensar kkk
  24. (Resolvido)Porta que só passa level 2000

    ledcar reagiu a thelifeofpbion por uma resposta no tópico

    1 ponto
    aé.... kkkkkkkkkkkkk foi mal usei o operador lógico > inves de >= pronto.
  25. Removedor de fundo de Sprites

    thelifeofpbion reagiu a rechdan por uma resposta no tópico

    1 ponto
    Boa parde pessoal, hoje mesmo fiz um "removedor de fundo rosa" para as minhas sprites de Tibia e gostaria da opinião de você se eu posto ele ou nem precisa? Imagem: Concluído: Imagens transparentes: :D
  26. 1 ponto
    @SoyColombiaa não precisa isso tudo para o script, existe uma função que conta quantos saves o player tem, sendo que quando criamos uma conta, ele vem em 0, ou seja, nunca logou, ao logar e salvar, ele irá mudar para 1, e a cada login e save ele vai aumentando. Mas os detalhes finais não importa, o que importa é que quem nunca logou o login é 0, então use isso para seu script. Assim, dessa maneira: Se o player nunca logou, ele é teleportado, recebe a msg e etc... Use este script. As contas não logam mais por causa do return true que está retornando apenas o if, e não o callback, ao usar um return true no callback onLogin, você está permitindo que todos loguem, porém o return está dentro do if, retornando apenas ele, por isso o erro. O callback não está retornando nada, então por padrão ele impede o login, para evitar transtorno. Huahsuas
  27. (Resolvido)Mudando vocação

    Duality reagiu a KotZletY por uma resposta no tópico

    1 ponto
    @Duality Em vocNeed você altera para a vocação que pode mudar, caso a vocação for diferente da que está ali, o npc não irá mudar.
  28. Player entra dentro do outro player no pz

    alisoncelso reagiu a Ackerzin por uma resposta no tópico

    1 ponto
    que bom que deu certo
  29. Então, na minha página eu crio scripts gratuitos e pagos. Meus gratuitos fazem somente o seguinte -> Repot / Loot seller / Morre Volta Correr de pk, trocar de hunt se alguém abrir pk, escolher hunt aleatoriamente toda vez que repotar, ir treiner por um tempo se alguem abrir pk, ir treiner com 15h de stamina entre outros são scripts pago. No momento estou dando suporte para gratuitos somente para os servidores, Megatibia, Underwar e MegaStyller. Mesmo assim eles são "pedidos" que não tem data para ficarem prontos. A listagem dos scripts já feitos está aqui; https://ciroscript.wixsite.com/elfbot Bom resumindo... O pedido vai ser analisado, mas não tem data para ficar pronto... Tenho muitos pedidos na página, facebook.com/ciroscript
  30. Quero Abri um OT

    kauzs reagiu a KotZletY por uma resposta no tópico

    1 ponto
    Esta é uma mensagem automática! Este tópico foi movido para a área correta. Pedimos que você leia as regras do fórum.
  31. Buff entrando em conflito.

    Radamanthys Wov reagiu a KotZletY por uma resposta no tópico

    1 ponto
    @Radamanthys Wov
  32. Clicou na estatua nasceu boss

    Nepterius1 reagiu a thelifeofpbion por uma resposta no tópico

    1 ponto
    <action itemid="XXXX" event="script" value="XXXX.lua"/>
  33. [Source] Mostrar level correto (chat,skills)

    poko360 reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    existe diferença entra memória física (hd, por ex) e memória ram (processamento). Todo código que você executa pode consumir ambos mas em geral memória física você tem sobrando então a galera se preocupa muito mais com processamento do que com quantas variáveis ou tabelas você tá utilizando. Mesmo em uma VPN de 1GB de memória física, utilizar variáveis a mais ou a menos não irá afetar tanto quanto um processo lento. As coisas que os players fazem no ot tão o tempo todo consumindo e liberando memória física mas acima de tudo elas consomem uma quantidade razoável de memória ram então você tem sempre que tentar fazer as coisas de um jeito que não consuma toda a memória ram quando você executar aquele script. Você precisa fazer a análise de complexidade para ter uma idéia de quantas vezes aquele processo em questão vai ser executado e tentar melhorar isso. Um exemplo de fácil entendimento seria uma alavanca que cada vez que você clicar varresse uma área quadrada de X sqms pra direita e Y sqms pra cima teleportando todos os players para o templo: perceba que você irá executar esse código Y * X vezes (pra cada sqm dessa área quadrada) e que isso por um certo tempo irá ficar um processo aberto consumindo memória ram. Se a área for muito grande ou você tiver vários players ao mesmo tempo executando esse código pode ser que dê um certo lag no servidor até ele terminar de executar todos os processos e liberar memória ram novamente.
  34. Olá amigo, uma qual peso do seu servidor? qual servidor é baiak? global? está com duvidas em windows ou linux? nós da JNetworks instalamos seu servidor Gratis, apos a contratação de algum plano acima de 3gb, e te explicamos e sanamos todas suas duvidas. Tem mais alguma duvida? estou aqui pra te ajudar, se tem me deixa saber!
  35. Ovh cloud server

    Antipush reagiu a Jnetworks por uma resposta no tópico

    1 ponto
    Olá amigo, boa noite! OTServer usa 1 core sim! para 250 jogadores. te aconselho a contratar um Cloud Dedicado de 8 GB de ram, se ouver OTx é claro! se tiver mais duvidas me procure: Jnetworks.com.br
  36. (Resolvido)Mudando vocação

    Radamanthys Wov reagiu a KotZletY por uma resposta no tópico

    1 ponto
    @Duality vá em data/npc/script crie um arquivo com o nome desejado com a extensão lua e adicione esse script dentro: em data/npc crie um arquivo com o nome desejado, com a extensão xml e cole esse code dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Nome do NPC" script="NomeDoArquivo.lua" walkinterval="999000" floorchange="0"> <health now="150" max="150"/> <look type="795" head="20" body="100" legs="50" feet="99" corpse="2212"/> <parameters> <parameter key="message_greet" value="Estou vendendo tal vocação. Gostaria de comprar ?"/> </parameters> </npc> não esqueça de configurar o item desejado, a quantidade que precisa, a vocação, e as falas. Não esqueça também de bota o nome do npc, e o nome do arquivo lua na xml do npc.
  37. (Resolvido)Talkction de food

    JcA reagiu a KotZletY por uma resposta no tópico

    1 ponto
    @JcA crie um arquivo na pasta script dentro da pasta talkactions, com o nome de food.lua e adicione esse script dentro: Tag para colocar no talkactions.xml: <talkaction words="!food" event="script" value="food.lua"/> agora basta configurar do jeito que deseja!
  38. Player entra dentro do outro player no pz

    alisoncelso reagiu a Ackerzin por uma resposta no tópico

    1 ponto
    hm, se fosse 0.4 te passava a minha, tenta mudar esse items aqui Da ctrl + F escreve "11059" e substitui por esse aqui </item> <item id="11059" article="a" name="glowing switch"> <attribute key="walkStack" value="0"/> </item>
  39. Player entra dentro do outro player no pz

    alisoncelso reagiu a Ackerzin por uma resposta no tópico

    1 ponto
    qual tfs se usa?
  40. Yurots 1.2 [8.60]

    dimiot reagiu a Bon por uma resposta no tópico

    1 ponto
    Obrigado por relembrar um clássico meu! Até eu GOD Bon perdi a versão 8.1 que era toda XML que era baseado nas sources do EVOLUTION. Um grande abraço amigo!
  41. Yurots 1.2 [8.60]

    mattos123 reagiu a Wakon por uma resposta no tópico

    1 ponto
    Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
  42. [Source] Mostrar level correto (chat,skills)

    poko360 reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    vai usar mais memória pq esses bits a mais que vc usa tem que ficar alocados em algum lugar, mas tirando isso nao tem problema nenhum, só precisa saber onde alterar os tipos de cada variavel.
  43. [Talkactions] !fly

    Duality reagiu a luangop por uma resposta no tópico

    1 ponto
    function onSay(cid, words, param) pos = {x=1054, y=1050, z=7} if getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "Nao ira fugir quando estiver de battle!") return true end if getTilePzInfo(getCreaturePosition(cid)) == FALSE then doPlayerSendTextMessage(cid,22,"Você Precisa estar em Protection Zone!") return true end doSendMagicEffect(getPlayerPosition(cid),19) doPlayerSendCancel(cid,"Teleportado!") doTeleportThing(cid,pos) return true end
  44. [ME AJUDE] Systema de Held OTC

    Dornellas reagiu a Noob II por uma resposta no tópico

    1 ponto
    Troque o script por esse ai: Esse script original do servidor está cheio de gambiarra junto com o MOD! Ai alterei ele quase todo para funcionar normal, teste ai
  45. Poketibia 9.60 by lazarocp

    ScpEd reagiu a lazarocp por uma resposta no tópico

    1 ponto
    removido
  46. [GESIOR] Codigos PHP ! Menus,Submenus

    HaragOT reagiu a Yok por uma resposta no tópico

    1 ponto
    •► Tutorial 100% feito por mim: Yok •► Acredito que este tópico ira ajudar aqueles que tem dificuldades em adicionar Novos Menus, Novos Submenus, edita-los e enfeita-los com frescuras. •► O código abaixo contem o Menu. <div id="Nome Do Menu" class="menuitem"> <span onclick="MenuItemAction('nome do menu')"> <div class="MenuButton" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/button-background.gif);"> <div onmouseover="MouseOverMenuItem(this);" onmouseout="MouseOutMenuItem(this);"><div class="Button" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/button-background-over.gif);"></div> <span id="forum_Lights" class="Lights"> <div class="light_lu" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> <div class="light_ld" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> <div class="light_ru" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> </span> <div id="forum_Icon" class="Icon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/imagem1.gif);"></div> <div id="forum_Label" class="Label" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/label-forum.gif);"></div> <div id="forum_Extend" class="Extend" style="background-image: url(<?PHP echo $layout_name; ?>/images/general/plus.gif);"></div> </div> </div> </span> •► Sumario: Primeiro você ira editar as seguintes partes do código. Todas as colocações usando essa tag //-- nao copie, apenas leia <div id="Nome do Menu" //--aqui voce colocara o nome do menu a sua escolha <span onclick="MenuItemAction('nome do menu')"> //--novamente aqui voce ira colocar apenas o nome do menu <precisa ser igual a de cima .= sim precisa> <div id="forum_Icon" class="Icon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/imagem1.gif);"></div> //-- aqui é onde voce ira modificar o icone que aparecera no seu novo menu. Basta apenas voce entrar no seguinte diretório <C:\xampp\htdocs\layouts\tibiarl\images\menu\>agora voce ira precisar de uma imagem <.GIF> , apos obtela basta apenas voce renomea-la para o nome <imagem1> e colar na pasta <C:\xampp\htdocs\layouts\tibiarl\images\menu\> e pronto seu novo icon estara no menu. <div id="forum_Label" class="Label" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/imagem2.gif);"></div> //-- voce ira repetir o processo de cima porem aqui voce ira colocar a imagem que dara o nome ao seu menu. Você precisara de uma imagem <.GIF> com o nome de <imagem2> •► Adicionando: Para adicionar o Menu ao seu site, vá ate o seguinte diretório <C:\xampp\htdocs\layouts\tibiarl> e abra o seguinte arquivo layout.php. Você encontra linhas de códigos parecidas com essas <div id="forum_Submenu" class="Submenu"> <a href="?subtopic=forum"> <div id="submenu_forum" class="Submenuitem" onmouseover="MouseOverSubmenuItem(this)" onmouseout="MouseOutSubmenuItem(this)"> <div class="LeftChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div> <div id="ActiveSubmenuItemIcon_forum" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div> <div id="ActiveSubmenuItemLabel_forum" class="SubmenuitemLabel">Server Forum</div> <div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div> </div> </a> </div> </div> <div id="account" class="menuitem"> <span onclick="MenuItemAction('account')"> <div class="MenuButton" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/button-background.gif);"> <div onmouseover="MouseOverMenuItem(this);" onmouseout="MouseOutMenuItem(this);"><div class="Button" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/button-background-over.gif);"></div> <span id="account_Lights" class="Lights"> <div class="light_lu" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> <div class="light_ld" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> <div class="light_ru" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> </span> <div id="account_Icon" class="Icon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-account.gif);"></div> <div id="account_Label" class="Label" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/label-account.gif);"></div> <div id="account_Extend" class="Extend" style="background-image: url(<?PHP echo $layout_name; ?>/images/general/plus.gif);"></div> </div> </div> </span> •► Se olharem com cuidado vocês verão a linha do Código do Submenu sendo terminada em </div> e começando uma nova linha <div id="account" class="menuitem">. Diante disso , com seu código já editado você colara ele entre essas duas linhas de códigos. •► Resultado: <div id="forum_Submenu" class="Submenu"> <a href="?subtopic=forum"> <div id="submenu_forum" class="Submenuitem" onmouseover="MouseOverSubmenuItem(this)" onmouseout="MouseOutSubmenuItem(this)"> <div class="LeftChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div> <div id="ActiveSubmenuItemIcon_forum" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div> <div id="ActiveSubmenuItemLabel_forum" class="SubmenuitemLabel">Server Forum</div> <div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div> </div> </a> </div> </div> <div id="Nome do Menu" class="menuitem"> <span onclick="MenuItemAction('Nome do Menu')"> <div class="MenuButton" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/button-background.gif);"> <div onmouseover="MouseOverMenuItem(this);" onmouseout="MouseOutMenuItem(this);"><div class="Button" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/button-background-over.gif);"></div> <span id="forum_Lights" class="Lights"> <div class="light_lu" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> <div class="light_ld" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> <div class="light_ru" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> </span> <div id="forum_Icon" class="Icon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/imagem1.gif);"></div> <div id="forum_Label" class="Label" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/imagem2.gif);"></div> <div id="forum_Extend" class="Extend" style="background-image: url(<?PHP echo $layout_name; ?>/images/general/plus.gif);"></div> </div> </div> </span> <div id="account" class="menuitem"> <span onclick="MenuItemAction('account')"> <div class="MenuButton" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/button-background.gif);"> <div onmouseover="MouseOverMenuItem(this);" onmouseout="MouseOutMenuItem(this);"><div class="Button" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/button-background-over.gif);"></div> <span id="account_Lights" class="Lights"> <div class="light_lu" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> <div class="light_ld" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> <div class="light_ru" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/green-light.gif);"></div> </span> <div id="account_Icon" class="Icon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-account.gif);"></div> <div id="account_Label" class="Label" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/label-account.gif);"></div> <div id="account_Extend" class="Extend" style="background-image: url(<?PHP echo $layout_name; ?>/images/general/plus.gif);"></div> </div> </div> </span> •► Caso você tenha seguido o tópico a risca você ira ter exito, caso não tenha conseguido deixe sua mensagem para mim poder ajuda-lo Este tópico ainda sofrera atualizações !
  47. Town Scroll (teleporta pra cidade e remove o item)

    tirso reagiu a Fir3z por uma resposta no tópico

    1 ponto
    Nome: Town Scroll Autor: Eu (Fir3z) Servidor Testado: TFS 0.4_dev (8.6) Descrição: O script consiste em você usar o town scroll e será teleportado para a cidade onde você mora, simples! Você também pode configurar se quer que use somente em pz, se precisa estar sem battle e se o item irá remover ao ser usado. Vamos ao script Em actions\actions.xml adicione a seguinte linha: <action itemid="xxxx" event="script" value="town scroll.lua"/> itemid="xxxx" aqui você coloca o item que será usado. Em actions\scripts crie um arquivo com o nome town scroll.lua e cole o código: function onUse(cid, item, frompos, item2, topos) local config = { pz = false, -- false = não precisa estar em protect zone battle = true, -- true = não pode ter battle remover = true, -- true = remove o item } local cidade = getTownTemplePosition(getPlayerTown(cid)) local posicao = getCreaturePosition(cid) if config.pz == true and getTilePzInfo(posicao) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você precisa estar em protection zone pra poder teleportar.") elseif config.battle == true and getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar sem battle pra poder teleportar.") else if config.remover == true then doRemoveItem(item.uid) end doSendMagicEffect(posicao, CONST_ME_POFF) doTeleportThing(cid, cidade) doSendMagicEffect(cidade, CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Voce foi teleportado e o town scroll destruido.") end return true end Pronto! Já está funcionando. Simples não?
  48. pbOT [8.6] Full

    cauemores reagiu a infertalist994794 por uma resposta no tópico

    1 ponto
    Você é o dono do Pbotwars? O ot é bom d+, mas vc tem o mapa do pbOT do pbGO? 8.5? ou 8.6
  49. 1 ponto
    Assunto: Passando o seu servidor de narutibia de 8.54 para 8.60. Tutorial: Baixe o servidor "Crying Dasmon Forgotten Server 8.60" & o "RME" (ou qualquer outro editor que funcione na versão 8.60). Abra o mapa do Forgotten Server e vá em: File > Import > Map Depois de importado dê save e apague tudo da pasta data do Forgotten Server (menos a pasta World do mapa) e coloque as do NTO Shinobi. Após isto configure a config.lua para mysql (phpmyadmin) e pronto. Bugs: Caso dê bug nos Monsters/NPC do seu server, abra seu mapa no RME e vá em: File > Import > NPC or Monster Selecione todos os arquivos .xml de npc e monster da sua pasta data. Downloads: Crying Dasmon Forgotten Server 8.60 RME Creditos: Vegettotaku (eu, pelo tutorial) Naruto Shinobi [Hoobin Hood] (Pelo Server) Crying Dasmon (Pelo Server)
  50. Entao cara.... sou novo enao sei se seu topico está no lugar correto... mas aqui vai minha seguinte dica: 1 e 3- Como adicionar os ataques de m1 ate m12 de cada pokemon, e deixar ele forte? R: vai la onde vc falou, data/lib/configuration.lua... procura pela tabela "movestable", lá tem a descriçao dos moves de cada pokemon. Lá voce podeadicionar os moves de novos pokemons, ou editar os já existentes. Colei aqui em baixo o exemplo do Ivysaur " ["Ivysaur"] = {move1 = {name = "Quick Attack", level = 5, cd = 15, dist = 2, target = 1, f = 40, t = "normal"}, move2 = {name = "Razor Leaf", level = 12, cd = 10, dist = 4, target = 1, f = 33, t = "grass"}, move3 = {name = "Vine Whip", level = 19, cd = 20, dist = 1, target = 0, f = 65, t = "grass"}, move4 = {name = "Headbutt", level = 16, cd = 15, dist = 1, target = 1, f = 70, t = "normal"}, move5 = {name = "Leech Seed", level = 16, cd = 60, dist = 3, target = 1, f = 1, t = "grass"}, move6 = {name = "Bullet Seed", level = 28, cd = 35, dist = 1, target = 0, f = 95, t = "grass"}, move7 = {name = "Solar Beam", level = 31, cd = 60, dist = 1, target = 0, f = 135, t = "grass"}, move8 = {name = "Sleep Powder", level = 20, cd = 80, dist = 1, target = 0, f = 0, t = "normal"}, move9 = {name = "Stun Spore", level = 18, cd = 45, dist = 1, target = 0, f = 0, t = "normal"}, move10 = {name = "Poison Powder", level = 17, cd = 45, dist = 1, target = 0, f = 0, t = "normal"}, }," insira: nome_do_ataque/level_required para usar o ataque/cd(tempo para usar o ataque de novo)/dist=distancia minima para usar o ataque/target, qndo igual a 1 é pq o vc TEM q selecionar um alvo pra usar o ataque/ f= FORÇA DO ATAQUE(aqui vc pode aumentar a força de um ataque de algum pokemon)/t= type do ataque... se é do tipo ghost,fire,water,etc... 2- como faço pra dar catch no pokemon??? R: vai nesse mesmo arquivo data/lib/configuration.lua la voce vai encontrar outra table "pokecatches" vou colocar novamente o exemplo do ivysaur: ["Ivysaur"] = {chance = 100, corpse = 5982}, voce colaca o nome do pokemon/chance= quanto maior, mais dificil de pegar (para mais detalhes da "formula do catch entre em data/lib/catch system.lua)/corpse=ID da sprite do pokemon morto.... era isso mesmo que voce tava querendo saber? se ajudei, REP+ =)
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo