Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 05/13/15 em todas áreas
-
Estátua Que Joga Raio By Notle
jeanflamengo e 2 outros reagiu a notle2012 por um tópico no fórum
vai em data\globalevents\scripts cria um arquivo com nome parede_que_atira.lua coloca isso -- config by uotl£ -- distancia contando os quadros no chao ate chegar a parede resumo tamanho do raio -- lado_raio 1 ->> 2 <<-- 3 / \ 4 | -- | \ / effect = efeito pos = posição dano = porcentagem do dano local config = { {effect = 30,pos = {x = 143, y = 120, z = 7},distancia = 7,dano = 34,lado_raio = 3}, --{effect = 29,pos = {x = 131, y = 47, z = 7},distancia = 3,dano = 34,lado_raio = 2}, --{effect = 28,pos = {x = 131, y = 48, z = 7},distancia = 5,dano = 34,lado_raio = 3}, --{effect = 28,pos = {x = 131, y = 48, z = 7},distancia = 6,dano = 34,lado_raio = 4} } -- config by uotl£ function onThink(cid, interval, lastExecution) atirador () return true end function atirador () for sinal, valor in pairs(config) do for i = 1,valor.distancia do if valor.lado_raio == 1 then doSendMagicEffect({x = valor.pos.x+i, y = valor.pos.y, z = valor.pos.z},valor.effect) check = {x = valor.pos.x+i, y = valor.pos.y, z = valor.pos.z,stackpos=255} elseif valor.lado_raio == 2 then doSendMagicEffect({x = valor.pos.x-i, y = valor.pos.y, z = valor.pos.z},valor.effect) check = {x = valor.pos.x-i, y = valor.pos.y, z = valor.pos.z,stackpos=255} elseif valor.lado_raio == 3 then doSendMagicEffect({x = valor.pos.x, y = valor.pos.y-i, z = valor.pos.z},valor.effect) check = {x = valor.pos.x, y = valor.pos.y-i, z = valor.pos.z,stackpos=255} elseif valor.lado_raio == 4 then doSendMagicEffect({x = valor.pos.x, y = valor.pos.y+i, z = valor.pos.z},valor.effect) check = {x = valor.pos.x, y = valor.pos.y+i, z = valor.pos.z,stackpos=255} end tmp = getThingFromPos(check) if(tmp.uid ~= 0) then if isPlayer(tmp.uid) then -- se quer que attack os bichos usa esse "if isCreature(tmp.uid) then" p = (getCreatureMaxHealth(tmp.uid)/100)*valor.dano doCreatureAddHealth(tmp.uid, -p) doSendAnimatedText(getCreaturePosition(tmp.uid), math.ceil (p),145) end end end end end TAG em data\globalevents\globalevents.xml coloca isso <globalevent name="parede_que_atira" interval="5" event="script" value="parede_que_atira.lua"/> uma demostração em video3 pontos -
data/talkactions/script/mute.lua TFS 1.1 : function onSay(cid, words, param) local CHANNEL_HELP = 7 local player = Player(cid) local storage = 456112 if words == "/mute" then local mute = param:split(",") if mute[1] == nil or mute[1] == " " then player:sendCancelMessage("Invalid player specified.") return false end if mute[2] == nil or mute[2] == " " then player:sendCancelMessage("Invalid time specified.") return false end local target = Player(mute[1]) local time = tonumber(mute[2]) local condition = Condition(CONDITION_CHANNELMUTEDTICKS, CONDITIONID_DEFAULT) condition:setParameter(CONDITION_PARAM_SUBID, CHANNEL_HELP) condition:setParameter(CONDITION_PARAM_TICKS, time*60*1000) if player:getAccountType() < ACCOUNT_TYPE_TUTOR then return false end if target == nil then player:sendCancelMessage("A player with that name is not online.") return false end if target:getAccountType() >= ACCOUNT_TYPE_TUTOR then player:sendCancelMessage("Only player can be mutated") return false end target:addCondition(condition) sendChannelMessage(CHANNEL_HELP, TALKTYPE_CHANNEL_R1, target:getName() .. " has been muted by " .. player:getName() .. " for using Help Channel inappropriately.") target:setStorageValue(storage, 1) return false end if words == "/unmute" then local remove = Player(param) if player:getAccountType() < ACCOUNT_TYPE_TUTOR then return false end if remove == nil then player:sendCancelMessage("A player with that name is not online.") return false end if remove:getAccountType() >= ACCOUNT_TYPE_TUTOR then return false end if remove:getStorageValue(storage) == 1 then remove:removeCondition(CONDITION_CHANNELMUTEDTICKS, CONDITIONID_DEFAULT, CHANNEL_HELP) sendChannelMessage(CHANNEL_HELP, TALKTYPE_CHANNEL_R1, remove:getName() .. " has been unmuted by " .. player:getName() .. ".") remove:setStorageValue(storage, -1) else player:sendCancelMessage("A player " .. remove:getName() .. "is not mutated") end end return false end em talkactions.XML, adicione : <talkaction words="/mute" separator=" " script="mute.lua" /> <talkaction words="/unmute" separator=" " script="mute.lua" /> Modo de usar : /mute ScreaM, 1 /unmute ScreaM3 pontos
-
Testei aqui e funcionando 100% : local arena = { frompos = {x = 137, y = 380, z = 7}, topos = {x = 154, y = 403, z = 7}, } function isInRange(pos, fromPos, toPos) return pos.x >= fromPos.x and pos.y >= fromPos.y and pos.z >= fromPos.z and pos.x <= toPos.x and pos.y <= toPos.y and pos.z <= toPos.z end function onPrepareDeath(player, killer, mostDamageKiller) if player:isPlayer() and killer:isMonster() then local ppos = player:getPosition() if isInRange(ppos, arena.frompos, arena.topos) then player:teleportTo(player:getTown():getTemplePosition()) player:addHealth(player:getMaxHealth()) player:addMana(player:getMaxMana()) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You were killed by '.. killer:getName() ..'.') end end return true end function onLogin(player) player:registerEvent("MArena") return true end <event type="preparedeath" name="MArena" script="arquivo.lua"/> <event type="login" name="verf_MArena" script="arquivo.lua"/>2 pontos
-
Show Off :~ Dicas? Sugestões?1 ponto
-
[RESULTADO] SOTW #2
Gabriel Couto reagiu a Krono por um tópico no fórum
Boa, parabéns aos participantes, no próximo irei participar, está um concurso muito disputado.1 ponto -
Dar Mount de Prêmio
JonatasLucasf reagiu a Furabio por uma questão
Teste : local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local xmsg = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local storage = 62003 local monsters = { ["Dragons"] = {storage = 5010, mstorage = 19000, amount = 10, exp = 5000, mount = 10}, ["Dragon Lords"] = {storage = 5011, mstorage = 19001, amount = 10, exp = 10000, mount = 20}, ["Hydras"] = {storage = 5012, mstorage = 19002, amount = 10, exp = 18000, mount = 30}, ["Demons"] = {storage = 5013, mstorage = 19003, amount = 10, exp = 20000, mount = 40} } local function Cptl(f, r) return f:upper()..r:lower() end function creatureSayCallback(cid, type, msg) local player, cmsg = Player(cid), msg:gsub("(%a)([%w_']*)", Cptl) if not npcHandler:isFocused(cid) then if msg == "hi" or msg == "hello" then npcHandler:addFocus(cid) if player:getStorageValue(storage) == -1 then local text, n = "", 0 for k, x in pairs(monsters) do if player:getStorageValue(x.mstorage) < x.amount then n = n + 1 text = text .. ", " text = text .. ""..x.amount.." {"..k.."}" end end if n > 1 then npcHandler:say("I have several tasks for you to kill monsters"..text..", which one do you choose? I can also show you a {list} with rewards and you can {stop} a task if you want.", cid) npcHandler.topic[cid] = 1 xmsg[cid] = msg elseif n == 1 then npcHandler:say("I have one last task for you"..text..".", cid) npcHandler.topic[cid] = 1 else npcHandler:say("You already did all tasks, I have nothing for you to do anymore, good job though.", cid) end elseif player:getStorageValue(storage) == 1 then for k, x in pairs(monsters) do if player:getStorageValue(x.storage) == 1 then npcHandler:say("Did you kill "..x.amount.." "..k.."?", cid) npcHandler.topic[cid] = 2 xmsg[cid] = k end end end else return false end elseif monsters[cmsg] and npcHandler.topic[cid] == 1 then if player:getStorageValue(monsters[cmsg].storage) == -1 then npcHandler:say("Good luck, come back when you killed "..monsters[cmsg].amount.." "..cmsg..".", cid) player:setStorageValue(storage, 1) player:setStorageValue(monsters[cmsg].storage, 1) else npcHandler:say("You already did the "..cmsg.." mission.", cid) end npcHandler.topic[cid] = 0 elseif msgcontains(msg, "yes") and npcHandler.topic[cid] == 2 then local x = monsters[xmsg[cid]] if player:getStorageValue(x.mstorage) >= x.amount then npcHandler:say("Good job, here is your reward, ".. x.mount..".", cid) player:addMount(x.mount) player:addExperience(x.exp) player:setStorageValue(x.storage, 2) player:setStorageValue(storage, -1) npcHandler.topic[cid] = 3 else npcHandler:say("You didn't kill them all, you still need to kill "..x.amount -(player:getStorageValue(x.mstorage) + 1).." "..xmsg[cid]..".", cid) end elseif msgcontains(msg, "task") and npcHandler.topic[cid] == 3 then local text, n = "", 0 for k, x in pairs(monsters) do if player:getStorageValue(x.mstorage) < x.amount then n = n + 1 text = text .. (n == 1 and "" or ", ") text = text .. "{"..k.."}" end end if text ~= "" then npcHandler:say("Want to do another task? You can choose "..text..".", cid) npcHandler.topic[cid] = 1 else npcHandler:say("You already did all tasks.", cid) end elseif msgcontains(msg, "no") and npcHandler.topic[cid] == 1 then npcHandler:say("Ok then.", cid) npcHandler.topic[cid] = 0 elseif msgcontains(msg, "stop") then local text, n = "", 0 for k, x in pairs(monsters) do if player:getStorageValue(x.mstorage) < x.amount then n = n + 1 text = text .. (n == 1 and "" or ", ") text = text .. "{"..k.."}" if player:getStorageValue(x.storage) == 1 then player:setStorageValue(x.storage, -1) end end end if player:getStorageValue(storage) == 1 then npcHandler:say("Alright, let me know if you want to continue an other task, you can still choose "..text..".", cid) else npcHandler:say("You didn't start any new task yet, if you want to start one, you can choose "..text..".", cid) end player:setStorageValue(storage, -1) npcHandler.topic[cid] = 1 elseif msgcontains(msg, "list") then local text = "Tasks\n\n" for k, x in pairs(monsters) do if player:getStorageValue(x.mstorage) < x.amount then text = text ..k .." ["..(player:getStorageValue(x.mstorage) + 1).."/"..x.amount.."]:\n Rewards:\n ".. x.mount .."\n "..x.exp.." experience \n\n" else text = text .. k .." [DONE]\n" end end player:showTextDialog(1949, "" .. text) npcHandler:say("Here you are.", cid) elseif msgcontains(msg, "bye") then npcHandler:say("Bye.", cid) npcHandler:releaseFocus(cid) else npcHandler:say("What?", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) a identação ficou bem bugada por causa que usei o ident automático no script sem identação... em : ["Dragons"] = {storage = 5010, mstorage = 19000, amount = 10, exp = 5000, mount = 10}, mount = ID DA MOUNT1 ponto -
Esta função: doBroadcastMessage(getPlayerName(cid) .. " Acabou de dar: " .. t[2] .." ".. getItemNameById(t[1]) .. " para todos os players online!") Está dentro do looping, ou seja, se tiver 1000 players online ele vai dar 1000 Broadcast Messages certo? Uma dica rápida: if i == 1 then doBroadcastMessage(getPlayerName(cid) .. " Acabou de dar: " .. t[2] .." ".. getItemNameById(t[1]) .. " para todos os players online!") end1 ponto
-
[Dúvida] Como retirar status do perfil do char
Elias Palermo reagiu a Wend ll por uma questão
última vez kk, troque o skills.lua por esse:1 ponto -
Paralyze
ScythePhantom reagiu a AdilsonHacker por uma questão
Tenta: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 7000) setConditionFormula(condition, -0.3, 0, -0.3, 0) setCombatCondition(combat, condition) function onCastSpell(cid, var) setPlayerStorageValue(cid, 12019, 1) addEvent(setPlayerStorageValue, 500, cid, 12019, -1) if(not doCombat(cid, combat, var)) then return false end doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_GREEN) return true end1 ponto -
Olha, peço gentilmente que evite estes tipos de resposta em tópicos, para evitar discussões. Você não reportou, porém, de acordo com o post aqui no tópico, foi este procedimento que você tomou, por isso utilizei o termo. Quando você for reportar um post, um erro, ou algo do tipo, não precisa de um post para descrever qual procedimento foi tomado, simplesmente reporte. Que fique claro, pois já é a terceira vez que estou falando com você sobre isso.1 ponto
-
[Dúvida] Como retirar status do perfil do char
Elias Palermo reagiu a Wend ll por uma questão
troque o seu skills.lua por esse:1 ponto -
[Dúvida] Como retirar status do perfil do char
Elias Palermo reagiu a Wend ll por uma questão
Troque a pasta por essa aqui: game_skills.rar1 ponto -
FusionPoke Open Beta Test!
Wend ll reagiu a bladeplays por um tópico no fórum
Obrigado ! Cara eu só acho que o servidor não tem culpa do seu PC seu um Lap-Top da XUXA ! Enquanto a pesca eu irei resolver isto ! (Eu coloquei no site um Executável OpenGL para quem usa X-Pad poder Jogar)1 ponto -
Era mais fácil ter procurado na seção de derivados mais olha alguns servidores de narutibia ai: http://www.xtibia.com/forum/topic/218893-nto-makita-sky-854/ http://www.xtibia.com/forum/topic/174203-854-naruto-seven-client-descompilado-download/ http://www.xtibia.com/forum/topic/233023-naruto-legend-v30/ http://www.xtibia.com/forum/topic/222037-nto-crysis-online/ http://www.xtibia.com/forum/topic/201810-854-naruto-legend-v20-novo-mapa-com-teleports/ http://www.xtibia.com/forum/topic/229043-nto-shippuden-854/ http://www.xtibia.com/forum/topic/206060-854-nto-robinhood-copia-do-ntoshinobi/ basta você escolher a base que lhe agradar mais ^^ Resolvido? se sim clique em melhor resposta para que tag seja adicionada automaticamente.1 ponto
-
Baixe esse RME aqui: http://www.4shared.com/rar/mflKTWO3ba/Remeres_Map_Editor.html? depois que baixar extraia para a sua área de trabalho, abra a pasta e localize o RME.exe e execute ele já com o RME aberto vá em file\preferences\client version desmarque todas as caixinhas e só deixe a extende marcada, logo abaixo procure Version 8.54 search path e clique em browse, vá na pasta do RME e clique na pasta Tibia 8.54. Feito isso só clicar em Apply e da Ok! pronto agora só ir em file\open e procura a pasta wolrd do seu servidor e seleciona o PokexCyan.otbm ^^1 ponto
-
[DUVIDA] Simples Task Bugada
Drk Shadow reagiu a notle2012 por uma questão
não achei erro ai já verificou se nome do bicho é mesmo do arquivo.xml exemplo data\monster\Dragons\Dragon Lord.xml nome é Dragon Lord dentro do arquivo ta <?xml version="1.0" encoding="UTF-8"?> <monster name="Dragon Lord" nameDescription="a dragon lord" race="blood" experience="2100" speed="240" manacost="0"> <health now="1900" max="1900"/> <look type="39" corpse="5984"/> <targetchange interval="5000" chance="8"/> <strategy attack="100" defense="0"/> <flags> nesse caso estaria certo verifica se não tem uma letra maiúsculas q no nome do arquivo.xml dos monster não tem1 ponto -
CHAR morre quando loga
Drk Shadow reagiu a notle2012 por um tópico no fórum
não entendi quando player morre nasce no mesmo lugar que morreu e morre de novo pro bixo e nasce e morre talvez isso resolve data\creaturescripts\scripts\login.lua coloca em baixo de function onLogin(cid) local posicao_do_jogador = {x = 160, y = 54, z = 7} doTeleportThing(cid,posicao_do_jogador,true) e mudar posicao_do_jogador de onde ele vai volta1 ponto -
Atributo de uma Vocaçao
Drk Shadow reagiu a notle2012 por um tópico no fórum
pra fazer isso é em data\movements\movements.xml e editar algo assim <movevent type="Equip" itemid="8904" slot="shield" level="70" event="function" value="onEquipItem"> <vocation id="1"/> <vocation id="5" showInDescription="0"/> <vocation id="2"/> <vocation id="6" showInDescription="0"/> </movevent> <movevent type="DeEquip" itemid="8904" slot="shield" event="function" value="onDeEquipItem"/> em vocation id você edita qual vocations pode usa tal item não sei se tem modo mais rápido de fazer isso em script lua1 ponto -
Efeito saindo do chao que tira life do player
Drk Shadow reagiu a notle2012 por uma questão
veja se isso te ajudaria http://www.xtibia.com/forum/topic/233879-estatua-que-joga-raio-by-notle/1 ponto -
FusionPoke Open Beta Test!
bladeplays reagiu a Wend ll por um tópico no fórum
Só posso desejar boa sorte, que fique online por muito e muito tempo1 ponto -
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) local from,to = {x = 154, y = 68, z = 7},{x = 160, y = 70, z = 7} if isPlayer(cid) and isMonster(lastHitKiller[1]) and isInRange(getCreaturePosition(cid), from, to) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doRemoveConditions(cid, false) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce saiu da arena.") return false end return true end1 ponto
-
FusionPoke Open Beta Test!
bladeplays reagiu a Wend ll por um tópico no fórum
Eu estava editando ele para colocar online mais tive uns problemas com os estudos e parei :\ e ele ainda não estava totalmente bom para por online porque ainda faltava ns sistemas e modificações ^^1 ponto -
Oque são as source? Source é todo o codigo fonte de seu trabalho/projeto, é lá onde fica todos os codigos utilizados para executar uma ação/função. Todo programa/jogo é escrito por um programador e esse programador deve escrever na linguagem de computador em uma ide para depois compilar e virar binário. Todo o código que o programador escreve, se chama source ou em portugues, código fonte. Não é obrigatório você mecher com a source de um otserv se você não tem domínio de programação. Pode continuar seu servidor normalmente baixando os arquivos data,executavel e dll. Como abrir uma source para editar? Como os códigos são apenas textos podemos abrir-los em um editor de texto normal, porem para facilitar o trabalho do programador usamos IDE, o mais popular no mundo dos otservs, Dev-cpp. Qualquer melhor servidor de poketibia para projeto? Como você já sabe, servidores sem source não presta então nem pense em usar PDA para projeto sério porq não vai durar uma semana já um servidor com source é diferente, claro que é difícil aprender a mexer nos arquivos da source mais só basta querer aprender. ai vai alguns servidores de poketibia com source: http://www.xtibia.com/forum/topic/233718-erondino-v17-bpo-open-source/ http://www.xtibia.com/forum/topic/233665-pokemon-imperium-open-source/ http://www.xtibia.com/forum/topic/232971-erondino-v16-bpo-open-source/ http://www.xtibia.com/forum/topic/232978-pokemon-dash-20-source/ http://www.xtibia.com/forum/topic/233057-pda-pokemon-dash-advanced-open-source-2015/ http://www.xtibia.com/forum/topic/232976-pna-pokemon-new-age-open-source/ http://www.xtibia.com/forum/topic/229673-pfield-project-open-source/ http://www.xtibia.com/forum/topic/230011-brpokeot-open-sources/ http://www.xtibia.com/forum/topic/222270-pokemon-online-x-com-sources/1 ponto
-
Dive System (Super Básico)
Lordbaxx reagiu a victormoaz por um tópico no fórum
Olá, Existem vários sistemas de dive por Talkaction, eu sinceramente acho fraco o rpg quando se usa Talkaction. Assim resolvi fazer por Action. Primeiramente vou explicar como é: O sistema nada mais é do que fazer com que o player que precisa estar surfando possa ir para baixo d'agua. No caso do meu script, o player precisa estar surfando e portando um determinado item (mascara de oxigenio). Segue o Script: Salve em um bloco de notas na pasta data/actions/scripts o script abaixo com o nome mascara.lua explicando: De vermelho é o id do item (mascara de oxigenio) que o player precisa ter na bag para poder dar dive. No arquivo data/actions/Actions.xml adicione a seguinte tag. explicando: O numero na cor verde é o id do item (redemunho), o qual deve ser colocado no mapa na água acima do local onde é undewater. O Sistema funciona assim: Estando em Surf e com a Mascara de Oxigenio, basta dar use no Redemonho que será teleportado para a waypoint do script (cave). obs.: É necessário que adicione uma escada ou espaço para rope, para que o player volte para a água (saindo do dive). IMAGEM: Creditos: BobStriker - 100% Fiz o script do 0 (zero) e muito rápido. Pode estar bem simples, mas é funcional. Duvidas e Sugestões, Comentem. att.1 ponto