
Histórico de Curtidas
-
dominus recebeu reputação de Cain Jorge em Sistema de posições para GMsFala galera do TK.
Trago hoje um script que me ajuda muito no ot que é salvar ass posições de lugares onde tenho que ir.
Sabe aquelas vezes que você está em um lugar e precisa sair dele, mas depois precisa voltar lá, mas ai você tem que ir tipo andando até lá.
ACABOU SEU PROBLEMA COM ESSE SCRIPT:
Veja como funciona o sistema:
salvando posições: /savePos
Você usa o comando /savePos nomeDaPos
E ele vai salvar essa posição onde estás com esse respectivo nome.
Você pode salvar quantas posições queira.
caso você salve uma posição com um nome que já esteja salvo, ele vai substituir essa posição mas o nome ficará o mesmo.
sendo teleportado para posições salvas: /telePos nomeDaPos
Conhecendo as posições que estejam salvas: /posSaves
Removendo posições salvas: /removePos nomeDaPos
Não precisa estar na posição onde foi salvo para remove-la.
Caso não exista posições salvas ou o nome esteja errado ele retorna essa mensagem:
Chega de blablabla e vamos por pra funcionar:
Primeiro vá em talkactions/talkactions.xml
Adicione essa linha:
Agora em talkaction/scripts/
Crie um arquivo com o nome:
Adicione isso dentro dele:
E pronto!
Seja feliz!
-
dominus deu reputação a xWhiteWolf em VoodooAeeeeeee carai, hoje vim trazer pra vocês meu mais novo sistema *-*. É uma fodenda spell que você seleciona alguém pra ser seu voodoo e a partir disso durante um tempo X ela vai receber todos os hit's que você deveria receber... INCRÍVEL, NÃO?
Agora se nesse meio tempo ela deslogar ou entrar em pz você vai tomar o dano normal, mas se ainda tiver nesse tempo X e ela sair ela vai receber o dano instantaneamente (É BOM DEMAIS PRA SER VERDADE).
Agora você deve estar imaginando, e se eu usar a magia pra transferir o dano pra um amigo e ele fizer a mesma coisa em mim, pra onde vai o dano?
PRA LUGAR NENHUM!!!! Até porque eu já me previni contra esse bug fazendo com que não seja possível fazer alguém de voodoo se ele já tiver alguém de voodoo.
Testado em versão 8.54 TFS Crying Damnson mas deve funcionar em todas as versões que tenham a função onStatsChange no creaturescripts.
Bom, o script tá 100% funcional e livre de bugs (se vc achar algum eu te dou 3 REP).
Agora vamos à mágica:
Crie um arquivo em mods com extensão .xml e adiciona isso daqui nele
<?xml version="1.0" encoding="UTF-8"?> <mod name="Voodoo System" version="1.0" author="Night Wolf" contact="none" enabled="yes"> ------------------------------------------------------------------------------------ <config name="feitisso"><![CDATA[ configuration = { storage = 24567, tempo = 20, cooldown = 45, effect1 = 13, effect2 = 65 } storagecool = 24568 ]]></config> ---------------------------------------------------------------------------------- <event type="login" name="registerVoodoo" event="script"><![CDATA[ function onLogin(cid) domodlib('feitisso') if getPlayerStorageValue(cid, configuration.storage) > 0 then doPlayerSendTextMessage(cid, 22, "Your victim is not receiving your hits anymore.") doPlayerSetStorageValue(cid, configuration.storage, 0) end registerCreatureEvent(cid,"voodoo") return true end ]]></event> ------------------------------------------------------------------------------------ <instant name="Feitiço" words="voodoo" lvl="50" mana="10" prem="1" range="3" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> <![CDATA[ function onCastSpell(cid, var) domodlib('feitisso') if not (isPlayer(variantToNumber(var))) then doPlayerSendCancel(cid, "You can only use this spell in players.") return false end if getPlayerStorageValue(variantToNumber(var), configuration.storage) > 0 then doPlayerSendCancel(cid, "You can't make a voodoo of someone who already has a voodoo.") return false end if (os.time() - getPlayerStorageValue(cid, storagecool)) >= configuration.cooldown then if getPlayerStorageValue(cid, configuration.storage) <= 0 then timeleft = (os.time() + configuration.cooldown) doPlayerSetStorageValue(cid, storagecool, timeleft) local target = getPlayerGUID(variantToNumber(var)) doPlayerSetStorageValue(cid, configuration.storage, target) doSendMagicEffect(getPlayerPosition(cid), configuration.effect1) doSendMagicEffect(getThingPos(variantToNumber(var)), configuration.effect1) addEvent(function() if isCreature(cid) then doSendMagicEffect(getPlayerPosition(cid), configuration.effect2) doPlayerSendTextMessage(cid, 22, "Your victim is not receiving your hits anymore.") doPlayerSetStorageValue(cid, configuration.storage, 0) end end, 100+1000*configuration.tempo) elseif getPlayerStorageValue (cid, configuration.storage) > 0 then doPlayerSendCancel(cid, "You've already set a target.") end else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(configuration.cooldown - (os.time() - getPlayerStorageValue(cid, storagecool))).." seconds.") end return true end ]]></instant> ------------------------------------------------------------------------------------ <event type="statschange" name="voodoo" event="script"><![CDATA[ function onStatsChange(cid, attacker, type, combat, value) domodlib('feitisso') if isPlayer(cid) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and getPlayerStorageValue(cid, configuration.storage) >= 1 then local name = getPlayerNameByGUID(getPlayerStorageValue(cid, configuration.storage)) local victim = getCreatureByName(name) if isCreature(victim) and not (getTilePzInfo(getPlayerPosition(victim))) then dano = math.ceil(value) doSendMagicEffect(getPlayerPosition(cid), configuration.effect2) if attacker == victim then doTargetCombatHealth(cid, victim, combat, -dano, -dano, configuration.effect2) else doTargetCombatHealth(attacker, victim, combat, -dano, -dano, configuration.effect2) end return false end end return true end ]]></event> ------------------------------------------------------------------------------------ </mod> aqui você edita os storages da magia e do cooldown, além do tempo que ela dura, o tempo de cooldown (um uso e outro) e os efeitos que vão sair.
-------------------------------------------------------------------------------------------------------------
aqui você edita o nome da spell, as palavras pra ela sair, level, custo de mana, se é preciso ser premium pra usar, o range dela, e as vocações que podem usá-la.
OBS: se vc quiser que essa spell seja ganha em uma quest (por se tratar de algo bastante apelativo), é só colocar needlearn = "1" e fazer uma quest pra ganhar a spell (tem no meu Darkness Pact Quest uma quest de ganhar Spell, é só ir lá no meu perfil e procurar o tópico).
Essa spell não serve somente pra ATS, use a criatividade pra criar uma história e fazer ela se encaixar... foque nos elementos de RPG e tcharam, está feito!.
Façam bom uso e espero que não saiam postando em outros lugares sem os devidos créditos. Abraços do lobinho pra vcs
PS: a foto ficou meio bosta mas vou postar mesmo assim
Eu (sorc) ataquei a zuera e tomei o dano de volta e ainda saiu esse efeitinho bonito.
Espero que tenham gostado e usem essa spell como base pra fazer outras coisas maravilhosas pra esse fórum
E não esqueça de clicar em "gostei" caso tenha curtido a idéia.
Ahhh, e antes que eu me esqueça dos agradecimentos:
@ViitinG por me ajudar a testar
@CreatServer por me dar a idéia
@MaXwEllDeN por me orientar a trocar a table pelo storage possibilitando que o script fosse possível.
-
dominus recebeu reputação de brendoonh em (Resolvido)Pedido StafftimeCara, percebo que você está querendo muito esse script e que é principiante nesse quesito.
Pois bem.
Não vou te dar o script, quero que você aprenda a fazer.
Primeiro: se trata de uma talkaction; toda talkactions usa uma função primeira chamada: onSay (). Se você for na pasta talkaction/scripts e abrir qualquer script dentro dela, verá essa função inserida no arquivo.
Secundo: existem condições para executar determinadas ações, no seu caso seria essas: nome, all,clear+nome, clearAll.
Lua tem uma sintaxe de condição que faz essa verificação qie você vai precisar para executar as ações devidas:
Terceiro: crie para cada condição, um código equivalente para esse quesito.
O que você vai precisar:
Ter conhecimento de programação em lua.
Ter conhecimento slbre funções do seu ot server.
Ter noção geral de como funcionará sua idéia.
Criar um algoritmo para o funcionamento da sua idéia.
Testar os códigos.
Implementar o código.
Boa sorte.
Ass: Poccnn
-
dominus recebeu reputação de Bruxo Ots em Advanced quest systemFala galera do TK!
Então, eu tinha postado esse script mas, por algum motivo sumiu do tk. eu deveria estar bêbado quando postou ele.
Mas, vamos para o que interessa.
O sistema é o seguinte, ele resume em um só script quests básicas como: item dentro do baú, quests por uid, quests de vocação etc.
Vejam algumas imagens que fiz para exemplificar o sistema.
Um pequeno tutorial de configuração da quest system:
Agora vamos por pra funcionar o sistema.
Provavelmente você já tem um sistema desse em seu ot, apenas modifique ele, caso não tenha adicione o que for preciso:
Em: data/actions/actions.xml
Agora em: data/lib/050functions.lua
Agora em: data/actions/script/quests
Crie um arquivo chamado:
Adicione isso dentro dele:
Pronto, agora vocês tem um novo sistema de quests.
Se faltou algo me comuniquem e sejam felizes.
-
dominus recebeu reputação de anthonyx22 em Script CheckpointSistema de posições para gms
Usa esse sistema.
-
dominus recebeu reputação de Misael boy em Portas BugadaUsa esse sistema de quest.
http://www.tibiaking.com/forum/forums/topic/69143-advanced-quest-system/#comment-396052
-
dominus recebeu reputação de Micael Silva em Portas BugadaUsa esse sistema de quest.
http://www.tibiaking.com/forum/forums/topic/69143-advanced-quest-system/#comment-396052
-
dominus recebeu reputação de Wakon em Advanced quest systemFala galera do TK!
Então, eu tinha postado esse script mas, por algum motivo sumiu do tk. eu deveria estar bêbado quando postou ele.
Mas, vamos para o que interessa.
O sistema é o seguinte, ele resume em um só script quests básicas como: item dentro do baú, quests por uid, quests de vocação etc.
Vejam algumas imagens que fiz para exemplificar o sistema.
Um pequeno tutorial de configuração da quest system:
Agora vamos por pra funcionar o sistema.
Provavelmente você já tem um sistema desse em seu ot, apenas modifique ele, caso não tenha adicione o que for preciso:
Em: data/actions/actions.xml
Agora em: data/lib/050functions.lua
Agora em: data/actions/script/quests
Crie um arquivo chamado:
Adicione isso dentro dele:
Pronto, agora vocês tem um novo sistema de quests.
Se faltou algo me comuniquem e sejam felizes.
-
dominus recebeu reputação de wevertonvrb em CONDITION OUTFITMuda isso:
Por isso:
cara eu ja avisei, esquece poketibia.
-
dominus recebeu reputação de wevertonvrb em ajuda a arrumar esse script? (spell)Usa isso:
-
dominus recebeu reputação de GBs em Talkactions - Mostra a lista de comandos dependendo do group access
-
dominus recebeu reputação de Bruno Carvalho em Npc boat doubleFala galera do TK.
Vim trazer um npc que me ajuda muito ja que eu sou preguiçoso pra karamba.
Esse npc funciona com o sistema de boat, só que duplo, tipo: você pode por ele em dois lugares e eles vão ficar fazendo viajem desse lugar para o outro.
Vejam as imagens:
Aqui ele está em um local qualquer e vai enviar o player para outro local já determinado.
Aqui, no caso, ele foi enviado para esse local.
O npc que está nesse barco vai viajar de volta de onde o player veio.
E completa o ciclo de viajem, ida e volta.
Bom, agora vamos adicionar o npc.
Primeiro você tem que ter as coordenadas já preparadas de ida e vinda.
Xml do npc:
Agora o script lua do npc:
Data/npc/scripts/
Explicando como mudar as posições e adicionar novas.
Na tabela "dest" existe tabelas como essa:
Você apenas precisar duplicar essa tabela e modificar os valores dela.
Espero que gostem e qualquer coisa relacionado ao npc me avisem.
-
dominus recebeu reputação de Bruxo Ots em Maquina De SummonEle remove o item? Ou solta o efeito?
-
dominus recebeu reputação de Bruxo Ots em Maquina De SummonIsso só pode ocorrer por 3 motivos: dados errados no action.xml, falta de marcação no item ou sentença que caiam diretamente em end.
No caso do script existe essa sentença que cai diretamente no fim da função não executando outra ação.
Ou seja, a variavel summonconfig está retornando nil.
Mas a declaração da variável era para disparar um erro caso não encontrasse o item na tabela, da mesma forma a função getthingfrompos deveria disparqr um erro caso não emcontrasse o item na pos marcada.
-
dominus recebeu reputação de Bruxo Ots em Maquina De SummonQual erro deu no console?
-
dominus recebeu reputação de Bruxo Ots em Maquina De SummonDeixq eu te dar uma idéia.
Existe algo muito errado só de olhar para a SS que você postou.
Essa mensagem de erro que retornou é causada quando você clica em um item que não executou qualquer ação ou o script retorna true sem executar qualquer ação.
No seu script, não existe retorno de true, ou seja, esse item não está chamando esse script.
Verifica se o id, uid, aid ou seja lá o que for, esteja sendo executado somente por esse script e não por outros.
-
dominus recebeu reputação de
PedroSTTem Sistema de posições para GMsSim.
Se seu sistema de vip for por storagevalue, adicione logo abaixo da function onsay () esse script:
No caso de posições posta na area de suporte que eu vou editar esse script pra você.
-
dominus recebeu reputação de Bruno Carvalho em Sistema de doors e key doorsFala trutas! Firmeza total!
Bem, eu ia postar outro sistema, mas a maldita da cachaça não deixou.
Então vou deixar esse script de key doors que acho bem interessante. Não sei se já fizerem algum semelhante, mas vou deixar o que eu fiz.
Como funciona?
É o velho sistema de doors, ou seja, ainda voga os sistemas de leveldoors, specialdoors etc; eu apenas modifiquei o sistema de key doors.
Quando alguém usa a chave certa na porta certa, ela fica destrancada, então você pode usá -la livremente até usar de novo a chave na porta para tranca-la.
Vejam as imagens:
Então agora vamos por pra funcionar:
Em actions/actions.xml
Substitua essas tags que fazem referência para doors.lua por essas:
Agora em actions/scripts/other/doors.lua
Abra ele, apague tudo dentro dele e adicikne esse código:
Agora em: data/lib/constante.lua
Procure pelas tabelas de keys, doors etc; substitua todas por essas:
Lembrando pessoal que esse script foi criado para um servidor 8.54 TFS, caso seu servidor seja outro, deveras ser feito as devidas alterações.
É isso pessoal, espero que gostem, caso encontrem algum erro, ou esteja faltando algo, posta ae que eu dou assistência.
-
dominus recebeu reputação de Thiago Rulexz em (Resolvido)[Ajuda] doTransformItem (item not found)Por que que no script existe 2 posições repetidas em todas as tabelas?
-
dominus recebeu reputação de Vodkart em Sistema de posições para GMsFala galera do TK.
Trago hoje um script que me ajuda muito no ot que é salvar ass posições de lugares onde tenho que ir.
Sabe aquelas vezes que você está em um lugar e precisa sair dele, mas depois precisa voltar lá, mas ai você tem que ir tipo andando até lá.
ACABOU SEU PROBLEMA COM ESSE SCRIPT:
Veja como funciona o sistema:
salvando posições: /savePos
Você usa o comando /savePos nomeDaPos
E ele vai salvar essa posição onde estás com esse respectivo nome.
Você pode salvar quantas posições queira.
caso você salve uma posição com um nome que já esteja salvo, ele vai substituir essa posição mas o nome ficará o mesmo.
sendo teleportado para posições salvas: /telePos nomeDaPos
Conhecendo as posições que estejam salvas: /posSaves
Removendo posições salvas: /removePos nomeDaPos
Não precisa estar na posição onde foi salvo para remove-la.
Caso não exista posições salvas ou o nome esteja errado ele retorna essa mensagem:
Chega de blablabla e vamos por pra funcionar:
Primeiro vá em talkactions/talkactions.xml
Adicione essa linha:
Agora em talkaction/scripts/
Crie um arquivo com o nome:
Adicione isso dentro dele:
E pronto!
Seja feliz!
-
dominus recebeu reputação de Wakon em Sistema de posições para GMsFala galera do TK.
Trago hoje um script que me ajuda muito no ot que é salvar ass posições de lugares onde tenho que ir.
Sabe aquelas vezes que você está em um lugar e precisa sair dele, mas depois precisa voltar lá, mas ai você tem que ir tipo andando até lá.
ACABOU SEU PROBLEMA COM ESSE SCRIPT:
Veja como funciona o sistema:
salvando posições: /savePos
Você usa o comando /savePos nomeDaPos
E ele vai salvar essa posição onde estás com esse respectivo nome.
Você pode salvar quantas posições queira.
caso você salve uma posição com um nome que já esteja salvo, ele vai substituir essa posição mas o nome ficará o mesmo.
sendo teleportado para posições salvas: /telePos nomeDaPos
Conhecendo as posições que estejam salvas: /posSaves
Removendo posições salvas: /removePos nomeDaPos
Não precisa estar na posição onde foi salvo para remove-la.
Caso não exista posições salvas ou o nome esteja errado ele retorna essa mensagem:
Chega de blablabla e vamos por pra funcionar:
Primeiro vá em talkactions/talkactions.xml
Adicione essa linha:
Agora em talkaction/scripts/
Crie um arquivo com o nome:
Adicione isso dentro dele:
E pronto!
Seja feliz!
-
dominus recebeu reputação de Wakon em Dar ou retirar item do playerFala trutas! Firmeza total!
Então, deixo aqui pra vocês um script que eu uso e acho muito útil para todos gms, cms e gods.
Essa talkaction é usada para dar um item ao jogador ou remover o item dele; você não vai precisar mais ir até o player, criar o item e entregá -lo.
Vamos ao código:
Em Talkaction/scripts/
Crie um arquivo chamado "dip_rip" com extensão "lua", ficando assim:
Agora, adicione esse código dentro dele:
Agora em talkaction/talkactions.xml
Adicione essa tag:
É isso ae galera, espero que vocês curtam o sistema.
-
dominus recebeu reputação de Roeyekon em Ajuda AquiEncontrei o erro na variável da função doplayerremoveitems ()
playerHaveItems(cid, iremos)
Troca "iremos" por "items"
-
dominus recebeu reputação de wevertonvrb em HELP Criaturescript incompleto ajudem completarFiz uma modificação no script:
Ps: muda "isplayeron ()" por: "getCreatureName ()"
-
dominus recebeu reputação de wevertonvrb em HELP Criaturescript incompleto ajudem completarEsse é o tipo de erro que não deveria existir, pois o script está sendo chamado pelo monstro, ou seja, é um monstro.
A única explicação plausível para isso é a função (iscreature) não reconhecer um pokemon como criatura ou, essa função deva estar sendo chamada de uma forma genérica, ou seja, independente de adicionar evento a um determinado "ser" ele está executando de uma forma geral.
Outra possibilidade, seja a função iscreature() que não esteja reconhecendo o número de identificação do "ser".