Ir para conteúdo

Adriano SwaTT

Membro
  • Registro em

  • Última visita

Tudo que Adriano SwaTT postou

  1. Boa tarde Klauguns, na verdade eu fiz para que o player ao usar a pick na pedra com a action, já ser teleportado para as coordenadas do script. Fiz assim para evitar bugs: Ex: 1- Um player usa a Pick e outro player entra no teleporte. (fácil arrumar isso) 2- Criar o teleporte e passar mais de 1 player. (O que também da pra arrumar) Mas caso queira que faça, eu edito o script pra ti. Boa sorte.
  2. Uai, mas agora eu troquei a função.. Teste aqui local thecombat = createCombatObject() local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW) function getSpellDamage(cid, attackSkill, weaponAttack, attackFactor) local hit = ((getPlayerLevel(cid) * 0.2) + (getPlayerSkill(cid, 4) * 2.4)) local damage = -(math.random(hit * 0.5, hit)) return damage, damage end local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 1000) setConditionFormula(condition, -0.4, 0, -0.4, 0) setCombatCondition(combat, condition) local arr = { {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 3, 0, 0, 0} } local area = createCombatArea(arr) setCombatArea(thecombat, area) function onTargetTile(cid, pos) doCombat(cid,combat,positionToVariant(pos)) end setCombatCallback(thecombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) local cpos = getCreaturePosition(variantToNumber(var)) doSendAnimatedText(cpos, 'Slowed!', 130) return doCombat(cid, thecombat, var) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage") Vou sair agora.. Qlqr coisa de manhã dou uma olhada com mais calma pra voce. Boa sorte.
  3. Para não "desfocalizar" o tópico, sugiro que mande suas dúvidas por Mensagens Privadas. Mas sim, poderia ser um item e criar o teleport, porém ficaria um pouco maior o script pois teria que fazer um Event para removê-los após um tempo programado.
  4. Assim?³ @EDITADO. local thecombat = createCombatObject() local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW) function getSpellDamage(cid, attackSkill, weaponAttack, attackFactor) local hit = ((getPlayerLevel(cid) * 0.2) + (getPlayerSkill(cid, 4) * 2.4)) local damage = -(math.random(hit * 0.5, hit)) return damage, damage end local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 1000) setConditionFormula(condition, -0.4, 0, -0.4, 0) setCombatCondition(combat, condition) local arr = { {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 3, 0, 0, 0} } local area = createCombatArea(arr) setCombatArea(thecombat, area) function onTargetTile(cid, pos) doCombat(cid,combat,positionToVariant(pos)) end setCombatCallback(thecombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) local cpos = getCreaturePosition(variantToNumber(var)) doSendAnimatedText(cpos, 'Slowed!', 130) return doCombat(cid, thecombat, var) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage")
  5. @OFFTOPIC Cocazul, o que você fez ficou sem identar e fora de "sincronia". Vi que está se esforçando... Não sou profissional de scripts, e sim apenas iniciante também.. Mas terei o maior prazer em lhe ensinar o pouco que sei. Qualquer coisa, me mande Private e conversamos. Abraços.
  6. Assim? local thecombat = createCombatObject() local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW) function getSpellDamage(cid, attackSkill, weaponAttack, attackFactor) local hit = ((getPlayerLevel(cid) * 0.2) + (getPlayerSkill(cid, 4) * 2.4)) local damage = -(math.random(hit * 0.5, hit)) doSendAnimatedText(getThingPos(variantToNumber(var)), 'Slowed!', 130) return damage, damage end local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 1000) setConditionFormula(condition, -0.4, 0, -0.4, 0) setCombatCondition(combat, condition) local arr = { {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 3, 0, 0, 0} } local area = createCombatArea(arr) setCombatArea(thecombat, area) function onTargetTile(cid, pos) doSendAnimatedText(getThingPos(variantToNumber(var)), 'Slowed!', 130) doCombat(cid,combat,positionToVariant(pos)) end setCombatCallback(thecombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) doSendAnimatedText(getThingPos(variantToNumber(var)), 'Slowed!', 130) return doCombat(cid, thecombat, var) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage")
  7. Não, o script que ele te passou não está da forma que precisa. Vou ver se faço pra você. @EDIT: 25/07/2014 às 14:16. Tente assim: Crie o arquivo pythius.lua na pasta Actions/Scripts e cole o código dentro: local idpick = 2121 local action = 12120 local entrada = {x=000, y=000, z=000} -- aqui as coordenadas da entrada local tempo = 1 -- tempo em minutos function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == idpick and itemEx.actionid == action then if getGlobalStorageValue(action) < 1 then setGlobalStorageValue(action, 1) doTeleportThing(cid, pos) addEvent(AtivePythius, tempo * 60 * 1000) else doPlayerSendCancel(cid, "Voce precisa usar a "..getItemNameById(idpick).." na pedra certa para entrar.") end else doPlayerSendCancel(cid, "Voce precisa usar a "..getItemNameById(idpick).." na pedra certa para entrar.") end return true end function AtivePythius() if getGlobalStorageValue(action) >= 1 then doBroadcastMessage("Ja podem entrar novamente para enfrentar o Pythius The Rotten.") setGlobalStorageValue(action, 0) end return true end Em actions.xml adicione a seguinte tag: <action itemid="XXXX" event="script" value="tools/machete.lua"/> Substitua o XXX pela ID da Pick, assim como no Script LUA também. Agora pelo MapEditor, coloque a ActionID 12120 na Pedra onde usará a Pick. Salve, feche e reinicie o Servidor. Boa sorte. Poste o Resultado.
  8. Teste assim: local thecombat = createCombatObject() local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW) function getSpellDamage(cid, attackSkill, weaponAttack, attackFactor) local hit = ((getPlayerLevel(cid) * 0.2) + (getPlayerSkill(cid, 4) * 2.4)) local damage = -(math.random(hit * 0.5, hit)) return damage, damage end local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 1000) setConditionFormula(condition, -0.4, 0, -0.4, 0) setCombatCondition(combat, condition) local arr = { {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 3, 0, 0, 0} } local area = createCombatArea(arr) setCombatArea(thecombat, area) function onTargetTile(cid, pos) doCombat(cid,combat,positionToVariant(pos)) end setCombatCallback(thecombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) doSendAnimatedText(getThingPos(variantToNumber(var)), 'Slowed!', 130) return doCombat(cid, thecombat, var) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage")
  9. Esta magia não precisa ter alvo selecionado? AHHHHHHHH, disfarça. Agora que fui dar uma olhada na área da magia.
  10. Teste assim: local thecombat = createCombatObject() local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 1000) setConditionFormula(condition, -0.4, 0, -0.4, 0) setCombatCondition(combat, condition) local area = createCombatArea(arr) setCombatArea(thecombat, area) local arr = { {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 3, 0, 0, 0} } function getSpellDamage(cid, attackSkill, weaponAttack, attackFactor) local hit = ((getPlayerLevel(cid) * 0.2) + (getPlayerSkill(cid, 4) * 2.4)) local damage = -(math.random(hit * 0.5, hit)) return damage, damage end function onTargetTile(cid, pos) doCombat(cid,combat,positionToVariant(pos)) end setCombatCallback(thecombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) local posi = getCreaturePosition(target) doSendAnimatedText(posi, 'Slowed!', 130) return doCombat(cid, thecombat, var) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage") Obs: Sua spell está meio bagunçada, mas tomara que funcione, não sou experiente com spells. Boa sorte.
  11. Em seu config.lua, procure por: premiumForPromotion Se estiver FALSE, coloque TRUE e Reinicie o server. Nem sei se é aí, eu lembro de ter visto em algum lugar, mas vale a pena tentar. Boa sorte.
  12. Então nos faça uma favor? Poste a magia para que possamos editá-la.
  13. Teste assim: Atualize seu script de VIP por este: E agora crie o arquivo endvip.lua na pasta CreatureScripts e adicione este conteúdo: Então abra o CreatureScripts.xml e adicione esta tag: <event type="login" name="CheckVip" script="endvip.lua"/> E por último, creio que seja necessário que abra o arquivo Login.lua da pasta CreatureScripts/scripts e adicionar esta tag junto com as outras do mesmo gênero: registerCreatureEvent(cid, "CheckVip") Não testei pois não tenho servidor com sistema de VIP. Mas teste e nos poste o resultado. Boa sorte.
  14. Sobre o primeiro SCRIPT, de adicionar a tag no nome do Player, talvez possa ser resolvido assim: Dê uma olhada neste sistema: Link Ou então poste-o para que possamos adaptar ao seu. ------------------------------------------------------------------ Me diz, o 4º Script funcionou?
  15. Certo, mas basta transformá-lo em Talkactions, para ter um item e usar a fala para "plantar" a trap. Ou você quer Spells? Sendo uma magia? Que use Mana, etc? @EDIT Mals, agora não vai dar pra eu fazer, mas assim que der um tempinho aqui eu crio pra ti. Se bem que eu posso tentar fazer de um jeito mais simples aqui. Vamos ver. @@EDIT Bom, criei um script beeeem simples e funcional. Iria aprimorar ele, mas estou sem tempo e agora depois de semi-pronto, talvez alguém venha terminá-lo. Que o ideal seria para colocar limites de "traps", auto-desarme (caso fique muito tempo e o player volte a poder armar outras), etc.. Enfim... Em spells.xml adicione esta tag: <instant name="Check Solo" words="check" lvl="0" mana="20" prem="0" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="spell_trap.lua"/> Agora dentro da pasta Scripts, crie o arquivo chamado "spell_trap.lua" e adicione o código abaixo.: local action = 12120 -- valor da storage da bomba local mana = 20 -- quantidade de mana para plantar function onCastSpell(cid, var) local pos = getCreaturePosition(cid) local get = getTileInfo(pos).itemid if getCreatureMana(cid) >= mana then doCreatureAddMana(cid, -mana, false) doItemSetAttribute(doCreateItem(get, 1, pos), "aid", action) else doPlayerSendCancel(cid, "Voce nao tem mana suficiente.") end return true end Certo, agora abra movements.xml e adicione a tag a seguir: <movevent type="StepIn" actionid="12120" event="script" value="spell_trap.lua"/> E por último, crie o arquivo spell_trap.lua e adicione o conteúdo abaixo: local minn, maxx = 10, 25 -- dano mínimo e máximo function onStepIn(cid, item, position, fromPosition) local pos = getCreaturePosition(cid) local get = getTileInfo(pos).itemid doSendMagicEffect(pos, 46) doCreateItem(get, 1, pos) doTargetCombatHealth(boom, cid, COMBAT_PHYSICALDAMAGE, -minn, -maxx, CONST_ME_NONE) return true end Bom, creio que esteja super fácil de configurar. Caso haja dúvidas, favor perguntar. Boa sorte.
  16. Certo, então vejamos.. O 1º SCRIPT, seria uma TAG ao Nome do Player? ________________________________________________ ________________________________________________ O 4º ERRO, teste o script abaixo: ________________________________________________ O 5º Script, como seria este comando de remover itens da BAG de um player? Executava o comando e ele removeria todos itens de dentro de uma bag específica? 5.1, um comando de contagem regressiva? Tipo, /cont 1,5 Ele fizesse a contagem do 5 ao 1 e depois o já? ________________________________________________ Precisa explicar um pouco melhor seus scripts, pois os scripters não tem o costume de ficar perguntando. Boa sorte.
  17. Quais dos bugs já foram corrigidos?
  18. Vou tentar fazer pra você caso eu não encontre aqui. Veja se este meu tutorial não lhe ajuda: Link Boa sorte.
  19. Certo, me diga o que editou e como fez para eu saber onde errei, somos todos alunos aqui.
  20. Teste primeiro.. Eu peguei o dele como base, mas no funcionamento está muito diferente. Removi funções desnecessárias e encurtei coordenadas para ficar mais fácil de configurar.
  21. Sabia que era possível, mas nunca havia corrido atrás de como fazer.. Muito show de bola o script, está de parabéns e é claro que já foi reputado.
  22. Não testei.. Configure cautelosamente e teste. Qualquer coisa, poste aqui. Se der erro, não esqueça de ver na Distro se acusou e tals e nos dê detalhes para que possamos resolver juntos. Este é o arquivo lua, sendo então "kyuubi.lua" na pasta CreatureScripts/Scripts. local idgrade = 1483 --DIGITE AQUI O ID DAS TRAPS local msg_kill = "Voce matou o desgracado." local tempo = 1 -- Tempo em minutos para reaparecer as traps local monster_name = 'kyuubi' -- nome do monstro tudo minusculo local pos1 = {x=74, y=410, z=5} -- Coloque a coordenada da primeira grade de cima local pos2 = {x=pos1.x, y=pos1.y+1, z=pos1.z} -- Não mexa local pos3 = {x=pos1.x, y=pos1.y+2, z=pos1.z} -- Não mexa function onKill(cid, target, lastHit) if isMonster(target) and getCreatureName(target):lower() == monster_name then doPlayerSendTextMessage(cid,22, msg_kill) doRemoveItem(getTileItemById(pos1, idgrade).uid, 1) doSendMagicEffect(pos1,12) doRemoveItem(getTileItemById(pos2, idgrade).uid, 1) doSendMagicEffect(pos2,12) doRemoveItem(getTileItemById(pos3, idgrade).uid, 1) doSendMagicEffect(pos3,12) addEvent(ReFechando, tempo * 60 * 1000) end return true end function ReFechando() if getTileItemById(pos1, idgrade).uid <= 0 then doCreateItem(idgrade, 1, pos1) doSendMagicEffect(pos1,12) doCreateItem(idgrade, 1, pos2) doSendMagicEffect(pos2,12) doCreateItem(idgrade, 1, pos3) doSendMagicEffect(pos3,12) end return true end Em creaturescripts.xml registre este "evento": <event type="kill" name="Kyuubi" script="kyuubi.lua"/> Agora abra o arquivo "Login.lua" (Creaturescripts\scripts\login.lua) e adicione o registro abaixo, junto com as outras funções do gênero. registerCreatureEvent(cid, "Kyuubi") Boa sorte. Lembre-se de postar o resultado.
  23. Boa noite, que bom que funcionou. Bom aproveito.
  24. Boa noite. Creio que funcione sim, basta testar e retornar para me dizer se houve êxito.. Caso acuse algum erro, tentarmos resolver juntos. Boa sorte.

Informação Importante

Confirmação de Termo