-
Total de itens
110 -
Registro em
-
Última visita
-
Dias Ganhos
3
Tudo que subyth postou
-
Cara, seu website é top, livre de erros, testei tudo que tinha nele, é perfeito, completo e estável! Só que tem um problema na criação de personagens, gostaria que você possa me ajudar. 1º - em Account Name não pode separar as letras EX: Menino Louco, o site não permite apareçe o erro (This account name has an invalid format. Your account name may only consist of numbers 0-9 and letters A-Z!). Só da para criar conta se colocar ex: Meninolouco. 2º - Como faço para bloquear nomes de monstros/npcs por exemplo: Account Manager, Minotaur, Dragon, Demon...?
-
[Arquivado]Como você se protege de DDOS (nukers) ?
tópico respondeu ao Administrador de subyth em Noticias - Arquivo
kkk eu andei lendo todo esse tópico, está de parabéns quem o criou, isso ajuda bastante uns aos outros. DDoS pode ser aliviado, porém não poderá para-lo! Tive um servidor a 1~2 anos atrás, o mesmo atingiu 250~300 players online, o problema é que o fdp atacava a porta 80 e 7171, ao sair do servidor (morrer ou logar) vc não poderia + voltar ao jogo. Bem, Eu ultilizei uma máquina para filtrar os ataques (é um VPS, você pode ultilizar para levar ataques no lugar da sua maquina aonde está o servidor), não deu certo! CONCLUSÂO: peguei amizade com o fdp kkk trocamos ideias e ele me falou que o underwar parou de ser atacado porque ele paga mensalmente.... Da pra tu? shaUISHAIUSHuai Uma boa dica não é filtrar os ataques, isso deixa sua maquina um pouco pesada. Você precisa de uma proteção que responda os ataques, bloqueie os ips. Existem 2 meios, nunca contei para ninguem ++++ fazer oq kkk 1º - O proprio servidor vem com um banimento altomatico de bytes desconhecidos! Caso o servidor sofra de um ataque, o proprio servidor (que estará na porta 7171) identificará como byte desconheçido. Ele banirá o IP, você não sofrera + atk daquele ip! O PROBLEMA: Bots como Elf, Mage enviam pacotes para o servidor (porta 7171) e esses pacotes também são desconheçidos, nesse caso o ip levará ban. -- O problema é esse, players não poderam usar bot's... Isso ajuda um pouco (POUCO MSM, para aqueles que levam atks que o atacante é estágiario kk). > No config.lua procure por autoBanishUnknownBytes, só alterar para true 2º - Ip tables pesa no linux, filtrar pesa na resposta de sua maquina (aumentando o ping para os usuarios). Oque podes fazer é uma proteção que der ban altomaticamente no IP e/ou um programa que detecte pacotes enviados além do normal, nesse caso, ban IP nele kk (deveria existir sapoha + ninguem o fez ainda)... Ip table tem essa função, vc pode criar, caso detecte pacote + de 150 ban nele, porém como o autoBanishUnknownBytes, se for uso de bot é problema hsuIAHSUAIHSiua tem que ter um estudo para saber +/- quantos pacotes são enviados por cada maquina ZUMBI! Obs: já levei + de 2kk de pacotes mermão, a maquina travava, tinha que reiniciar, muitas vezes mal conseguia entrar na mesma, tinha que dar o reboot pelo Cpanel... Muitos de v6 ainda não sabem oque é sofrer com DDoS kkkkkkkkkkk #ProibaDDosDILMA XD -
Creio que todos servidores tanto Poke tibia como Naturo e Dbz, sai simplismente do anime, Aonde já se viu o treinador upar level para pegar um pokemon + forte? Tudo bem o pokemon pois ele evoui, + não tem nada a ver com o proprio treinador kkk Fora que no anime que o pokemon não morre, fica ferido e passa dias no hospital, porém no poke tibia ele sai na mesma hora. Fora uma série de coisas... Acho que ninguem aqui se importaria de varios zatch bell no mapa E também torneios \o/ E aqueles livros mano, tenho até varias ideias de como fazer kkkk E + uma coisa, no mundo dos mamodos, existem varios iguais. O problema é que ninguem vai querer jogar com outro mamodo além do zatch bell Isso torna a criação do jogo impossivel kkk EDIT: Zatch Bell tem o poder, O PODER!
-
nossa cara, minha infância mlk, pode fazer sem medo
-
Vamos ver oque eu ganho né? kspoaksoa
-
OK, mais uma vez, obrigado
-
RoksasDeu erro na função ontimer =( VodkartFuncionou, porém terei que deixar servidor online 24Hr para testar se está resetando =) PS: se o servidor fechar não tem problema certo? ele não vai apresentar bugs? REP+ para os 2! Obrigado.
-
Você chegou a ler o meu tópico? Eu pedi uma QUEST, não TASK --' Roksas Infelismente não foi bem isso que eu pedi... Seu script ele faz o player esperar 24horas... Se ele fizer a quest 11 horas, ele só poderá fazer novamente às 11 horas do outro dia! Eu queria que a quest resete às 00:00, sendo assim, todos que fizeram a quest, resetará. EX: Se um time fizer a quest às 22:00, quando chegar 00:00 a quest seria resetada e o mesmo time poderia fazer a quest novamente. E assim por diante. A quest tem que ser resetada para todos às 00:00
-
Versão: 8.60 TFS: 0.4 Bem, eu gostaria de uma Quest em que o player possa fazer apenas 1x por dia.. A quest reseta às 00:00, ai o player poderá faze-la novamente! o player recebe um item ID: 8110 (quantidade = 1)
-
Caraiu funcionou Valeu mesmo \o/ Agora sim em kkk REP + pro brun123 e Roksas
-
Gostaria de um script (Spell) que deixa o player invisivel... Eu pedi ajuda aqui anteriormente porém o script deixa o nick invisivel mais outfit fica = Utana VID, monstros e players podem ver... Script aqui: local k = { speed = 10, tempo = 2, storage = 25442, } local function visible(cid) if not isPlayer(cid) then return true end doCreatureSetHideHealth(cid, false) doChangeSpeed(cid, getCreatureSpeed(cid) - k.speed) end function onCastSpell(cid, var) if getPlayerStorageValue(cid, k.storage) > os.time() then return doPlayerSendCancel(cid, "You are exhausted.") end doCreatureSetHideHealth(cid, true) doSetCreatureOutfit(cid, {lookType = 0}, k.tempo*1000) doChangeSpeed(cid, getCreatureSpeed(cid) + k.speed) setPlayerStorageValue(cid, k.storage , os.time() + k.tempo) addEvent(visible, k.tempo*1000, cid) return true end Gostaria que ele ficasse mesmo invisivel! Já tentei looktype 1548 mais da Debug. (looktype 1548 = tile invisivel). PS: possuo Sources tfs 0.4, caso precise. TRADUZINDO: uma spell para player = a do warlock
-
Nossa namoral tira isso vey, um dos meus 1º mapas, no tempo que eu aprendi a usar o recorte do rme -- Edit -- Não vi o flood, sorry?!
- 2 respostas
-
- 8.6
- mapa próprio
-
(e 2 mais)
Tags:
-
aee, Obrigado FUncionou xD REP+
-
Olá pessoal, bem, eu estava com uma ideia e queria pedir ajuda de vocês! Gostaria de um script que diminuice a velocidade do character dependendo da stamina EX: Versão 8.54 0.3.6Pl1
-
Informações do Servidor: IP: fox-global.com (Port: 7171) Site: www.Fox-Global.com World type: PVP Cliente: 8.6 Experience: 300x Inicial (Estagiada) Magic Level: 25 Skill: 30 Loot: 3x Outras informações: Protect Level 60 Houses Level 100 Criar Guilds Level 100 Cidade principal > Thais editada. Grizzly Adams (Tasks) 100% Npc's de addon em areas free Muitas áreas vips Receba brindes por cada level-up Comece com 2 crystal coins. Todas Hunts 100% Todas Quests funcionando perfeitamente. Servidor Sem lags, Sem quedas, Sem bugs. Mapa perfeito. Vocações 100% balanceadas. Porque jogar o Fox-Global? Todos os players ao criar sua acc recebem 2 dias de VIP ACCOUNT FREE. Nossa equipe busca o verdadeiro RPG MEDIEVAL tornando o servidor diferente de qualquer outro ja visto, utilizamos mapa Global FULL ENORME totalmente completo. Sinta-se a liberdade de jogar um verdadeiro global perfeito com milhares de Hunts Vip e quests 100% e muito mais. Receba presentes por cada 50 level up. Rates balanceadas deixando jogo muito mais RPG e competitivo. Mapa totalmente RPG GLOBAL TOTALMENTE FULL SEM BUGS!. Servidor hospedado em grande empresa EUA. Sem lags, Uptime 100%. Servidor com Jogabilidade excelente. War System 100% com escudos. Nenhum membro da staff atrapalha andamento do jogo, Sinta-se livre para jogar a vontade. Mapa com 122+ Quests + 20 cidades (Inc. Norte de Zao, 20+ citys vips) Varias maneiras de adquerir ADDONs, Comprando addon doll no shop, comprando items de addon no npc, fazendo addon por npc igual Global. Ativação de Points em 30 minutos após a compra. Eventos: Double Loot (Momentos Especiais) Double Exp (Momentos Especiais) Invasões BOSS (Diariamente) Maratona de Eventos toda semana. Você tem bom no pvp? Estamos esperando você e sua guild para war!!! WWW.FOX-GLOBAL.COM
-
Servidor online 24hrs Dedicado Linux 100Mbps... Crie sua conta clicando aqui! Visite nosso shop clicando aqui! Nosso Servidor é completamente estável. Versão do servidor: 8.60 Porta: 7171 Mapa Global Full + Custom com as seguintes novidades: Task System 100% Raids Altomaticas Castle Domain (WoE) Guild War 100% Dota Event (com xp arrumado) Coliseum site: Globaltera.com
-
NOssa, rapido, muito rapido, vlw mesmo, vo testa ake, obrigado!!
-
Servidor utilizado: Crystal Server Versão: 8.7 (mais se preferir, poderá ser em 8.6, eu creio que consigo colocar em 8.7) Bem, eu to querendo um script desses há muito tempo, mais muito tempo mesmo, infelismente não sei fazer mais a minha ídeia continua. Gostaria de um teleport (ID:1387 - teleport normal) que quando o player entrar, esta sala irá dar um clean (apenas nessa sala) e irá apareçer um aviso em boxfly (axo que é essa a função, não me recordo bem) Bem, é uma caixa de aviso que avisa ao player que ele só poderá permanacer nessa sala por 5 minutos e depois disso será expuso... Bem, à área é essa: O player entra no teleport e é teleportado para a sala, bem, assim que ele entrar da sala, a sala é limpada (como um clean mais apenas na sala) assim evitará de o player perder tempo limpando., apareçe um aviso em boxfly para ele (infelismente não lembro a função) dizendo que ele só terá 5 minutos para fazer a forja. Quando passar 5 minutos dentro da sala, ele é chutado para fora (ele é teleportado para um local X aonde eu poderei modificar). Bem, queria algumas regras :s 1º - Só poderá entrar 1 player por vez, por isso 5 minutos para ele ser chutado da sala, caso outro player tente passar pelo teleport, uma mensagem de erro apareçerá como por exemplo "Já existe um jogador dentro da sala! Espere X minutos.". 2º - O player pode entrar quantas vezes quiser, claro, respeitando a regra dos 5 minutos exemplo: Y player entrou na sala, ficou na sala por 5 minutos, esgotou o tempo e ele foi chutado da sala, assim que ele for chutado, ele poderá entrar no teleport novamente. 3º - Eu gostaria que os items que são colocados pelo RMe não sejam limpos nessa sala, apenas os items que os players colocarem, como um Clean mesmo ;x 4º - Dar um clean (limpeza) na sala quando o player entrar no teleport, ... Mais a limpeza apenas dentro da sala... 5º - Terá um outro teleport na sala que serve para o player sair caso ele não queira esperar os 5 minutos... Irei ficar bastantemente grato por aquele que me ajudar ;x
-
Valeu vodka Como sempre, você é foda ;x
-
sim, essa mesmo, do site do gesior!
-
nome serv: crystal server versão: 8.70 Galera, eu gostaria de um npc que ao trocar 5000 item (6500 Id do item [demonic essence]) o npc da 1 point no shop do website para o player... Séria possivel essa ídeia genial? Agradeço!
-
Bem, estou com um problema! Esse axo que seria impossivel eu resolver, pois infelismente eu não mecho em libs :s Servidor 8.70 cristal server! Bem, eu estou com um problema na task system (NPC) na função customcallbackonsell. Ai procurei na internet e axei uma função e adicionei! function customCallbackOnBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks, shopWindow) local shopItem, npcHandler = nil, NpcHandler for _, item in ipairs(shopWindow) do if(item.id == itemid) then if item.subType then if(item.subType == subType) then shopItem = item break end else shopItem = item break end end end if(shopItem == nil) then error("[shopModule.onBuy]", "Item not found on shopItems list") return false end if(shopItem.buy == -1) then error("[shopModule.onSell]", "Attempt to purchase an item which is only sellable") return false end local backpack, totalCost = 1988, amount * shopItem.buy if(inBackpacks) then totalCost = isItemStackable(itemid) == TRUE and totalCost + 20 or totalCost + (math.max(1, math.floor(amount / getContainerCapById(backpack))) * 20) end if(getPlayerMoney(cid) < totalCost) then doPlayerSendCancel(cid, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_NEEDMONEY), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name})) return false end local subType = shopItem.subType or 1 local a, b = doNpcSellItem(cid, itemid, amount, subType, ignoreCap, inBackpacks, backpack) if(a < amount) then local msgId = MESSAGE_NEEDMORESPACE if(a == 0) then msgId = MESSAGE_NEEDSPACE end doPlayerSendCancel(cid, npcHandler:parseMessage(npcHandler:getMessage(msgId), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name, [TAG_ITEMCOUNT] = a})) if(a > 0) then doPlayerRemoveMoney(cid, ((a * shopItem.buy) + (b * 20))) return true end return false end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, npcHandler:parseMessage(npcHandler:getMessage(MESSAGE_BOUGHT), {[TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = totalCost, [TAG_ITEMNAME] = shopItem.name})) doPlayerRemoveMoney(cid, totalCost) return true end function customCallbackOnSell(cid, itemid, subType, amount, ignoreCap, inBackpacks) local shopItem, npcHandler = nil, NpcHandler for _, item in ipairs(self.npcHandler.shopItems) do if(item.id == itemid and item.subType == subType) then shopItem = item break end end if(shopItem == nil) then error("[shopModule.onBuy]", "Item not found on shopItems list") return false end if(shopItem.sell == -1) then error("[shopModule.onSell]", "Attempt to sell an item which is only buyable") return false end local parseInfo = { [TAG_PLAYERNAME] = getPlayerName(cid), [TAG_ITEMCOUNT] = amount, [TAG_TOTALCOST] = amount * shopItem.sell, [TAG_ITEMNAME] = shopItem.name } if(subType < 1) then subType = -1 end if(doPlayerRemoveItem(cid, itemid, amount, subType) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, self.npcHandler:parseMessage(self.npcHandler:getMessage(MESSAGE_SOLD), parseInfo)) doPlayerAddMoney(cid, amount * shopItem.sell) if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then self.npcHandler.talkStart[cid] = os.time() else self.npcHandler.talkStart = os.time() end return true end doPlayerSendCancel(cid, self.npcHandler:parseMessage(self.npcHandler:getMessage(MESSAGE_NEEDITEM), parseInfo)) if(NPCHANDLER_CONVBEHAVIOR ~= CONVERSATION_DEFAULT) then self.npcHandler.talkStart[cid] = os.time() else self.npcHandler.talkStart = os.time() end return false end Só que ai agora está apareçendo Ai não consigo resolver... Pasta do npc: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local Topic = {} local data = { [14007] = {'crocodile', 'Happy hunting, old chap! Come back to me when you are through with your task.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u crocodiles. Come back to me when you are done.', 'Spiffing work, old chap. Now I have a special task for you. Recently several citizens of Port Hope have vanished. It is rumoured that they were killed by a crocodile. The people call it \'Snapper\'. Hunt down and kill that evil man eating beast.', 3000, 1, 'Snapper', }, [14008] = {'tarantula', 'Happy hunting, old chap! Come back to me when you are through with your task.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u tarantulas. Come back to me when you are done.', 'Nicely done! Now I shall assign you a special task. Rumour has it that there is an ancient and evil tarantula who preys on humans. She is called \'Hide\'. Track her down and kill her! Good luck, old chap.', 4500, 1, 'Hide'}, [14009] = {'carniphila', 'Good show, old chap! Speak to me again when you are done hunting.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u carniphilas. Come back to me when you are done.', 'That took some time, huh? Good hunting though. If you\'re up for another hunting mission just ask me for a {task}.', 5000, 1}, [14010] = {'stone golem', 'Happy hunting, friend! When you have finished hunting, return here. ', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u stone golems. Come back to me when you are done.', 'Good show, old chap. If you\'re up for another hunting mission just ask me for a task.', 4000, 1}, [14011] = {'mammoth', 'Happy hunting, friend! Come back to me when you are done hunting.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u mammoths. Come back to me when you are done.', 'Jolly good job you did there, but now I have a special task for you. The citizens of Svargrond live in fear because of a frightfully bad-tempered mammoth they call \'Blood Tusk\'. Go there and put an end to him. Happy hunting!', 'Bloodtusk', 20000, 1}, [14012] = {'ice golem', 'Happy hunting, friend! Come back to me when you are done hunting.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u ice golems. Come back to me when you are done.', 'As i see it, you need more of a challenge! I have heard that there is an ice golem the hunters in Svargrond call \'Shardhead\'. He is an extremely dangerous example of his kind! I believe you are equal to the task, %s!', 15000, 1, 'Shardhead'}, [14013] = {'quara constrictor scout', 'Happy hunting, friend! Come back to me when you are done hunting.', 'Alright, then you should go on with your task. You have already killed %u quara scouts in total. Come back to me when you are done.', 'Jolly good show! What a hunter! If you\'re up for another hunting mission just ask me for a {task}.', 21000, 1}, -- ? [14014] = {'quara constrictor', 'Happy hunting, friend! Come back to me when you are done hunting.', 'Alright, then you should go on with your task. You have already killed %u underwater quaras in total. Come back to me when you are done.', 'Superb work. However, there is something else I want you to do. It is said that there is a Quara general named \'Thul\' who is responsible for the attacks on Liberty Bay. Find him and kill him and bring peace to Liberty bay!', 20000, 1, 'Thul'}, -- OK [14015] = {'water elemental', 'Happy hunting, my old mocker! Come back to me when you are done hunting. ', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u water elementals. Come back to me when you are done.', 'Fantastic! If you\'re up for another hunting mission just ask me for a {task}.', 10000, 1}, [14016] = {'earth elemental', 'Happy hunting, friend! Come back to me when you are done hunting. ', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u earth elementals. Come back to me when you are done.', 'Fantastic! If you\'re up for another hunting mission just ask me for a {task}.', 18000, 1}, [14017] = {'energy elemental', 'Happy hunting, pal! Come back to me when you are done hunting. ', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u energy elementals. Come back to me when you are done.', 'Fantastic! If you\'re up for another hunting mission just ask me for a {task}.', 19000, 1}, [14018] = {'fire elemental', 'Happy hunting, old friend! Come back to me when you are done hunting. ', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u fire elementals. Come back to me when you are done.', 'Fantastic! If you\'re up for another hunting mission just ask me for a {task}.', 15000, 1}, [14019] = {'mutated rat', 'Happy hunting, old chap! Come back to me when you are done hunting. ', 'Alright, then stop dilly dallying here and go on with your task. You have already exterminated %u mutated rats. Come back to me when you are done.', {'Very good work, old chap. Lucky you are here - I have just been told of a task which is perfect for you. ...', 'The Yalaharians are having a spot of bother with a huge mutated rat. They call it \'Esmeralda\' and you should find her somewhere in the sewers. Good hunting!'}, 35000, 1, 'Esmeralda'}, -- OK [14020] = {'giant spider', 'Jolly good show! Come back to me when you are done hunting. ', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u giant spiders. Come back to me when you are done.', 'Well THAT was a hunt. Good job. Have you heared about \'The Old Widow\'? It must have a hideout. Try to find it and slay the beast.', 20000, 1, 'Old Widow'}, [14021] = {'hydra', 'Happy hunting, old chap! Come back to me when you are done hunting.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u hydras. Come back to me when you are done.', {'With Nornur the God of Fate as my witness, you are truly born to hunt. If anyone can do this task, you can! Listen: ...', 'It is said that the Lizards of Chor are training hydras for attacks against us. They have already successfully bred a hydra named \'The Many\'. Find her and kill her!'}, 0, 2, 'Many'}, [14001] = {'sea serpent', 'Happy hunting, old chap! Come back to me when you are done hunting.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u sea serpents. Come back to me when you are done.', 'Good job, old chap! Are you up for a challenge? Have you heard of the legendary sea serpent called \'The Leviathan\'? It must be somewhere near the spot you found. This is a true test of your hunting skills - find it and kill it. Good hunting!', 0, 2, 'Leviathan'}, [14022] = {'behemoth', 'Happy hunting, old chap! Come back to me when you are done hunting.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u behemoths. Come back to me when you are done.', 'Such marvellous hunting skills! Perhaps you can help me with this one. Have you heard about \'Stonecracker\'? ...', 0, 2, 'Stonecracker'}, -- OK [14002] = {'serpent spawn', 'Happy hunting, old chap! Come back to me when you are done hunting.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u serpent spawns. Come back to me when you are done.', 'My - you can be proud of yourself! However, you\'re not finished yet. There are rumours about a being called \'The Noxious Spawn\' which was seen deep down in the ruins of Banuta. Try to find its hideout.', 0, 2, 'Noxious Spawn'}, } local curTask = 14500 local points = 14501 local rank = 14502 local questLog = 14503 local tiquanda = 14505 local demodras = 14506 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 function greetCallback(cid) local cur, r, msg = getPlayerStorageValue(cid, points), getPlayerStorageValue(cid, rank) if cur >= 5 and r < 1 then msg = 'Welcome back |PLAYERNAME|. You have completed 5 tasks for our society. Ask me for a {promotion} to advance your rank!' elseif cur >= 10 and r < 2 then msg = 'Good to see you again |PLAYERNAME|. You have completed 10 tasks for our society. Ask me for a {promotion} to advance your rank!' elseif cur >= 20 and r < 3 then msg = 'Salutations |PLAYERNAME|. You have completed 20 tasks for our society. Ask me for a {promotion} to advance your rank!' elseif cur >= 30 and r < 4 then msg = 'Always good to welcome you back, |PLAYERNAME|. You have completed 30 tasks for our society. Ask me for a {promotion} to advance your rank!' elseif cur >= 50 and r < 5 then msg = 'By the gods....50 hunting tasks....this is astounding! Ask me for a {promotion} to advance your rank! And while you are here, I also have another {special} task for you.' else msg = 'Welcome back |PLAYERNAME|. What brings you here this time?' end npcHandler:setMessage(MESSAGE_GREET, msg) Topic[cid] = 0 return true end function creatureSayCallback(cid, _type, msg) if not npcHandler:isFocused(cid) then return false end if msgcontains(msg, 'task') then local cur = getPlayerStorageValue(cid, curTask) if cur < 1 or (cur ~= 14006 and getPlayerStorageValue(cid, cur) == tasks[data[cur][1]].amount + 1 and getPlayerStorageValue(cid, cur + 100) == -1) then local v, lvl = '', getPlayerLevel(cid) if lvl < 50 then v, Topic[cid] = '{Crocodiles}, {tarantulas}, {carniphilas}, {stone golems} or {mammoths}', 1 elseif lvl < 90 then v, Topic[cid] = '{Ice golems}, {Quara}, {elementals}, {mutated rats} or {giant spiders}', 2 elseif 90 <= lvl then v, Topic[cid] = '{Hydras}, {sea serpents}, {behemoths}' .. (getPlayerStorageValue(cid, rank) == 5 and ', {serpent spawns} or {demons}' or ' or {serpent spawns}'), 3 end selfSay('All right, what would you like to hunt? ' .. v .. '?', cid) elseif cur == 14006 and getPlayerStorageValue(cid, cur) == tasks['demon'].amount then selfSay({'Such derring do deserves a special reward! Take this holy icon. It neutralizes great evil and gives you access to areas which are protected by those forces. But remember ...', 'This is a one time opportunity! You won\'t get the holy icon twice.'}, cid) doPlayerAddItem(cid, 10305, 1) setPlayerStorageValue(cid, curTask, -1) elseif cur ~= 14006 and getPlayerStorageValue(cid, cur) == tasks[data[cur][1]].amount and getPlayerStorageValue(cid, cur + 100) < 1 then local tmp if type(data[cur][4]) == 'table' then tmp = {} for i = 1, #data[cur][4] do tmp[i] = string.format(data[cur][4][i], getCreatureName(cid)) end end selfSay(tmp or string.format(data[cur][4], getCreatureName(cid)), cid) if data[cur][5] > 0 then doPlayerAddExp(cid, data[cur][5]) doSendAnimatedText(getThingPos(cid), data[cur][5], 215) end if data[cur][6] then setPlayerStorageValue(cid, points, getPlayerStorageValue(cid, points) + 1) end if data[cur][7] then -- special task (he sends you to kill the boss) setPlayerStorageValue(cid, cur + 100, 1) end setPlayerStorageValue(cid, cur, getPlayerStorageValue(cid, cur) + 1) Topic[cid] = 0 elseif getPlayerStorageValue(cid, cur + 100) == 2 then setPlayerStorageValue(cid, points, getPlayerStorageValue(cid, points) + (isInArray({14001, 14002, 14021, 14022}, cur) and 2 or 1)) selfSay('Fantastic! If you\'re up for another hunting mission just ask me for a {task}.', cid) setPlayerStorageValue(cid, cur + 100, -1) else selfSay(getPlayerStorageValue(cid, cur + 100) < 1 and 'You are not done with your task yet. Come back to me when you are. Or do you want to abort your task to start a different one?' or string.format('Find %s\'s hideout. I hope for you that you are skilled enough to kill him. Or do you want to abort your task to start a different one?', data[cur][7]), cid) Topic[cid] = 4 end elseif msgcontains(msg, 'trade') and getPlayerStorageValue(cid, rank) >= 1 then local items = { {name='lump of dirt', id=10609, sell=15}, {name='carrion worm fang', id=11192, sell=25}, {name='gland', id=8971, sell=35}, {name='slingshot', id=5907, buy=50000}, } if getPlayerStorageValue(cid, rank) >= 3 then table.insert(items, {name='deer trophy', id=7397, sell=1000}) table.insert(items, {name='lion trophy', id=7400, sell=1000}) table.insert(items, {name='wolf trophy', id=7394, sell=1000}) end if getPlayerStorageValue(cid, rank) >= 4 then table.insert(items, {name='behemoth trophy', id=7396, sell=6000}) table.insert(items, {name='demon trophy', id=7393, sell=8000}) table.insert(items, {name='dragon lord trophy', id=7399, sell=5000}) table.insert(items, {name='demon backpack', id=10518, buy=1000}) end openShopWindow(cid, items, function(cid, itemid, subType, amount, ignoreCap, inBackpacks) customCallbackOnBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks, items) end, function(cid, itemid, subType, amount, ignoreCap, inBackpacks) customCallbackOnSell(cid, itemid, subType, amount, ignoreCap, inBackpacks, items) end ) selfSay("Alright, show me what you've got.", cid) elseif Topic[cid] == 4 then local cur = getPlayerStorageValue(cid, curTask) if msgcontains(msg, 'yes') or msgcontains(msg, 'abort') then selfSay('Alright, as you wish. Ask me for a task if you are interested in a different hunting mission.', cid) setPlayerStorageValue(cid, cur, -1) setPlayerStorageValue(cid, curTask, -1) if getPlayerStorageValue(cid, cur + 100) > 0 then setPlayerStorageValue(cid, cur + 100, -1) end else selfSay(cur == 14006 and string.format('Alright, then stop dilly dallying here and go on with your task. You have already exterminated %u demons. Come back to me when you are done.', getPlayerStorageValue(cid, cur)) or getPlayerStorageValue(cid, cur + 100) < 1 and string.format(data[getPlayerStorageValue(cid, curTask)][3], getPlayerStorageValue(cid, cur)) or 'Alright, then you should go on with your task.', cid) end Topic[cid] = 0 elseif Topic[cid] == 1 and msgcontains(msg, 'crocodile') then local v = tasks['crocodile'] selfSay('They are a nuisance! You\'ll find them here in the jungle near the river. Hunt ' .. v.amount .. ' crocodiles and you\'ll get a nice reward. Interested?', cid) Topic[cid] = v.storage elseif Topic[cid] == 1 and msgcontains(msg, 'tarantula') then local v = tasks['tarantula'] selfSay('There is a veritable plague of tarantulas living in the caves north of the river to the east. Can you squish ' .. v.amount .. ' tarantulas for the Hunting Elite. What do you say?', cid) Topic[cid] = v.storage elseif Topic[cid] == 1 and msgcontains(msg, 'carniphila') then local v = tasks['carniphila'] selfSay('Damn walking weed-thingies! You\'ll find them deeper in the jungle. Weed out ' .. v.amount .. ' carniphilas for our society. Alright?', cid) Topic[cid] = v.storage elseif Topic[cid] == 1 and msgcontains(msg, 'golem') then local v = tasks['stone golem'] selfSay('They can be found all over Tibia. You\'ll find them in mountain caves or rocky dungeons. Hunt ' .. v.amount .. ' of them and come back to me. Understood?', cid) Topic[cid] = v.storage elseif Topic[cid] == 1 and msgcontains(msg, 'mammoth') then local v = tasks['mammoth'] selfSay('This particular species are found in Svargrond. Impressive beasts, but you wouldn\'t want one in your back garden. Hunt ' .. v.amount .. ' of them. Alright?', cid) Topic[cid] = v.storage elseif Topic[cid] == 2 and msgcontains(msg, 'golem') then local v = tasks['ice golem'] selfSay('The ice golems on the glacier of Hrodmir are becoming a threat to the civilians in Svargrond. Travel to the Ice Islands and hunt ' .. v.amount .. ' Ice Golems. Do you accept this task?', cid) Topic[cid] = v.storage elseif Topic[cid] == 2 and msgcontains(msg, 'quara') then selfSay('There are different types of quaras. The weaker {scouts} which can be found on Malada, one of the shattered Islands and the more skilled {underwater} kind which can be found in Calassa and some smaller colonies. Which one do you wish to hunt?', cid) Topic[cid] = 5 elseif Topic[cid] == 5 and msgcontains(msg, 'scout') then local v = tasks['quara constrictor scout'] selfSay('Good choice! Hunt down those Quara scouts - remember no less than ' .. v.amount .. '! Focus! Do you accept this task?', cid) Topic[cid] = v.storage elseif Topic[cid] == 5 and msgcontains(msg, 'underwater') then local v = tasks['quara constrictor'] selfSay('As you wish. Seek out a Quara settlement and hunt ' .. v.amount .. ' Quaras, it doesn\'t matter which type you hunt. Alright?', cid) Topic[cid] = v.storage elseif Topic[cid] == 2 and msgcontains(msg, 'elemental') then selfSay({'Since the creation of the elemental shrines and the portals, the curtain separating the worlds is thin, allowing the elementals to surge into our world. They have to be contained. ...', 'The choice as to which kind of elementals you hunt is yours, as long as they are in the lands of Tibia. Hunt 70 {earth}, {energy}, {fire} or {water} elementals. Which one do you choose?'} , cid) Topic[cid] = 6 elseif Topic[cid] == 6 and msgcontains(msg, 'water') then local v = tasks['water elemental'] selfSay('Alright, go hunt ' .. v.amount .. ' water elementals or massive water elementals. Don\'t forget your umbrella! Alright?', cid) Topic[cid] = v.storage elseif Topic[cid] == 6 and msgcontains(msg, 'earth') then local v = tasks['earth elemental'] selfSay('Good choice! I need you to slay ' .. v.amount .. ' earth elementals or massive earth elementals. There are some in the so called Taboo-area in the eastern jungle of Tiquanda and I heard about a cave in Edron where you\'ll find them. Are you game?', cid) Topic[cid] = v.storage elseif Topic[cid] == 6 and msgcontains(msg, 'energy') then local v = tasks['energy elemental'] selfSay('A brave hunter! Kill ' .. v.amount .. ' energy elementals or massive energy elementals. You\'ll find them in the mountains between Darama and Tiquanda. Are you sure you want to do this?', cid) Topic[cid] = v.storage elseif Topic[cid] == 6 and msgcontains(msg, 'fire') then local v = tasks['fire elemental'] selfSay('Don\'t get burnt! Your challenge, should you choose to accept it, is to kill ' .. v.amount .. ' fire elementals or massive fire elementals. Are you ready?', cid) Topic[cid] = v.storage elseif Topic[cid] == 2 and msgcontains(msg, 'mutated rat') then local v = tasks['mutated rat'] selfSay('Recently, I heard of a disturbing development in Yalahar - a plague of monstrous Mutated rats! If they were to spread to the rest of Tibia.. <shudders> My task for you is to contain their numbers in Yalahar. Hunt ' .. v.amount .. ' of them. What do you say?', cid) Topic[cid] = v.storage elseif Topic[cid] == 2 and msgcontains(msg, 'giant spider') then local v = tasks['giant spider'] selfSay('Never liked spiders. Entirely too many legs. And I always find them in my bath! Those nasty creepy crawlies are a threat to the hygiene of every living being in Tibia. Hunt ' .. v.amount .. ' of them. Okay?', cid) Topic[cid] = v.storage elseif Topic[cid] == 3 and msgcontains(msg, 'hydra') then local v = tasks['hydra'] selfSay('The hydras are located in the eastern jungle of Tiquanda and there are several mountain caves that are inhabited by them. Your task is to hunt a mere ' .. v.amount .. ' hydras. Are you willing to do that?', cid) Topic[cid] = v.storage elseif Topic[cid] == 3 and msgcontains(msg, 'sea serpent') then local v = tasks['sea serpent'] selfSay({'The sea serpents are a threat to honest seafarers! Captain Haba knows where to find them. ...', 'Go to Svargrond and talk to him. ' .. v.amount .. ' sea serpents should be enough to reduce the threat - but not their young though! After all, they are an endangered species! Got it?'}, cid) Topic[cid] = v.storage elseif Topic[cid] == 3 and msgcontains(msg, 'behemoth') then local v = tasks['behemoth'] selfSay('Behemoths must be kept away from the settlements at all costs. You\'ll find them east of here in the taboo-area or under the cyclopolis in Edron. Go there and hunt a few of them - shall we say... ' .. v.amount .. '? Are you up for that?', cid) Topic[cid] = v.storage elseif Topic[cid] == 3 and msgcontains(msg, 'serpent spawn') then local v = tasks['serpent spawn'] selfSay('Very dangerous, nasty, slimey creatures. They live deep in the old ruins of Banuta. I think a mere ' .. v.amount .. ' serpent spawns should do the trick. What do you say?', cid) Topic[cid] = v.storage elseif Topic[cid] == 3 and getPlayerStorageValue(cid, rank) == 5 and msgcontains(msg, 'demon') and getPlayerStorageValue(cid, curTask) < 1 then local v = tasks['demon'] selfSay('The spawn of pure evil must be erased from Tibia. You\'ll find demons lurking in the northern ruins of Edron as well as in some of other deeper dungeons of Tibia. We need to wipe them out! Slay ' .. v.amount .. ' demons for the Greater Good!', cid) setPlayerStorageValue(cid, curTask, v.storage) setPlayerStorageValue(cid, v.storage, 0) Topic[cid] = 0 elseif Topic[cid] >= 14000 and msgcontains(msg, 'yes') then selfSay(data[Topic[cid]][2], cid) setPlayerStorageValue(cid, curTask, Topic[cid]) setPlayerStorageValue(cid, Topic[cid], 0) if getPlayerStorageValue(cid, questLog) < 1 then setPlayerStorageValue(cid, questLog, 1) setPlayerStorageValue(cid, points, 0) end Topic[cid] = 0 elseif msgcontains(msg, 'special') and getPlayerStorageValue(cid, rank) == 5 then local v, k = getPlayerStorageValue(cid, tiquanda), getPlayerStorageValue(cid, demodras) if v < 1 then if getPlayerLevel(cid) >= 90 then setPlayerStorageValue(cid, tiquanda, 1) selfSay({'Have you heard about {Tiquandas Revenge}? It is said that the jungle itself is alive and takes revenge for all the bad things people have done to it. ...', 'I myself believe that there is some truth in this clap trap. Something \'real\' which therefore must have a hideout somewhere. Go find it and take revenge yourself! Ask me about the {special} task when you\'re done.'}, cid) else selfSay('Your eagerness is commendable, and your rank within our hunting elite is great buuuut I\'m afraid you\'re a little bit too weak for the special tasks. Get more experience and the special tasks will be no match for you.', cid) end elseif v == 2 then selfSay('Great achievement, old chap! You are an outstanding hunter, no doubt about it!', cid) setPlayerStorageValue(cid, tiquanda, 3) elseif v == 3 and k < 1 then if getPlayerLevel(cid) >= 100 then setPlayerStorageValue(cid, demodras, 1) selfSay('This task is a very dangerous one. I want you to look for {Demodras}\' hideout. It might be somewhere under the {Plains of Havoc}. Good luck, old chap, come back in one piece and ask me about the {special} task when you\'re done.', cid) else selfSay('Your eagerness is commendable, and your rank within our hunting elite is great buuuut I\'m afraid you\'re a little bit too weak for the special tasks. Get more experience and the special tasks will be no match for you.', cid) end elseif k == 2 then selfSay('Great achievement, old chap! You are an outstanding hunter, no doubt about it!', cid) setPlayerStorageValue(cid, demodras, 3) end elseif msgcontains(msg, 'promotion') then local cur, r, msg, exp, item = getPlayerStorageValue(cid, points), getPlayerStorageValue(cid, rank) if cur >= 5 and r < 1 then msg, exp = {'You have completed 5 tasks! Let me promote you to the first rank: Huntsman. Congratulations! ...', 'If you find any trophies that you don\'t need, feel free to ask me for a trade.'}, 10000, 5907 elseif cur >= 10 and r < 2 then msg, exp = {'You have completed 10 hunting tasks. It\'s time for a promotion. You advance to the rank of \'Ranger\'. Congratulations! ...', 'Oh, I made a deal with Lorek. He ships Rangers from our society - and higher ranks of course - to Banuta, Chor or near the mountain pass to Darama. Just ask him for a passage.'}, 15000 elseif cur >= 20 and r < 3 then msg, exp = {'Good show! You have completed 20 hunting tasks for the \'Paw and Fur - Hunting Elite. You have earned the right to join the ranks of those known as \'Big game hunter\'. Congratulations! ...', 'From now on I\'ll buy more trophies from you!'}, 25000 elseif cur >= 30 and r < 4 then msg, exp, item = 'Spiffing! You have done 30 hunting tasks! From now on you can call yourself a \'Trophy hunter\'. As a reward I have this special backpack for you and in addition you can sell some more rare trophies to me.', 40000, 10518 elseif cur >= 50 and r < 5 then msg, exp = 'Congratulations! You have made the highest rank: \'Elite hunter\'. If haven\'t yet done so ask me for the {special} task.', 50000 end if msg then selfSay(msg, cid) setPlayerStorageValue(cid, rank, math.max(1, r + 1)) if exp then doPlayerAddExp(cid, exp) doSendAnimatedText(getThingPos(cid), exp, 215) end if item then doPlayerAddItem(cid, item, 1) end end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:setMessage(MESSAGE_FAREWELL, 'Happy hunting, old chap!') npcHandler:setMessage(MESSAGE_WALKAWAY, 'Happy hunting, old chap!') npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:addModule(FocusModule:new()) Agradeço! UP UP Up
-
Eu precisava tanto dele :S Mais eu vou esperar intão... Obrigado mais uma vez viu? Iae beeki, teria como me passar as sources? Obrigado!.
-
Obrigado, você tem a source dele? Se tiver poderia me passar por favor? preciso muito.. Obrigado, Rep+
-
Estou com um problema no meu executavel, ta dificil resolver, não sei mecher em arquivos .cpp ou .h kk Versão: 8.70 trunk.r4235 Problema: Ao comprar no npc qualquer item ele simplismente não vai, como a backpack estivesse bugada, não sei como explicar isso(já tentei outras backpacks e bags), simplismente o item não cai na backpack nem no chão, o item some... Mesma coisa aconteçe se eu pegar o GOD e fizer /i ... PS: em quests também aconteçe a mesma coisa! Eu possuo as sources, caso alguem precisa para me ajudar só pedir! Criei um video para mostrar melhor(detalhadamente) o bug, assim vocês poderam me entender e me ajudar!
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.