Ir para conteúdo

JcA

Membro
  • Registro em

  • Última visita

Tudo que JcA postou

  1. Não mudei, agora só copiei e colei o que você fez, apenas não heala, sai o efeito e a mensagem, mas o heal não funciona
  2. O primeiro script esta perfeito, agora o não sei o que deu, mas o 2 script, ele drenou a vida (não deu erros no distro) adsuiaHHASUihsuiSau, local t = { hp = 100, mp = 50, interval = 3, -- intervalo para healar duration = 10 -- duração do efeito em minutos } function onStepIn(cid, item, fromPosition, itemEx, toPosition) if isPlayer(cid) then doCreatureSay(cid, "Regeneration Activated.", TALKTYPE_ORANGE_1) doSendMagicEffect(toPosition, CONST_ME_HOLYAREA) setConditionTime(cid, {t.hp, t.mp}, t.interval, t.duration) end return true end function setConditionTime(cid, rise, interval, duration) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, rise[1]) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, rise[2]) setConditionParam(condition, CONDITION_PARAM_MANATICKS, interval*1000) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, interval*1000) setConditionParam(condition, CONDITION_PARAM_TICKS, duration*60*1000) doAddCondition(cid, condition) return true end Posso aproveitar para pedir mais 1? Lamento não ter informado, é o ultimo relacionado. Um script também de ring, que ao estar utilizando, possibilita que o jogador não receba um dano entre 10 hits, por exemplo. Está com o ring equipado, ai, existe a possibilidade de tomar 10 hits do oponente, 1 dele você absorve e converte o dano no oponente, tipo efeito de reflexão. (caso seja dificil, a opção de apenas absorver e não sofrer danos esta bom)
  3. vlw cara, ce é o bixao msm
  4. 1 script básico que heala mana em 300 e life em 500 a cada 5 segundos com X item equipado no slot de ring, e sai um text no char +500 e +300, igual ou parecido dos print. 1 script basico movements que ao passar por ele, heala a cada 3 segundos 100 de life, e 50 de mana por 10 min (600 segundos)
  5. Da o mesmo erro no distro quando desloga com o item equipado
  6. JcA postou uma resposta no tópico em Suporte Tibia OTServer
    @Daniel Ai man, vai fazer/esta fazendo? Não quero ser chato, fico no aguardo
  7. Perfeito, salvou a patria, toma meu like
  8. Deu esse erro, que crashou
  9. Esse não é especifico como o outro, e esse só aparece o level? ou todos os advanced?
  10. Não esta funcionando o contador de monstros, e o npc não esta reconhecendo as criaturas na hr de entregar, help! tfs 0.4 Problema resolvido, obrigado !
  11. local table = { itemNeed = 6104, -- Mesmo id do itemid que você colocou na tag xml. txt = {"´ . ,", ". ´ ,", "` . ,", ", ` ."}, -- Texto que vai sair. delay = 1000, -- Tempo que vai ficar saindo cor = {50, 50, 50, 50}, -- Cor do texto que vai sair. effect = 3 -- Efeito que vai sair(aura). } function doPlayerLoopEff(cid) if isPlayer(cid) and getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == table.itemNeed then doSendMagicEffect(getThingPos(cid), table.effect) doSendAnimatedText(getThingPos(cid), table.txt, table.cor) addEvent(function() doPlayerLoopEff(cid) end, table.delay) -- 1000 é o delay que vai sair o efeito e o texto. end end function onEquip(cid, item, slot) doPlayerLoopEff(cid) return true end @KotZletY Seguindo essa linha de raciocínio do usuário, ele quis dizer sofre o efeito de um script do usuário "MaxWelden", eu tentei modificar alguns pontos aqui para que ficasse igual, porém quando vou equipar o item, da crash e antes disso, da esse ero no console anexado. Pode ajudar? Eu mudei essas linhas no seu script. txt = {"´ . ,", ". ´ ,", "` . ,", ", ` ."}, -- Texto que vai sair. cor = {50, 50, 50, 50}, -- Cor do texto que vai sair. Segue o script do MAXWELDEN para melhor compreensão.
  12. Sim, tudo certinho, todos os demais funcionam, menos o do level
  13. wtf? o script é só isso
  14. Quando upa de Level, o texto em especifico não aparece. local config = { [0] = {msg = "Fist UP!", textcolor = 18}, [1] = {msg = "Club UP!", textcolor = 35}, [2] = {msg = "Sword UP!", textcolor = 66}, [3] = {msg = "Axe UP!", textcolor = 89}, [4] = {msg = "Dist UP!", textcolor = 112}, [5] = {msg = "Shield UP!", textcolor = 156}, [6] = {msg = "Fish UP!", textcolor = 205}, [7] = {msg = "Magic UP!", textcolor = 180}, [8] = {msg = "Level UP!", textcolor = 215} } function onAdvance(cid, skill, oldlevel, newlevel) if config[skill] then doSendAnimatedText(getThingPos(cid), config[skill].msg, config[skill].textcolor) end return true end
  15. O problema é que, quando o player clica na estatua, e quando vai loga de novo, o login demora absurdamente, tipo 1 min para logar, acredito que seja algum erro do script (forma que foi feito) apesar de não dar erros no console. obs: para tfs 0.4 Cliente 8.60 actions.lua function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == 8779) then -- sword doCreatureSetStorage(cid, 62669, SKILL_SWORD) elseif(item.itemid == 8836) then -- axe doCreatureSetStorage(cid, 62669, SKILL_AXE) elseif(item.itemid == 8777) then -- mlvl doCreatureSetStorage(cid, 62669, SKILL__MAGLEVEL) elseif(item.itemid == 8834) then -- club doCreatureSetStorage(cid, 62669, SKILL_CLUB) elseif(item.itemid == 3739) then -- distannce doCreatureSetStorage(cid, 62669, SKILL_DISTANCE) end if item.actionid == 1000 then doRemoveCreature(cid) end return true end actions.xml --Offline Training-- <action itemid="8777" event="script" value="offtrain.lua"/> <action itemid="3739" event="script" value="offtrain.lua"/> <action itemid="8836" event="script" value="offtrain.lua"/> <action itemid="8834" event="script" value="offtrain.lua"/> <action itemid="8779" event="script" value="offtrain.lua"/> creaturescript.lua -- 0.4 - offline training - login.lua function onLogin(cid) OfflineTraining_initialize(cid) if(OfflineTraining_isTraining(cid)) then OfflineTraining_turnOffTraining(cid) -- we add skill/mlvl, we select lower value: time that player was offline OR offline training time [bar in game - 9.6] OfflineTraining_addTrainedSkills(cid, math.min(OfflineTraining_getTime(cid), OfflineTraining_getOfflineTime(cid))) -- we remove offline training time [bar in game - 9.6], -- if player was offline longer then his 'offline training time' it will add him time [like on RL tibia] -- got '3 hours offline training time', stay logged off for 8 hours, you get skills for 3 hours and on login you got '5 hours offline training time' OfflineTraining_setTime(cid, math.abs(OfflineTraining_getTime(cid) - OfflineTraining_getOfflineTime(cid))) OfflineTraining_onEndTraining(cid) else -- offline training time also regenerate when you are offline, but NOT train OfflineTraining_setTime(cid, OfflineTraining_getTime(cid) + OfflineTraining_getOfflineTime(cid)) end return true end outro creaturescript.lua -- 0.4 - offline training - logout.lua function onLogout(cid) if(OfflineTraining_canStartTraining(cid)) then OfflineTraining_turnOnTraining(cid) OfflineTraining_onStartTraining(cid) end OfflineTraining_setLogoutTime(cid) return true end creaturescript.xml <event type="login" name="offtrain_PlayerLogin" event="script" value="train1.lua"/> <event type="logout" name="offtrain_PlayerLogout" event="script" value="train2.lua"/> global events.lua function onThink(interval) -- run it with interval 60 seconds for _, cid in pairs(getPlayersOnline()) do OfflineTraining_addTime(cid, 1) end return true end global events,xml <globalevent name="offtrain_add_minutes" interval="60000" event="script" value="offtrain0.lua"/> lib.lua -- config, in percent of normal training with 2 trainers and player vocation mana regeneration [by food] OfflineTraining_rates = { [SKILL_CLUB] = 25, [SKILL_SWORD] = 25, [SKILL_AXE] = 25, [SKILL_DISTANCE] = 25, [SKILL_SHIELD] = 25, [SKILL__MAGLEVEL] = 25 } -- function that you should edit to make it add other skill etc. function OfflineTraining_canStartTraining(cid) -- return bool return getCreatureStorage(cid, 62669) > 0 end function OfflineTraining_onStartTraining(cid) -- maybe someone will need -- to save your time, this: doPlayerPopupFYI(cid, "You started offline training.") -- NOT WORK :( end function OfflineTraining_onEndTraining(cid) doCreatureSetStorage(cid, 62669, 0) end function OfflineTraining_addTrainedSkills(cid, trainTime) -- time in minutes! local timeInSeconds = trainTime * 60 local vocInfo = getVocationInfo(getPlayerVocation(cid)) if(getCreatureStorage(cid, 62669) == SKILL_SWORD) then doPlayerAddSkillTry(cid, SKILL_SWORD, ((timeInSeconds * 1000) / vocInfo["attackSpeed"]) * OfflineTraining_rates[SKILL_SWORD] / 100, true) elseif(getCreatureStorage(cid, 62669) == SKILL_AXE) then doPlayerAddSkillTry(cid, SKILL_AXE, ((timeInSeconds * 1000) / vocInfo["attackSpeed"]) * OfflineTraining_rates[SKILL_AXE] / 100, true) elseif(getCreatureStorage(cid, 62669) == SKILL__MAGLEVEL) then doPlayerAddSpentMana(cid, ((timeInSeconds / vocInfo["manaGainTicks"]) * vocInfo["manaGain"]) * OfflineTraining_rates[SKILL__MAGLEVEL] / 100, true) elseif(getCreatureStorage(cid, 62669) == SKILL_CLUB) then doPlayerAddSkillTry(cid, SKILL_CLUB, ((timeInSeconds * 1000) / vocInfo["attackSpeed"]) * OfflineTraining_rates[SKILL_CLUB] / 100, true) elseif(getCreatureStorage(cid, 62669) == SKILL_DISTANCE) then doPlayerAddSkillTry(cid, SKILL_DISTANCE, ((timeInSeconds * 1000) / vocInfo["attackSpeed"]) * OfflineTraining_rates[SKILL_DISTANCE] / 100, true) end doPlayerAddSkillTry(cid, SKILL_SHIELD, timeInSeconds * OfflineTraining_rates[SKILL_SHIELD] / 100, true) end -- 4 functions to show right values on 'bar' in Tibia 9.6 function OfflineTraining_getTime(cid) return getCreatureStorage(cid, 62666) end function OfflineTraining_setTime(cid, newTime) -- set values only between 0 - 720 [12 hours] doCreatureSetStorage(cid, 62666, math.max(0, math.min(newTime, 720))) -- now code to force server to send 'PlayerStats' (including Offline Time) -- we must change any stat: hp,mana,stamina,cap,soul,exp,level doPlayerAddSoul(cid, 1) doPlayerAddSoul(cid, -1) end function OfflineTraining_addTime(cid, addTime) OfflineTraining_setTime(cid, OfflineTraining_getTime(cid) + addTime) end function OfflineTraining_removeTime(cid, removeTime) OfflineTraining_setTime(cid, OfflineTraining_getTime(cid) - removeTime) end -- functions for library to add skills/mlvl function OfflineTraining_initialize(cid) if(OfflineTraining_getTime(cid) == -1) then OfflineTraining_setTime(cid, 720) OfflineTraining_setLogoutTime(cid) -- block problem with first login 'add time' end end function OfflineTraining_isTraining(cid) return (getCreatureStorage(cid, 62667) > 0) end function OfflineTraining_turnOnTraining(cid) doCreatureSetStorage(cid, 62667, 1) end function OfflineTraining_turnOffTraining(cid) doCreatureSetStorage(cid, 62667, 0) end function OfflineTraining_getOfflineTime(cid) return math.floor((os.time() - getCreatureStorage(cid, 62668)) / 60) end function OfflineTraining_setLogoutTime(cid) return doCreatureSetStorage(cid, 62668, os.time()) end
  16. Eu entendi, mas mesmo passando o tempo, ele ainda não permite o uso de outra potion
  17. substitui o item por outro com cargas, id 8584 e 250 de cargas
  18. Um script de movements que ao passar no tile, substituía por um item x e acrescente cargas na quantidade X. Por exemplo, cargas de AOL Não precisa emitir mensagem, nem nada, apenas substituía, e uma unica vez.
  19. Então, o problema é o seguinte, quando usa uma vez a potion, não permite que eu use de novo, fica constando que eu ja estou sobre o efeito de uma. mod.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="AdvancedExpPotionSystem" enabled="yes" author="MatheusMkalo" forum="XTibia.com"> <!-- Configs and Functions --> <config name="PotionExpConfigs"><![CDATA[ ------ CONFIGURE SEU SCRIPT ------ TRUE ou FALSE configs = { time = 30, ---- TIME IN MINUTES needpa = TRUE, needlvl = {TRUE, level = 1500}, costmana = {TRUE, mana = 500}, addrate = 100, -- Exp que vai adicionar em % removeonuse = TRUE } function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end CreatureEventChecker = function(event, ...) -- Colex if isCreature(arg[1]) then event(unpack(arg)) end end creatureEvent = function(event, delay, ...) -- Colex addEvent(CreatureEventChecker, delay, event, unpack(arg)) end function getPlayerExtraExpRate(cid) -- By MatheusMkalo return (getPlayerRates(cid)[8]-1)*100 end ]]></config> <!-- exppotion.lua --> <action itemid="12328" event="script"><![CDATA[ domodlib('PotionExpConfigs') if getPlayerStorageValue(cid, 49016) >= 1 then return doPlayerSendCancel(cid, "Voce ja esta sobre efeito de uma double exp potion.") end if configs.needpa and not isPremium(cid) then return doPlayerSendCancel(cid, "Voce precisar ser premium para usar.") end if configs.needlvl[1] and getPlayerLevel(cid) < configs.needlvl.level then return doPlayerSendCancel(cid, "Voce precisa ser " .. configs.needlvl.level .. " para usar a double exp potion.") end if configs.costmana[1] then if getCreatureMana(cid) < configs.costmana.mana then return doPlayerSendCancel(cid, "Voce precisar ter " .. configs.costmana.mana .. " de mana para usar a double exp potion.") else doCreatureAddMana(cid, -configs.costmana.mana) end end if configs.removeonuse then doRemoveItem(item.uid, 1) end for i = configs.time*60, 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == configs.time*60 then creatureEvent(doPlayerSendCancel, configs.time*60*1000, cid, "Efeito Final da double exp potion.") end creatureEvent(doPlayerSendCancel, (configs.time*60-i)*1000, cid, "O efeito da double exp potion vai acabar em "..a..".") end doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, configs.time *60*1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) doPlayerSendTextMessage(cid, 22, "Agora voce esta com a experiencia dobrada.") setPlayerStorageValue(cid, 49016, os.time()) creatureEvent(setPlayerStorageValue, configs.time *60*1000, cid, 49016, 0) return TRUE ]]></action> <creaturescript type="login" name="ExpPotion" event="script"><![CDATA[ domodlib('PotionExpConfigs') local time = configs.time if os.time()-getPlayerStorageValue(cid, 49016) < time *60 then doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, (time*60-(os.time()-getPlayerStorageValue(cid, 49016))) * 1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) creatureEvent(setPlayerStorageValue, (time*60-(os.time()-getPlayerStorageValue(cid, 49016))) * 1000 , cid, 49016, 0) for i = (time*60-(os.time()-getPlayerStorageValue(cid, 49016))), 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == (time*60-(os.time()-getPlayerStorageValue(cid, 49016))) then creatureEvent(doPlayerSendCancel, (time*60-(os.time()-getPlayerStorageValue(cid, 49016)))*1000, cid, "O efeito da double exp potion termina em.") end creatureEvent(doPlayerSendCancel, ((time*60-(os.time()-getPlayerStorageValue(cid, 49016)))-i)*1000, cid, "o efeito da double exp potion termina em "..a..".") end end return TRUE ]]></creaturescript> </mod>
  20. JcA postou uma resposta no tópico em Suporte Tibia OTServer
    Sem problema nenhum meu querido!
  21. JcA postou uma resposta no tópico em Suporte Tibia OTServer
    Sim, versão 8.60, rme 2.2 5 hunts 1 para Mutated Human 1 para Mutated Rat 1 para Mutated Tiger 1 para Black Knight 1 para Warlock Segue anexo para noção do tamanho, e uma hunt que seja apenas no solo, sem up ou down
  22. JcA postou uma resposta no tópico em Suporte Tibia OTServer
    Utilize essa que uso no meu ot. local bless = {1, 2, 3, 4, 5} local cost = 120000 function onSay(cid, words, param) for i = 1, table.maxn(bless) do if(getPlayerBlessing(cid, bless[i])) then doPlayerSendCancel(cid, "Você ja tem todas as bless.") return TRUE end end if(doPlayerRemoveMoney(cid, cost) == TRUE) then for i = 1, table.maxn(bless) do doPlayerAddBlessing(cid, bless[i]) end doCreatureSay(cid, "Agora você esta protegido!" ,19) doSendMagicEffect(getPlayerPosition(cid), 49) else doPlayerSendCancel(cid, "Você precisa de 120k para fazer a bless.") end return TRUE end
  23. @Vodkart uma lenda viva msm, valeu, funcional!

Informação Importante

Confirmação de Termo