Ir para conteúdo

jhon992

Conde
  • Total de itens

    631
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Tudo que jhon992 postou

  1. jhon992

    Sou Lindo?

    não é não cara, sinto muito.
  2. Ta concertado lá em cima, testei aqui e ta 100%.
  3. 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.
  4. 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.
  5. 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)
  6. tão mostra como faz ae vod, quanto mais conhecimento melhor.
  7. 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"/>
  8. Distro 8.6 com No-Check-Otbm ~~> Distro! Se não funcionar me reporta que eu vou estar arrumando!
  9. 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
  10. 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
  11. mals ae @isaque555, postamos ao mesmo tempo, to sem rep agora se não te reputava. - Reportado para moverem o tópico.
  12. Isso é editável no config.lua do seu servidor: Procure por isso, e troque para true. showHealthChange = false showManaChange = false
  13. 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")
  14. 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
  15. 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.
  16. 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:
  17. @pacht, tais entendendo legal o sistema hem, kk. A primeira parte do script já é a instalação do rank de reputação.
  18. 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.
  19. 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
  20. 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
  21. 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
  22. jhon992

    Duvida Sobre Depot

    getPlayerDepotItems(cid, depotid) ...
  23. @GuizitoG, sim! Na verdade só precisa substituir o executável mais pode vir a ocorrer algum erro já que a distro é 0.4 e a maioria dos servidores para download a distro usada é a 0.3.6, dae resolva os erros e fica tudo sussa.
  • Quem Está Navegando   0 membros estão online

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