-
Total de itens
1165 -
Registro em
-
Última visita
-
Dias Ganhos
13
Tudo que Omega postou
-
Pronto, tá aí http://www.xtibia.com/forum/topic/220287-anel-ressucitador/ Se der algum erro, posta o erro junto (em spoiler de preferência) que eu conserto
-
Então fica assim:
-
Ela abre, mas não fecha?
- 12 respostas
-
- erro nas doors
- resolvido
-
(e 1 mais)
Tags:
-
Para adicionar itens, você faz o seguinte: Substitua a função doRewardTask(cid) no tasklib.lua por essa aqui function doRewardTask(cid) local monster = getPlayerStorageValue(cid,taskstg.monster) local reward = taskreward[monster] if reward.item and reward.amount then doPlayerAddItem(cid,reward.item,reward.amount) end if monster and reward then doPlayerAddMoney(cid,reward.money) doPlayerAddExperience(cid, reward.xp) return true end return false end E a configuração no taskrewards fica: taskreward = -- em gps { [1] = {money = 5000,xp = 20000}, -- nenhum item será adicionado [2] = {money = 10000,xp = 50000}, -- nenhum item será adicionado [3] = {money = 20000,xp = 75000,item = 2458,amount = 1} -- aqui será adicionado 1 item com id 2458 }
-
Fiz um sistema parecido pra um usuário hoje: vê se serve pro que você quer: http://www.xtibia.com/forum/topic/220239-tasks-diarias-e-por-level/
-
Cara, especifique que pontos são esses. É um storage ou alguma adição no banco de dados? Bom, vou deixar aqui o script do baú se for de storage e se der eu faço o da wand depois, que vai dar mais trabalho. Além disso, você tem que colocar isso aí na tag da magia para que somente os jogadores que fizeram essa quest possam usa-la. needlearn="1"
-
Informações: Tasks adquiridas ou canceladas em NPC As tasks podem ser feitas repetidas vezes, mas somente uma vez por dia e apenas uma de cada vez (tempo configurável) Comando para acompanhar o andamento da task Atualização (31/08/13) > agora é possível ganhar itens a cada vez que a task é terminada Atualização (05/09/13) > VÁRIOS bugs corrigidos e algumas novas opções adicionadas Agora você pode escolher se quer que as tasks sejam feitas por level ou na ordem Recomendo a todos os que baixaram alguma versão anterior que atualizem Códigos: Tags: Em creaturescripts.xml, adicione: <event type="kill" name="Tasks" script="taskkill.lua"/> Em talkactions.xml, adicione: <talkaction words="!countkills" event="script" value="countkills.lua"/> No arquivo creaturescripts/scripts/login.lua, adicione: registerCreatureEvent(cid, "Tasks") Scripts: Crie um arquivo tasklib.lua em lib Crie um arquivo countkills.lua e adicione em talkactions/scripts Crie um arquivo taskkill.lua em creaturescripts/scripts Crie um arquivo NomedoNPC.xml em npcs Crie um arquivo tasks.lua em npcs/scripts Configuração: É feita toda no tasklib.lua: Configuração dos monstros: taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100}} - O [número] deve seguir a ordem - A primeira parte deve ser o nome dos monstros da task no singular. Por isso existem 'cyclop' (singular) e 'cyclops' (nome do monstro) - Os nomes de todos os monstros de cada task devem aparecer. Por exemplo, na task de cyclops, qualquer tipo deles servirá para completar a task. - killstotal é a quantidade de monstros que você deve matar para terminar a task. Configuração das recompensas: taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5} -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task} - O [número] deve ter a mesma ordem dos monstros - money é a quantidade de dinheiro que cada um ganha ao terminar a task correspondente - xp é a quantidade de experiência ganha ao terminar a task correspondente - item é o ID do item que ganha ao terminar a task correspondente - points significa quantos pontos de task o personagem irá ganhar quando terminar a task correspondente Adicionando novos monstros: - Vou explicar com um exemplo de como adicionar uma task de hydra/serpent spawn No taskmonsters: (REPARE NA VÍRGULA QUANDO ADICIONEI UMA NOVA LINHA!) taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100},[4] = {'hydras e serpent spawn','hydra','serpent spawn',killstotal = 200}} No taskrewards: taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5}, -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task[4] = {money = 30000, xp = 5000, item = 2450, amount = 1, points = 3}} Agora na função doStartTask(cid) - somente se quiser que as tasks sejam feitas por level - O que aconteceu: - Antes até o lvl 20 o jogador recebia a task dos rotworms, até o lvl 50, a task dos cyclops e daí pra frente, task dos dragons. - As tasks iniciais são as mesmas, mas até o lvl 80 é a task dos dragons e daí pra frente, o jogador receberá a task das hydras e serpent spawns. Considerações finais: O sistema de pontos apenas adiciona e checa a quantidade de pontos: você deve escolher se quer adicionar alguma coisa a partir deles. Testei profundamente e corrigi todos os erros que encontrei, postem se encontrarem mais algum, enviem o log do erro que farei o possível para consertar.
-
Já terminei o sistema pra você e tô postando aqui. Daqui a pouco edito com o link. Tá aí > http://www.xtibia.com/forum/topic/220239-tasks-diarias-e-por-level/
-
Tenta esse aqui pros itens que removem skull: TAG no actions.xml <action itemid="1230" event="script" value="skullremovers.lua"/> <action itemid="1231" event="script" value="skullremovers.lua"/> <action itemid="1232" event="script" value="skullremovers.lua"/> Script com nome de skullremovers.lua em actions.scripts
- 3 respostas
-
- sistema script ajuda elemento
- resolvido
- (e 1 mais)
-
Se não funcionar o de cima, tenta isso: local cfg = { tempo = 2, temple = {x = 203, y = 379, z = 7}, tile = {{x=682, y=303, z=7},{x=682, y=305, z=7},{x=682, y=307, z=7}}, } function abrir() doSetItemActionId(getThingFromPos({x=203,y=379,z=7,stackpos=0}).uid, 46632) doBroadcastMessage("[Hell Flag] O evento iniciou, avante!", 22) return true end function onSay(cid, words, param, channel) doCreateItem(1387, 1, cfg.temple) doSetItemActionId(getTileItemById(cfg.temple, 1387).uid, 46631) doBroadcastMessage("[Hell Flag] O portal para o evento foi aberto! O evento iniciará em aproximadamente 2 minutos.", 22) addEvent(abrir, cfg.tempo*10000) return true end
-
Eu tive o mesmo erro em um script. É o seguinte, a função doSetItemSpecialDescription não existe ou não funciona aí. Substitua doSetItemSpecialDescription(item.uid, "It is a gate of expertise for level " .. (item.actionid - 1000) .. ".") Por doItemSetAttribute(item.uid,'description',"It is a gate of expertise for level " .. (item.actionid - 1000) .. ".") Acho que vai funcionar assim, boa sorte.
- 12 respostas
-
- erro nas doors
- resolvido
-
(e 1 mais)
Tags:
-
Na verdade, não seria difícil de fazer se eu conseguisse entender aquela tabela de bans que tem no banco de dados. Mas não é o caso =/
-
Acabei de atualizar o script para incluir o motivo. Mas não vai aparecer no site normalmente, a menos que você altere para puxar os campos que são usados no script.
-
Bom, tava testando uma coisa e lembrei que não tinha mais comando /ban para players em OTs 8.6. Então resolvi tentar fazer o meu próprio. Eis o resultado: Como funciona: Opções:Você pode usar !ban playername para banir sem registrar o motivo e por tempo indeterminado Você pode usar !ban playername,dias para banir sem registrar o motivo, mas por um número determinado de dias Você pode usar !ban playername,motivo para banir por tempo indeterminado, mas registrando um motivo Você pode usar !ban playername,dias,motivo para banir por tempo e motivo determinados Quando o jogador banido tentar entrar, ele será teletransportado para o tempo, não poderá se mexer nem falar e receberá a seguinte mensagem: 'Voce esta banido e sera kickado em 5 segundos.' --> isso se não houver motivo registrado 'Voce foi banido por -motivo- e sera kickado em 5 segundos.' --> se houver motivo registrado Independente da opção, o jogador é kickado e ocorre o descrito acima quando ele tenta se conectar nas 5 primeiras vezes. Depois ele não poderá mais se conectar ao servidor com ele personagem. Você só pode banir players online Você pode desbanir qualquer jogador com !unban playername (online ou offline) Instalando: 1 - Crie um arquivo na pasta lib com extensão .lua e adicione: 2 - Em seguida, vá em talkactions.xml e adicione <talkaction log="yes" access="4" words="!ban;!unban" event="script" value="ban.lua"/> Obs.: O !ban;!unban no lugar de /ban se deve ao fato de muitos servidores apresentarem o comando /unban 3 - Agora, adicione esse script na sua pasta talkactions/scripts com o nome de ban.lua 4 - Agora adicione essa tag em creaturescripts.xml <event type="login" name="Ban" event="script" value="banned.lua"/> 5 - Finalmente, esse código em um arquivo dentro de creaturescripts/scripts com o nome de banned.lua Fiz vários testes aqui e me parece que está tudo certo, mas recomendo testar com um jogador de teste antes em usar em jogadores reais. Por mais óbvio que pareça, espero comentários/dúvidas ou sugestões sobre o código.
-
action The Necronomicon - o livro demoniaco
tópico respondeu ao Killua de Omega em Actions e Talkactions
Acho que do jeito que o script tá, se o cara for teleportado pra hunt e deslogar ou relogar lá, ele não vai ser teleportado depois dessa 1h e vai dar erro de creature not found. Então você teria que colocar um onLogin pra se o cara tiver passado do tempo, devolver ele pro templo e, se não, colocar um addEvent de novo. Além disso, acho que você poderia colocar um isCreature na sua função de devolver pro templo.- 9 respostas
-
- necronomicon
- livro
- (e 7 mais)
-
Novidades: - Sistema de leilão [créditos: Vodkart] - Implementação de quest log das quests mais complexas - Novas quests - Correção de pequenos erros - Implementação de sistema de stages (exp maior até lvl100)
-
Muito maneiro o sistema. Parabéns pelo trabalho e obrigado por divulgar. Tópico destacado em 10/10/13
-
Quase funcionou, coloquei query minúsculo e funcionou. De qualquer jeito, muito obrigado (rep+) Editado: É, tentei isso logo depois dele sugerir o Query e foi. Obrigado, de qualquer jeito (já cheguei no limite de rep+ hoje)
-
Pessoal, vejo que tem váarios scripts sensacionais aqui, disponíveis de graça, mas não consigo fazer muitos deles funcionarem porque dá um erro: attempt to call a field 'executeQuery' (a nil value) Então acho que no meu servidor não tem essa função. Eu uso o Styller 8.6 e queria saber se realmente não tem jeito ou se tem alguma maneira de fazer esses scripts funcionarem. Grato desde já a quem puder ajudar.
-
Tenta trocar doBroadcastMessage(getCreatureName(player) .. " ganhou o evento.", 25) Por doBroadcastMessage("O vencedor foi "..getCreatureName(player) .." e sua guild eh "..getPlayerGuildName(getPlayerGuildId(player))..".")
-
Tenta esse aí
-
Várias novas adições: - Raids novas - Novos eventos - Novas quests - Modernização do mapa - Adição de novas hunts
-
Tenta trocar o script do !b por esse aqui function onSay(cid, words, param) local playerGuild = getPlayerGuildId(cid) if playerGuild > 0 then local playerGuildLevel = getPlayerGuildLevel(cid) if playerGuildLevel >= GUILDLEVEL_VICE then local players = getOnlinePlayers() local message = "*Guild* " .. getCreatureName(cid) .. " [" .. getPlayerLevel(cid) .. "]:\n" .. param; for i,playerName in ipairs(players) do local player = getPlayerByName(playerName); if getPlayerGuildId(player) == playerGuild then doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, message); end end doPlayerSendCancel(cid, "Message sent to whole guild."); else doPlayerSendCancel(cid, "You have to be at least Vice-Leader to guildcast!"); end else doPlayerSendCancel(cid, "Sorry, you're not in a guild."); end return TRUE end OBS.: não levo créditos pelo script, só ajeitei o que tava no meu ot.
-
Galera, tô dando um up aqui comas notícias do serv: - Grande área nova com MUITAS quests inovadoras - Monstros e itens próprios do server, mas devidamente balanceados para manter a melhor jogabilidade possível - Novos eventos e raids SEMPRE Então, se você gosta de um bom ot, com exp média (20x) e um bom mapa, esse aqui é pra você!
-
Muito obrigado, Vodkart. Dúvida sanada.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.