Ir para conteúdo

jhon992

Conde
  • Total de itens

    631
  • Registro em

  • Última visita

  • Dias Ganhos

    12

Tudo que jhon992 postou

  1. jhon992

    Sou Lindo?

    desculpa ae então. não queria ofender, só tava sendo sincero. mas cada um tem seu gosto né e isso n se discute... kkk
  2. jhon992

    Sou Lindo?

    não é não cara, sinto muito.
  3. Ta concertado lá em cima, testei aqui e ta 100%.
  4. Eu tbm programo em java \o, kk. E de nada pelo script, vou reportar para moverem o tópico. @Edited, é mesmo fiz rapidinho e nem mudei. kk. Usa o speedGain vou alterar lá em cima.
  5. Não precisa multiplicar o script, basta adicionar novas pos no msm script desse modo: local tps = { ["Demon"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30}, ["Dragon"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30}, ["Rat"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30} } Como no exemplo, se adiciona virgulas no final de cada tag para poder colocar outra em baixo. E o rep é só clicar na "setinha verde" abaixo de um post de alguém que você queira reputar.
  6. Spell: local speedGain = 200 -- speed atack que a spell vai conseder. local time = 60 -- tempo em segundos da duração da spell. function onCastSpell(cid, var) doPlayerSetExtraAttackSpeed(cid,speedGain) addEvent(doRemoveExtraAttackSpeed, time*1000, cid) return true end function doRemoveExtraAttackSpeed(cid) if isPlayer(cid) then doPlayerSetExtraAttackSpeed(cid, 0) end end E pra não gerar bug, no teu arquivo creaturescripts/scripts/login.lua, antes do ultimo return true cole: doPlayerSetExtraAttackSpeed(cid, 0)
  7. tão mostra como faz ae vod, quanto mais conhecimento melhor.
  8. Na pasta data/movements/scripts, duplica um arquivo, nomeie para "amuletPercent" sem as aspas e nele cole: local porcentagem = 30 -- porcentagem de life que enche. local delay = 2 -- segundos de delay. function onEquip(cid, item, slot) doAddHpPercent(cid, item.itemid) return true end function doAddHpPercent(cid, item) if isPlayer(cid) and getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == item then local hpMax = getCreatureMaxHealth(cid) local heal = getCreatureMaxHealth(cid)*(porcentagem/100) doCreatureAddHealth(cid, heal) addEvent(doAddHpPercent, delay*1000, cid, item) end return true end Em movements.xml cole a tag: <movevent type="Equip" itemid="ID DO AMULETO" slot="necklace" level="LEVEL" event="script" value="amuletPercent.lua"/>
  9. Distro 8.6 com No-Check-Otbm ~~> Distro! Se não funcionar me reporta que eu vou estar arrumando!
  10. Pelo que eu entendi, seria isso. local effect = {23,45,32,64} -- sequencia de effect! function onCastSpell(cid, var) local target = getCreatureTarget(cid) if target > 0 then doTeleportThing(cid, getCreaturePosition(target)) doCreatureSetNoMove(cid, true) doCreatureSetNoMove(target, true) local tempo = 0 local quant = #effect local cont = 1 local tempoDelay = 500 -- tempo delay para cada efeito. while (tempo < tempoDelay*quant) do addEvent(sendEffectHit, tempoDelay, cid, target, cont) cont = cont+1 tempoDelay = tempoDelay + tempoDelay end return true else doPlayerSendCancel(cid,"Você precisa de um target para usar.") end return false end function sendEffectHit(cid, target, cont) if isPlayer(cid) then doSendMagicEffect(getCreaturePosition(cid), effect[cont]) local hit = hitTarget(cid) if isPlayer(target) or isCreature(target) then if getCreatureHealth(target) >= hit then doCreatureAddHealth(cid, -hit) doSendAnimatedText(getCreaturePosition(target), hit, COLOR_RED) else doCreatureAddHealth(cid, getCreatureHealth(target)) doSendAnimatedText(getCreaturePosition(target), getCreatureHealth(target), COLOR_RED) end end if cont == #effect then if isPlayer(target) or isCreature(target) then local pos = getClosestFreeTile(target, getCreaturePosition(cid), true, false) doTeleportThing(target, pos) end removeNoMove(cid, target) end end end function removeNoMove(cid, target) if isPlayer(cid) then doCreatureSetNoMove(cid, false) end if isPlayer(target) or isCreature(target) then doCreatureSetNoMove(target, false) end return true end function hitTarget(cid) local level = getPlayerLevel(cid) local magic = getPlayerMagLevel(cid) return level*0.5+magic+(math.random(10,30)) end
  11. jhon992

    Spell Dificil!

    Só tirei o exori do tibia como base e coloquei pra soltar um efeito na posição do player. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_NONE) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) local area = createCombatArea(AREA_SQUARE1X1) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, element, factor) local levelTotal, formula = level / 5, 0.0496 local normal, elemental = -(skill * attack * formula + levelTotal), math.ceil((skill * element * formula + levelTotal)) return normal/2, normal, -math.random(elemental/2, elemental) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell(cid, var) doSendMagicEffect(getCreaturePosition(cid), 30) -- torque o 30 pelo efeito que ira aparecer. return doCombat(cid, combat, var) end
  12. mals ae @isaque555, postamos ao mesmo tempo, to sem rep agora se não te reputava. - Reportado para moverem o tópico.
  13. Isso é editável no config.lua do seu servidor: Procure por isso, e troque para true. showHealthChange = false showManaChange = false
  14. Não parei pra analisar o script do @LuckOake, mais usei como base. Créditos pra ele então. Vai em data/creaturescripts/scripts duplica um arquivo e nomeia para "tpKill" sem as aspas e nele cole: local tpId = 1387 local tps = { ["Demon"] = {pos = {x=16260, y=256, z=7}, toPos = {x = 16396, y = 223, z = 7}, time = 30} } function onKill(cid, target, lastHit) local monster = getCreatureName(target) if tps[monster] then doCreateTeleport(tpId, tps[monster].toPos, tps[monster].pos) doCreatureSay(cid, "O teleport irá sumir em ".. tps[monster].time .." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tps[monster].time*1000, tps[monster].pos) end return true end function removeTp(pos) local position = {x=pos.x,y=pos.y,z=pos.z,stackpos=0} for i=1, 255 do position.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid == tpId then doRemoveItem(tile.uid) end end return true end Agora em creaturescripts.xml cole a tag: <event type="kill" name="TpKill" event="script" value="tpKill.lua"/> E no arquivo creaturescripts/scripts/login.lua antes do último return true cole a tag: registerCreatureEvent(cid, "TpKill")
  15. Vai em data/creaturescripts/scripts, duplica um arquivo e nomeia para "reflectSpell" sem as aspas e nele cole: local config = { storageNeed = 48593 -- storage do sistema } function onStatsChange(cid, attacker, type, combat, value) if getPlayerStorageValue(cid, config.storageNeed) > 0 then local reflectPercent = getPlayerStorageValue(cid, config.storageNeed) local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end setPlayerStorageValue(cid, config.storageNeed, -1) end return true end function onLogin(cid) registerCreatureEvent(cid, "ReflectGain") return true end Agora em creaturescripts.xml cole as tags: <event type="login" name="ReflectLogin" event="script" value="reflectSpell.lua"/> <event type="statschange" name="ReflectGain" event="script" value="reflectSpell.lua"/> E a base da sua spell deve ficar assim: function onCastSpell(cid, var) setPlayerStorageValue(cid, 48593, 30) -- storage que o script usa, porcentagem do reflexo. return true end
  16. jhon992

    Team X Team

    Vai na pasta data/creaturescripts/scripts duplica um arquivo e nomeia para "loginTeam" sem as aspas e nele cole: local config = { storageTeamOne = 68473, storageTeamTwo = 68474, teamOne = { outfitMale = {lookType = 128, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}, -- 94 representa a cor vermelha. outfitFemale = {lookType = 136, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}, templeId = 1 }, teamTwo = { outfitMale = {lookType = 128, lookHead = 82, lookBody = 82, lookLegs = 82, lookFeet = 82}, -- 82 representa a cor verde. outfitFemale = {lookType = 136, lookHead = 82, lookBody = 82, lookLegs = 82, lookFeet = 82}, templeId = 2 } } function onLogin(cid) local vermelho = getGlobalStorageValue(config.teamOne) local verde = getGlobalStorageValue(config.storageTeamTwo) if vermelho > verde then if getPlayerSex(cid) == 0 then doCreatureChangeOutfit(cid, config.teamTwo.outfitFemale) else doCreatureChangeOutfit(cid, config.teamTwo.outfitMale) end doTeleportThing(cid, getTownTemplePosition(config.teamTwo.templeId)) setGlobalStorageValue(config.storageTeamTwo, verde+1) setPlayerStorageValue(cid, config.storageTeamTwo, 1) else if getPlayerSex(cid) == 0 then doCreatureChangeOutfit(cid, config.teamOne.outfitFemale) else doCreatureChangeOutfit(cid, config.teamOne.outfitMale) end doTeleportThing(cid, getTownTemplePosition(config.teamOne.templeId)) setGlobalStorageValue(config.teamOne, vermelho+1) setPlayerStorageValue(cid, config.teamOne, 1) end registerCreatureEvent(cid, "LogoutTeam") registerCreatureEvent(cid, "DeathTeam") return true end function onDeath(cid, corpse, deathList) if getPlayerStorageValue(cid, config.storageTeamTwo) == 1 then setPlayerStorageValue(cid, config.storageTeamTwo, 0) setGlobalStorageValue(config.storageTeamTwo, getGlobalStorageValue(config.storageTeamTwo)-1) else setPlayerStorageValue(cid, config.teamOne, 0) setGlobalStorageValue(config.teamOne, getGlobalStorageValue(config.teamOne)-1) end return true end function onLogout(cid) if getPlayerStorageValue(cid, config.storageTeamTwo) == 1 then setPlayerStorageValue(cid, config.storageTeamTwo, 0) setGlobalStorageValue(config.storageTeamTwo, getGlobalStorageValue(config.storageTeamTwo)-1) else setPlayerStorageValue(cid, config.teamOne, 0) setGlobalStorageValue(config.teamOne, getGlobalStorageValue(config.teamOne)-1) end return true end Agora em creaturescripts.xml cole as tags: <event type="login" name="LoginTeam" event="script" value="loginTeam.lua"/> <event type="logout" name="LogoutTeam" event="script" value="loginTeam.lua"/> <event type="death" name="DeathTeam" event="script" value="loginTeam.lua"/> Prontinho! Se resolveu seu pedido reporte o tópico para que movam para resolvidos.
  17. Basta adicionar o novo efeito nesta parte do código: local AURASYSTEM_TEMPLATES = { ["novo"] = {NUMERO DO COMBAT, NUMERO DO EFEITO}, ["fire"] = {COMBAT_FIREDAMAGE, CONST_ME_FIREATTACK}, ["ice"] = {COMBAT_ICEDAMAGE, CONST_ME_ICEATTACK}, ["earth"] = {COMBAT_EARTHDAMAGE, CONST_ME_SMALLPLANTS}, ["energy"] = {COMBAT_ENERGYDAMAGE, CONST_ME_PURPLEENERGY}, ["holy"] = {COMBAT_HOLYDAMAGE, CONST_ME_HOLYDAMAGE}, ["death"] = {COMBAT_DEATHDAMAGE, CONST_ME_MORTAREA}, ["all"] = { {COMBAT_FIREDAMAGE, CONST_ME_FIREATTACK}, {COMBAT_ICEDAMAGE, CONST_ME_ICEATTACK}, {COMBAT_EARTHDAMAGE, CONST_ME_SMALLPLANTS}, {COMBAT_ENERGYDAMAGE, CONST_ME_PURPLEENERGY}, {COMBAT_HOLYDAMAGE, CONST_ME_HOLYDAMAGE}, {COMBAT_DEATHDAMAGE, CONST_ME_MORTAREA} } } Os números de COMBAT podem variar, lista: COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048 Lista de numeros de efeito da versão mais atual:
  18. @pacht, tais entendendo legal o sistema hem, kk. A primeira parte do script já é a instalação do rank de reputação.
  19. Era pra estar funcionando, pode ser o uso de sistema vip com os.time ou tag's com o mesmo id no movements.xml que acabam causando conflito.
  20. Vender coisas ripadas acho muito errado! Mais agora cobrar pelos serviços que se passa para fazer scripts bem elaborados acho que não é errado. Já que no mundo open tibia é assim, os administradores de servidores criam um determinado server, vai nos fóruns pega tudo de graça, e fica lucrando, as vezes lucrando muito e isso tudo é em cima daqueles que passaram trabalho fazendo algo... Oque acontece comprando algo relacionado a servidor? Você está investindo no seu próprio server com sistemas novos e diferentes fazendo assim o crescimento dos jogadores e consequentemente um maior numero de doadores deixando assim contente os administradores, jogadores e desenvolvedores. Esse é meu ponto de vista.
  21. Na minha humilde opinião tudo que se cria é baseado em algum conhecimento de outras fontes... Mal ae por usar sua ideia só tava afim de inovar porque eu tinha achado a spell muito limitada! E o resultado como todos podem ver ficou ótimo! Rep+ pra ti, e vou disponibilizar pra download lá agora né.. saijda. Download: http://www.#####/categorias-index/275781/sistemas.html
  22. Global Full [9.6~9.61], o melhor para quem busca um servidor com RPG de ótima qualidade! Novidades: Training Offline, Gray Island e Quirefang e muito mais ~~> http://www.jhon-soft.com/produto/593212/Global_Full__9_6_9_61_.html
  23. Mensagens validas para tfs 8.6: MESSAGE_FIRST MESSAGE_STATUS_CONSOLE_RED MESSAGE_EVENT_ORANGE MESSAGE_STATUS_CONSOLE_ORANGE MESSAGE_STATUS_WARNING MESSAGE_EVENT_ADVANCE MESSAGE_EVENT_DEFAULT MESSAGE_STATUS_DEFAULT MESSAGE_INFO_DESCR MESSAGE_STATUS_SMALL MESSAGE_STATUS_CONSOLE_BLUE MESSAGE_LAST
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...