Ir para conteúdo

Thayguroficial

Membro
  • Registro em

  • Última visita

Tudo que Thayguroficial postou

  1. Como faço para por um efeito diferente para cada vocação que usar essa spell? local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, 30000) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, 25) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, 25) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, 25) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, 25) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, 25) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setCombatCondition(combat, condition) function onCastSpell(cid, var) if exhaustion.check(cid, 13101) == TRUE then doPlayerSendCancel(cid, "Podera usar novamente dentro de 30 segundos.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end for k = 1, 100 do addEvent(function() if isCreature(cid) then local pos1 = {x = getPlayerPosition(cid).x + 0, y = getPlayerPosition(cid).y + 0, z = getPlayerPosition(cid).z} doSendMagicEffect(pos1, 107) end end, 1 + ((k-1) * 300)) end exhaustion.set(cid, 13101, 30.0) return doCombat(cid, combat, var) end
  2. Primeiramente, muito obrigado por me ajudar! Eu usei a spell dentro do jogo e não funcionou, o nome da spell aparece no default como se não existisse. Outra coisa, se não for abusar, tem como criar essa spell até o nível +10? removendo a storage id do +1 quando evoluir pra +2, sucessivamente? Grato desde já! EDIT: Encontrei um spell upgrade system feito para TFS 1.0, 1.2 Não entendi muito bem o script mas parece que existe um tipo de ranking, Aprendiz, Journeyman, Adept... O action pelo que eu vi posso configurar um item que ao dar use a spell fica +1, +2 só que não existe nenhuma storage. Vou postar o script, veja se é possível adaptar pra TFS 0.4. Global.lua function upGradeSpells(player, words, tier, max) if player:getStorageValue(SPELL_WORDS[words]) < max then if player:getStorageValue(SPELL_WORDS[words]) < TIER[tier] then player:setStorageValue(SPELL_WORDS[words], TIER[tier]) player:getPosition():sendMagicEffect(CONST_ME_CONFETTI_HORIZONTAL) doCreatureSay(cid, tier, TALKTYPE_ORANGE_1, false, 0, player:getPosition()) elseif player:getStorageValue(SPELL_WORDS[words]) == TIER[tier] then player:sendCancelMessage("You've already scribed a this version of the spell.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false else player:sendCancelMessage("You already have a higher spell version scribed.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end else player:sendCancelMessage("You've reached the maximum tier for this spell.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end end --light, haste, single targets, area, single target heal, support spell, speed SPELL_WORDS = { ["exura dis"] = 1001, ["exevo dis flam hur"] = 1002, ["exiva"] = 1003, ["exori min flam"] = 1004, ["utevo lux"] = 1005, ["exura"] = 1006, ["exani tera"] = 1007, ["exura ico"] = 1008, ["exana pox"] = 1009, ["exani hur"] = 10010, ["exori vis"] = 10011, ["exori tera"] = 10012, ["exevo con"] = 10013, ["utevo gran lux"] = 10014, ["exori flam"] = 10015, ["exevo pan"] = 10016, ["adevo grav pox"] = 10017, ["utamo vita"] = 10018, ["utani hur"] = 10019, ["adevo grav flam"] = 10020, ["exori frigo"] = 10021, ["adori min vis"] = 10022, ["adana pox"] = 10023, ["adura gran"] = 10024, ["exori moe ico"] = 10025, ["exevo con pox"] = 10026, ["exori mort"] = 10027, ["exori ico"] = 10028, ["adeta sio"] = 10029, ["adito grav"] = 10030, ["exevo con mort"] = 10031, ["adevo grav vis"] = 10032, ["exevo flam hur"] = 10033, ["exura sio"] = 10034, ["exevo frigo hur"] = 10035, ["exura gran"] = 10036, ["utani gran hur"] = 10037, ["exeta res"] = 10038, ["adori blank"] = 10039, ["adito tera"] = 10040, ["exana vis"] = 10041, ["exevo vis lux"] = 10042, ["utevo res ina"] = 10043, ["exori con"] = 10044, ["exevo con hur"] = 10045, ["adori tera"] = 10046, ["adura vita"] = 10047, ["adevo mas pox"] = 10048, ["adori vis"] = 10049, ["exevo con flam"] = 10050, ["utani tempo hur"] = 10051, ["utevo res"] = 10052, ["utori flam"] = 10053, ["utevo vis lux"] = 10054, ["exana ina"] = 10055, ["adevo mas flam"] = 10056, ["adevo res flam"] = 10057, ["adori san"] = 10058, ["adori flam"] = 10059, ["adevo ina"] = 10060, ["adana mort"] = 10061, ["adevo grav vita"] = 10062, ["adori frigo"] = 10063, ["exori hur"] = 10064, ["adori mas vis"] = 10065, ["adori mas tera"] = 10066, ["exevo gran vis lux"] = 10067, ["adevo mas grav pox"] = 10068, ["exura vita"] = 10069, ["exana flam"] = 10070, ["adori mas frigo"] = 10071, ["adori mas flam"] = 10072, ["adevo mas hur"] = 10073, ["adevo grav tera"] = 10074, ["utura mas sio"] = 10075, ["utori mas sio"] = 10076, ["utito mas sio"] = 10077, ["utamo mas sio"] = 10078, ["adevo mas grav flam"] = 10079, ["exevo con grav"] = 10080, ["exori mas"] = 10081, ["utori vis"] = 10082, ["utana vid"] = 10083, ["exori"] = 10084, ["exura san"] = 10085, ["exura gran mas res"] = 10086, ["adevo mas vis"] = 10087, ["exevo vis hur"] = 10088, ["exevo tera hur"] = 10089, ["exori san"] = 10090, ["exevo gran frigo hur"] = 10091, ["utori kor"] = 10092, ["adevo mas grav vis"] = 10093, ["exeta vis"] = 10094, ["exeta con"] = 10095, ["exana kor"] = 10096, ["adori gran mort"] = 10097, ["utura"] = 10098, ["utori pox"] = 10099, ["exevo mas san"] = 100100, ["adana ani"] = 100101, ["utamo tempo san"] = 100102, ["exevo gran mas tera"] = 100103, ["utamo tempo"] = 100104, ["exevo gran mas vis"] = 100105, ["exori amp vis"] = 100106, ["exevo con vis"] = 100107, ["utito tempo san"] = 100108, ["exura gran san"] = 100109, ["exevo gran mas frigo"] = 100110, ["exevo gran mas flam"] = 100111, ["utito tempo"] = 100112, ["exori gran tera"] = 100113, ["exori gran flam"] = 100114, ["exori min"] = 100115, ["utori san"] = 100116, ["utori mort"] = 100117, ["exori gran vis"] = 100118, ["exana mort"] = 100119, ["exura gran ico"] = 100120, ["exori gran frigo"] = 100121, ["exori max flam"] = 100122, ["exori max tera"] = 100123, ["exori gran con"] = 100124, ["exori gran"] = 100125, ["exori max frigo"] = 100126, ["exori max vis"] = 100127, ["utura gran"] = 100128, ["exori gran ico"] = 100129 } TIER = { ["Apprentice"] = 0, ["Journeyman"] = 1, ["Adept"] = 2, ["Expert"] = 3, ["Master"] = 4, ["Grandmaster"] = 5 } data\chatchannels\chatchannels.xml <?xml version="1.0" encoding="UTF-8"?> <channels> <channel id="2" name="Tutor" script="tutor.lua" /> <channel id="3" name="World Chat" public="1" script="worldchat.lua" /> <channel id="4" name="Spells" public="1" script="spells.lua" /> <channel id="5" name="Trade" public="1" script="advertising.lua" /> <channel id="6" name="Advertising-Rookgaard" public="1" script="advertising-rook.lua" /> <channel id="7" name="Help" public="1" script="help.lua" /> <channel id="8" name="Gamemaster" script="gamemaster.lua" /> </channels> data\chatchannels\scripts\spells.lua local CHANNEL_CHARACTER = 4 local tier = { [0] = "[ Apprentice ]", [1] = "[ Journeyman ]", [2] = "[ Adept ]", [3] = "[ Expert ]", [4] = "[ Master ]", [5] = "[ Grandmaster ]" } local function listSpells(player) local count = getPlayerInstantSpellCount(player) local text = "" local t = {} for i = 0, count - 1 do local spell = getPlayerInstantSpellInfo(player, i) if spell.level ~= 0 then if spell.manapercent > 0 then spell.mana = spell.manapercent .. "%" end t[#t+1] = spell end end table.sort(t, function(a, b) return a.level < b.level end) local prevLevel = -1 for i, spell in ipairs(t) do local line = "" if prevLevel ~= spell.level then if i ~= 1 then line = "\n" end line = line .. "\nSpells for Level " .. spell.level .. "\n" prevLevel = spell.level player:sendChannelMessage(cid, line, TALKTYPE_CHANNEL_O, CHANNEL_CHARACTER) end if player:getStorageValue(SPELL_WORDS[spell.words]) > 0 then local index = player:getStorageValue(SPELL_WORDS[spell.words]) text = " " .. spell.words .. " " .. tier[index] .. " - " .. spell.name .. " : " .. spell.mana .. "\n" else text = " " .. spell.words .. " " .. tier[0] .. " - " .. spell.name .. " : " .. spell.mana .. "\n" end player:sendChannelMessage(cid, text, TALKTYPE_CHANNEL_Y, CHANNEL_CHARACTER) end end function onJoin(player) addEvent(listSpells, 100, player) return true end function onSpeak(player, type, message) player:sendCancelMessage("You may not speak in this chat.") return false end Exemplo: data\actions\scripts\spells.lua function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey) upGradeSpells(cid, "exevo pan", 1, item) return true end Exemplo na spell: local food = { 2666, -- meat 2671, -- ham 2681, -- grape 2674, -- apple 2689, -- bread 2690, -- roll 2696 -- cheese } function onCastSpell(creature, var) if not creature:isPlayer() then return false end if creature:getStorageValue(SPELL_WORDS["exevo pan"]) > 0 then -- if the tier is higher then apprentice increase the amount of food created creature:addItem(food[math.random(#food)], (creature:getStorageValue(SPELL_WORDS["exevo pan"]) + 1)) creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) else -- else give 1 piece of food creature:addItem(food[math.random(#food)], 1) creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) end return true end
  3. Fala pessoal do TibiaKing, Como faço um item que ao dar use, refina minha spell pra +1. Deixando ela 10% mais forte. Ex: Quando eu soltar um exori sem refino vai sair assim: Exori +0, com refino: Exori +1. Grato desde já!
  4. Conseguiu solucionar o problema do servidor fechando sozinho? estou com o mesmo problema. Mesma base!
  5. To precisando também, conseguiu encontrar?
  6. Fala pessoal do TibiaKing, Alguém me ajuda a adaptar esse código para minha distro 0.4 3884? uint32_t Player::getAttackSpeed() e substitua ela inteira por: uint32_t Player::getAttackSpeed() { int32_t weaponAttackSpeed = 0; int32_t minimumAttackSpeed = 500; Item* weapon = getWeapon(); if(weapon && weapon->getAttackSpeed() != 0) weaponAttackSpeed = floor ((int)weapon->getAttackSpeed()); // FORMULA int32_t attackSpeed = vocation->getAttackSpeed() - (getSkill(SKILL_CLUB, SKILL_LEVEL) * 20) - weaponAttackSpeed; // CHECA A VELOCIDADE MÍNIMA if (attackSpeed && attackSpeed < minimumAttackSpeed) return minimumAttackSpeed; return attackSpeed; } Tentei compilar desse jeito mas da o seguinte erro:
  7. Eu mudei na source de 500 pra 50 e mesmo assim não surte efeito esse attribute
  8. MUITO OBRIGADOOOOOOO, te amo cara. Sério!
  9. Amigo, pode me ajudar com essa spell? estou com o mesmo erro.
  10. Fala pessoal do TibiaKing, Peço a ajuda de vocês, estou já a dias procurando e não acho. Como eu compilo a source para aceitar o attribute atkspeed no item.xml? Eu já "compilei" a source para > Lua Function - doPlayerSetExtraAttackSpeed(cid, speed) e NÃO DEU CERTO Eu disse "compilei" pois não consegui encontrar isso: return vocation->getAttackSpeed() em Player.cpp para trocar por isso: return vocation->getAttackSpeed() - getPlayer()->getExtraAttackSpeed(); Talvez pelo tutorial ser de 2009 e feito para TFS 0.3.5Pl1. Alguem poderia me ajudar a liberar esse attribute na minha TFS 0.4 3777? Ficarei eternamente grato! REP+++++++
  11. Coloquei value 500, 100, 50 e não vi diferença alguma
  12. Esse attribute aumentou minha velocidade de movimento rsrsrs Quero colocar velocidade de ataque
  13. Creio que criando um script em weapons/scripts funcione. Só não sei como criar isso. Bom, se existe isso em outros servers, de alguma forma da pra fazer! Agradecido pela força positiva!
  14. Obrigado pela intenção de querer ajudar, mas quero aumentar o ataque speed de 1 item especifico e não da vocação!
  15. Não consegui O npc continua entregando só o item. Vou postar os scripts. Creaturescripts (item que da a vocação) onde ta 1920 era a storage do bau inicial no templo Script do npc EDIT: Consegui resolver!!! Vou compartilhar aqui pra caso alguém precise: Em data/movements/scripts crie um .lua com nome storagetemplo e adicione: Agora você adiciona a seguinte TAG em movements.xml Abra seu world com remeres e adiciona 9000 no uniqueid do piso que deseja que o player pegue a storage 1920 quando pisar. Agradeço a ajuda Wakon. Muito obrigado!
  16. Não funcionou É o seguinte eu tenho um npc que vende vocação vip, você da o item pro npc (10 points) e ele te da um item que te transforma na vocação e desloga seu char. Na mesma hora você já está com a vocação nova. Porem eu descobri que existe uma storage nesse item que se você não tem a storage, você só recebe o item e não ganha a vocação. (a storage é pega quando clica no bau do templo com os item iniciante). Meu problema é o pessoal não pegar o bau do inicio propositalmente só para ganhar o item da vocação e dupar esse item, depois pegar a storage para ganhar a vocação. Então quero um script que dê storage (XXX) quando ele pisa em algum tile do templo. Obrigado pela ajuda!
  17. O titulo diz tudo. Como faço para aumentar o atk speed de uma sword no weapon.xml?
  18. Fala pessoal, Como faço para por um piso do meu templo dar uma storage id no player? Grato desde já!
  19. Primeiramente quero lhe agradecer a vontade de querer me ajudar. Obrigado! Coloquei esse que você me passou e o monstro não solta a spell.
  20. Onde exatamente eu coloco o código if not isPlayer(parameters.cid) then return true end eu coloquei em baixo dos local function onCastSpell e o monstro parou de soltar a spell. Pode editar para mim por favor?
  21. Fiz o que mostrava no tópico, e realmente não da mais erro. Isso porque o monstro parou de soltar a spell.
  22. Eu acho que esses erros podem acabar causando lag quando o servidor estiver cheio. Bom, vou continuar batendo nessa tecla até resolver nem que eu crie spell por spell. Aproveita e segue o tópico vai que alguém tem a solução para nós.
  23. Muito obrigado pela explicação! Não existe nenhuma forma de eu fazer com que quando o monstro morrer a spell seja cancelada?
  24. Boa noite! Estou com um problema nos spells do meu servidor, eu coloquei uma spell em um monstro do meu servidor chamada "sword throw" e reparei que o erro aparece quando esse monstro morre (a spell é continua). Já vi diversos topicos sobre o mesmo assunto e até resolveu o erro na distro mas foi porque fez com que o monstro não usasse a spell. Grato desde já. REP+++
  25. Meu creaturescripts.xml Quanto ao erro no console, não aparece nenhum erro. Edit: na verdade existe um erro que ta dando direto na minha distro é esse ai da imagem:

Informação Importante

Confirmação de Termo