Ir para conteúdo

Fjinst

Visconde
  • Total de itens

    251
  • Registro em

  • Última visita

  • Dias Ganhos

    4

Tudo que Fjinst postou

  1. Olá a todos, possuo esse script aqui de reward system para TFS 0.3~0.4 no qual as vezes não funciona, gostaria de saber se podem me ajudar implementando uma maneira de funcionar sempre, no caso seria ########### Adicionar: Se o time (na party) derrotasse o boss, todos do time (que estejam na party) receberiam loot, porém, para o jogador do time(que esteja na party) receber loot precisa ser no minimo level 100, a distancia entre os jogadores da party tem que ser no maximo 30 sqms de distancia ####################### Segue abaixo o script local config = { ["[MvP] Goku"] = { loot = {{7958,25,math.random(1,3)},{2353,25,1},{2672,100,math.random(1,100)},{2173,15,1},{9651,25,math.random(1,25)},{2152,100,1},{9813,10,1},{9812,10,1},{9811,10,1},{9028,10,1},{2160,25,1},{2152,100,1},{2152,100,1},{2152,50,math.random(1,3)},{2160,20,math.random(1,6)}}, message = "Congratulations for defeating [MvP] Goku, Your reward is now in depot", effect = CONST_ME_SOUND_PURPLE, use_stats = false, chance_attr = {{'lifesteal',5,{3,7},{"melee","wand","dist"}},{'dodge',5,{1,5},{"armor"}}}, animatedText = {COLOR_BLUE,"YA!"}, SendToDepot = true, BagId = 1999 }, ["Grunth"] = { loot = {{2493,4,1},{2494,4,1},{2495,4,1},{2214,4,1},{5462,4,1},{8850,4,1},{8925,4,1},{7382,4,1},{2436,4,1},{8921,4,1},{6391,4,1},{2157,50,75},{2157,50,50},{2157,25,100}}, message = "Congratulation For Defeating Hypnos,Your Reward is now in bag", effect = CONST_ME_SOUND_YELLOW, use_stats = false, chance_attr = {{'lifesteal',4,{3,7},{"melee","wand","dist"}},{'dodge',4,{1,5},{"armor"}}}, animatedText = {COLOR_MAYABLUE,"YA!"}, SendToDepot = false, BagId = 2000 }, ["Training Monk"] = { loot = {{2533,4,1},{7899,4,1},{7894,4,1},{2209,4,1},{7891,4,1},{8851,4,1},{8924,4,1},{7385,4,1},{2421,4,1},{8922,4,1},{2496,4,1},{2157,50,100},{2157,50,100},{2157,25,100}}, message = "Congratulation For Defeating Hades,Your Reward is now in depot", effect = CONST_ME_FIREWORK_RED, use_stats = false, chance_attr = {{'lifesteal',3,{3,7},{"melee","wand","dist"}},{'dodge',3,{1,5},{"all"}}}, animatedText = {COLOR_RED,"YA!"}, SendToDepot = true, BagId = 1988 }, ["Demon"] = { loot = {{2542,4,1},{7902,4,1},{7897,4,1},{7896,4,1},{2124,4,1},{7892,4,1},{8852,4,1},{7455,4,1},{7420,4,1},{2445,4,1},{7424,4,1},{2157,50,100},{2157,50,100},{2157,50,100},{2157,25,100}}, message = "Congratulation For Defeating Devil,Your Reward is now in depot", effect = CONST_ME_HEARTS, use_stats = false, chance_attr = {{'lifesteal',1,{3,7},{"melee","wand","dist"}},{'dodge',1,{1,5},{"armor"}}}, animatedText = {COLOR_PINK,"YA!"}, SendToDepot = true, BagId = 1988 } --[[ ["NameOfMonster"] = { loot = {{itemid,chance,count},{itemid,chance,count}}, message = "Message produced when you kill the boss", effect = "Effect when you kill boss", use_stats = false -- if it is true then special attribute will be added chance_attr = {{'attribute name',chance,{min,max},{applied weapons}},{'attribute name',chance,{min,max},{applied weapons}}}, animatedText = {Color of text,"Text produced"}, SendToDepot = true will send item to the depot, false will send item to player bag auto, BagId = dont need explanation } ]]}--forgive this part V couldn't think of any better solutionfunction ItemInfo(array,item) for i = 1,#array do if(array[i] == "melee")then if getItemInfo(item).weaponType == WEAPON_SWORD or getItemInfo(item).weaponType == WEAPON_CLUB or getItemInfo(item).weaponType == WEAPON_AXE then return true end elseif(array[i] == "armor")then if getItemInfo(item).armor ~= 0 and getItemInfo(item).wieldPosition ~= CONST_SLOT_NECKLACE then return true end elseif(array[i] == "wand")then if getItemInfo(item).weaponType == WEAPON_WAND then return true end elseif(array[i] == "dist")then if getItemInfo(item).weaponType == WEAPON_DIST and getItemInfo(item).ammoType ~= 0 then return true end elseif(array[i] == "shield")then if getItemInfo(item).weaponType == WEAPON_SHIELD and getItemInfo(item).defense ~= 0 then return true end elseif(array[i] == "all")then return true end end return falseend--- info scanner End function onKill(cid, target, damage, flags,war) if isPlayer(cid) and isMonster(target) then local monster = config[getCreatureName(target)] if monster then local bag = doCreateItemEx(monster.BagId, 1) for i = 1,#monster.loot do if monster.loot[i][2] >= math.random(1,100) then -- random chance to get the item local item = doAddContainerItem(bag, monster.loot[i][1],monster.loot[i][3]) if (monster.use_stats) then for z = 1,#monster.chance_attr do if(monster.chance_attr[z][2] >= math.random(1,100) and ItemInfo(monster.chance_attr[z][4], monster.loot[i][1]))then doItemSetAttribute(item, monster.chance_attr[z][1], math.random(monster.chance_attr[z][3][1],monster.chance_attr[z][3][2])) -- add attribute end end end end end if(getContainerItem(bag, 0).uid > 0)then -- check if the container has items or not doSendMagicEffect(getThingPos(cid), monster.effect) doSendAnimatedText(getThingPos(cid), monster.animatedText[2],monster.animatedText[1]) if monster.SendToDepot then doPlayerSendMailByName(getCreatureName(cid), bag, getPlayerTown(cid), "Admin") -- send to depot else doPlayerAddItemEx(cid, bag,true) -- send to bag end doPlayerSendTextMessage(cid, 25, monster.message) else doPlayerSendTextMessage(cid, 25, "Better luck next time, you do not got reward.") end end end return trueend
  2. Alguém sabe como adiciona uma wikipedia no Gesior? Estilo alguns ots nos quais eu vi que tinha uma wikipedia igual ao tibiawiki
  3. Você sabe se possui algum tutorial de como compilar? parei na versão do dev ;S, to totalmente perdido nessas versões do TFS 1.0+, esto querendo aprender se puder me encaminhar algum, agradeço
  4. Opcode é utilizado para Otclient, é um meio de estabelecer conexão entre o servidor e o cliente, estou aprendendo a utilizar o opcode também.
  5. A idéia da história que bolei foram desenvolvidas essas classes: Classe Iniciais Thief - Furtividade/Roubo Barbarian - Dano/Armas White Priest - Cura/Buffs Dark Mage - Magia Negra Com duas subclasses para cada classe que são Thief: Assassin - Focado em Dano Stalker - Focado em Roubo e Furtividade Barbarian: Berserker - Focado em Dano/Pouca Defesa Crusader - Focado em Defesa/Proteção/Tank White Priest: Time Priest - Focado em Tempo/Manipulação de Portais e Slows Frost Priest - Focado em Regeneração/Criação de Pontes de gelos/paredes - É uma classe totalmente recomendada para resolver alguns puzzles Dark Mage: Necromancer - Focado em Mortos/Invocações/Rituais Thundermancer - Focado em Paralizias/Raios/Destruição em Massa Todas as classes que elaborei estão relacionadas com a história do servidor, o servidor está sendo baseado em três games - Ragnarok/Final Fantasy Tatics/Diablo 2 Não quer dizer que será um jogo igual e sim com carateristicas ou até mesmo referências desses games
  6. Fireworks são habilidades de criar fogueiras, fogos de artifícios, entre outras habilidades de fogo
  7. Olá a todos, alguém pode me explicar um pouco mais sobre Opcode e suas relações com o Otclient? Como utilizar, como criar um modelo de opcode, ou até mesmo um exemplo. agradeço pela atenção de todos(as).
  8. Pronto local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {} function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config1 = {cooldown = 82800, } if msgcontains(msg, 'teleport') or msgcontains(msg, 'tp') or msgcontains(msg, 'quest') or msgcontains(msg, 'help') then npcHandler:say('Hahaha, eu posso leva-lo a um local mistico, voce quer ir {transportar}?.', cid)talkState[talkUser] = 2elseif msgcontains(msg, 'transportar') or msgcontains(msg, 'yes') and (talkState[talkUser] == 2) thentalkState[talkUser] = 0if os.time() - getPlayerStorageValue(cid, 28126) >= config1.cooldown then -------- AQUI SÃO OS JOGADORES DO LEVEL 1 A 49if getPlayerLevel(cid) >= 1 and getPlayerLevel(cid) <= 49 thenlocal sorte = math.random(1,3)--- POSIÇÃO DOS LOCAIS NO QUAL O JOGADOR SERÁ TELETRANSPORTADOlocal teleport1 = {x=1495, y=1219, z=7}local teleport2 = {x=1495, y=1219, z=7}local teleport3 = {x=1495, y=1219, z=7}if sorte == 1 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport1)talkState[talkUser] = 0elseif sorte == 2 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport2)talkState[talkUser] = 0elseif sorte == 3 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport3)talkState[talkUser] = 0endend----- #FIM DOS TPS DO JOGADOR LEVEL 1 A49-------- AQUI SÃO OS JOGADORES DO LEVEL 1 A 49if getPlayerLevel(cid) >= 50 and getPlayerLevel(cid) <= 100 thenlocal sorte = math.random(1,3)--- POSIÇÃO DOS LOCAIS NO QUAL O JOGADOR SERÁ TELETRANSPORTADOlocal teleport4 = {x=1495, y=1219, z=7}local teleport5 = {x=1495, y=1219, z=7}local teleport6 = {x=1495, y=1219, z=7}if sorte == 1 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport4)talkState[talkUser] = 0elseif sorte == 2 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport5)talkState[talkUser] = 0elseif sorte == 3 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport6)talkState[talkUser] = 0endendsetPlayerStorageValue(cid, 28126, os.time())----- #FIM DOS TPS DO JOGADOR LEVEL 1 A49if getPlayerLevel(cid) >= 101 thennpcHandler:say('Somente jogadores entre o nivel 8 a 100 podem utilizar esse servico.', cid)talkState[talkUser] = 0endelsenpcHandler:say('Voce ja foi teletransportado, espere '..(config1.cooldown - (os.time() - getPlayerStorageValue(cid, 28126)))..' segundos para poder ser transportado novamente.')talkState[talkUser] = 0endendendnpcHandler:setCallback(CALLBACK_ONTHINK, thinkCallback)npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())
  9. Alguém pode me ajudar nesse script? é uma magia de fear, porém quando não tem sqms para andar, ou seja SQMS VOIDS no caso de um telhado, os arredores do telhado ta dando esse bug, por nao ter caminho para andar, segue o script local spell = {}spell.config = { [1] = { damageType = 1, areaEffect = 2, area = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},{0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0},{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},} }} local function fear(cid) if isPlayer(cid) or isMonster(cid) thenlocal cpos = getCreaturePosition(cid)local dir = {}if queryTileAddThing(cid, {x=cpos.x,y=cpos.y-1,z=cpos.z}) == 1 thentable.insert(dir, NORTH)endif queryTileAddThing(cid, {x=cpos.x-1,y=cpos.y,z=cpos.z}) == 1 thentable.insert(dir, WEST)endif queryTileAddThing(cid, {x=cpos.x,y=cpos.y+1,z=cpos.z}) == 1 thentable.insert(dir, SOUTH)endif queryTileAddThing(cid, {x=cpos.x+1,y=cpos.y,z=cpos.z}) == 1 thentable.insert(dir, EAST)endif #dir > 0 thendoMoveCreature(cid, dir[math.random(1,#dir)])endendend spell.combats = {}for _, config in ipairs(spell.config) do local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)setCombatParam(combat, COMBAT_PARAM_HITCOLOR, 180)function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 2 + levelTotal), -(skillTotal * 2 + levelTotal)endsetCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onTargetTile(cid, pos)Onrand(cid, pos)endsetCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onTargetCreature(cid, target)if getClosestFreeTile(cid, getPlayerPosition(cid)) thenlocal position = getThingPos(cid)local distance = 6for i = 0, distance doaddEvent(fear,500*i,target)doSendMagicEffect(getThingPos(target), 31)endlocal parameters = {cid = cid, var = var}end end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") setCombatArea(combat, createCombatArea(config.area)) table.insert(spell.combats, combat)endlocal config = { gatesTime = 20, -- tempo em segundos exhaustStorage = 41000, exhaustTime = 0.9,} local volta = createCombatArea{ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local combat32 = createCombatObject() function onCastSpell(cid, var) for n = 1, #spell.combats do addEvent(doCombat, (n * 150) - 150, cid, spell.combats[n], var) end return doCombat(cid, combat32, var)end error [16:11:49.995] [Error - Spell Interface][16:11:49.998] In a timer event called from:[16:11:49.999] (Unknown script file)[16:11:50.000] Description:[16:11:50.001] (luaDoTileQueryAdd) Tile not found
  10. Verdade, esqueci de adicionar, funciona em 8.60 também local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {} function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config1 = {cooldown = 82800, } if msgcontains(msg, 'teleport') or msgcontains(msg, 'tp') or msgcontains(msg, 'quest') or msgcontains(msg, 'help') then npcHandler:say('Hahaha, eu posso leva-lo a um local mistico, voce quer ir {transportar}?.', cid)talkState[talkUser] = 2elseif msgcontains(msg, 'transportar') or msgcontains(msg, 'yes') and (talkState[talkUser] == 2) thentalkState[talkUser] = 0if os.time() - getPlayerStorageValue(cid, 28126) >= config1.cooldown then -------- AQUI SÃO OS JOGADORES DO LEVEL 1 A 49if getPlayerLevel(cid) >= 1 and getPlayerLevel(cid) <= 49 thenlocal sorte = math.random(1,3)--- POSIÇÃO DOS LOCAIS NO QUAL O JOGADOR SERÁ TELETRANSPORTADOlocal teleport1 = {x=1074, y=654, z=7}local teleport2 = {x=1074, y=654, z=7}local teleport3 = {x=1074, y=654, z=7}if sorte == 1 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport1)talkState[talkUser] = 0elseif sorte == 2 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport2)talkState[talkUser] = 0elseif sorte == 3 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport3)talkState[talkUser] = 0endendend----- #FIM DOS TPS DO JOGADOR LEVEL 1 A49-------- AQUI SÃO OS JOGADORES DO LEVEL 1 A 49if getPlayerLevel(cid) >= 50 and getPlayerLevel(cid) <= 100 thenlocal sorte = math.random(1,3)--- POSIÇÃO DOS LOCAIS NO QUAL O JOGADOR SERÁ TELETRANSPORTADOlocal teleport4 = {x=1074, y=654, z=7}local teleport5 = {x=1074, y=654, z=7}local teleport6 = {x=1074, y=654, z=7}if sorte == 1 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport4)talkState[talkUser] = 0elseif sorte == 2 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport5)talkState[talkUser] = 0elseif sorte == 3 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport6)talkState[talkUser] = 0endendsetPlayerStorageValue(cid, 28126, os.time())----- #FIM DOS TPS DO JOGADOR LEVEL 1 A49if getPlayerLevel(cid) >= 101 thennpcHandler:say('Somente jogadores entre o nivel 8 a 100 podem utilizar esse servico.', cid)talkState[talkUser] = 0endelsenpcHandler:say('Voce ja foi teletransportado, espere '..(config1.cooldown - (os.time() - getPlayerStorageValue(cid, 28126)))..' segundos para poder ser transportado novamente.')endendnpcHandler:setCallback(CALLBACK_ONTHINK, thinkCallback)npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())
  11. Qual a versão do script? Fiz um aqui baseado no 8.54 - não testei local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {} function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config1 = {cooldown = 82800, } if msgcontains(msg, 'teleport') or msgcontains(msg, 'tp') or msgcontains(msg, 'quest') or msgcontains(msg, 'help') then npcHandler:say('Hahaha, eu posso leva-lo a um local mistico, voce quer ir {transportar}?.', cid)talkState[talkUser] = 2elseif msgcontains(msg, 'transportar') or msgcontains(msg, 'yes') and (talkState[talkUser] == 2) thentalkState[talkUser] = 0if os.time() - getPlayerStorageValue(cid, 28126) >= config1.cooldown then -------- AQUI SÃO OS JOGADORES DO LEVEL 1 A 49if getPlayerLevel(cid) >= 1 and getPlayerLevel(cid) <= 49 thenlocal sorte = math.random(1,3)--- POSIÇÃO DOS LOCAIS NO QUAL O JOGADOR SERÁ TELETRANSPORTADOlocal teleport1 = {x=1074, y=654, z=7}local teleport2 = {x=1074, y=654, z=7}local teleport3 = {x=1074, y=654, z=7}if sorte == 1 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport1)talkState[talkUser] = 0elseif sorte == 2 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport2)talkState[talkUser] = 0elseif sorte == 3 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport3)talkState[talkUser] = 0endendend----- #FIM DOS TPS DO JOGADOR LEVEL 1 A49-------- AQUI SÃO OS JOGADORES DO LEVEL 1 A 49if getPlayerLevel(cid) >= 50 and getPlayerLevel(cid) <= 100 thenlocal sorte = math.random(1,3)--- POSIÇÃO DOS LOCAIS NO QUAL O JOGADOR SERÁ TELETRANSPORTADOlocal teleport4 = {x=1074, y=654, z=7}local teleport5 = {x=1074, y=654, z=7}local teleport6 = {x=1074, y=654, z=7}if sorte == 1 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport4)talkState[talkUser] = 0elseif sorte == 2 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport5)talkState[talkUser] = 0elseif sorte == 3 thennpcHandler:say('Hahaha, boa viagem meu caro.', cid)doTeleportThing(cid, teleport6)talkState[talkUser] = 0endend----- #FIM DOS TPS DO JOGADOR LEVEL 1 A49if getPlayerLevel(cid) >= 101 thennpcHandler:say('Somente jogadores entre o nivel 8 a 100 podem utilizar esse servico.', cid)talkState[talkUser] = 0endelsenpcHandler:say('Voce ja foi teletransportado, espere '..(config1.cooldown - (os.time() - getPlayerStorageValue(cid, 28126)))..' segundos para poder ser transportado novamente.')endendnpcHandler:setCallback(CALLBACK_ONTHINK, thinkCallback)npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())
  12. Dependendo da base 7.81 é só trocar nas sourcers, porém se for algo muito antigo, terá que refazer do 0, baixar um servidor 8.54 e refazer
  13. Já tentou abrir com transparency ou extended? talvez essas sprites não abram da forma normal, não importa o nome dos arquivos, contanto que eles estejam na mesma pasta sem se misturar com outros dat ou spr
  14. Olá a todos, possuo esse script do mod Advanced Sound feito pelo vyctor17, alguém pode me ajudar em uma coisa? Bom, o mod funciona perfeito, exceto nas partes das músicas ambientes Suponhamos que eu tenho uma música MUSICAS = {--area sounds {fromPos = {x = 1353, y = 1136, z = 7}, toPos = {x = 1603, y = 1367, z = 7}, sound = "ambient.mp3"} } Até ai tudo bem, funciona okay por ser só uma música tipo assim, porém quando eu adiciono uma nova música tipo assim: MUSICAS = {--area sounds {fromPos = {x = 1353, y = 1136, z = 7}, toPos = {x = 1603, y = 1367, z = 7}, sound = "ambient.mp3"}, {fromPos = {x = 1353, y = 1136, z = 6}, toPos = {x = 1603, y = 1367, z = 6}, sound = "ambient.mp3"}} Para de funcionar, alguém sabe qual o motivo disso? segue abaixo o script do mod PS: Já testei mudar virgulas, outras coisas mas sem resultados require('advsound')require('ex')SOUNDS_CONFIG = { folder = 'mods/Advanced Sound/Sounds/', loop=true, start_paused=false, checkInterval = 500,}local UPDATESOUND_OPCODE = 85local PAUSESOUND_OPCODE = 81MUSICAS = {--area sounds {fromPos = {x = 1353, y = 1136, z = 7}, toPos = {x = 1603, y = 1367, z = 7}, sound = "ambient.mp3"} }local toggleSoundEventlocal elocal audio = nillocal window = nillocal volume = 100local strfunction init() connect(g_game, { onGameEnd = terminate }) window = modules.client_options.audioPanel str = string.explode(window:getChildById('musicSoundVolumeLabel'):getText(), ":") volume = tonumber(str[2]) ProtocolGame.registerExtendedOpcode(UPDATESOUND_OPCODE, getSound) ProtocolGame.registerExtendedOpcode(PAUSESOUND_OPCODE, pauseSound) e = cycleEvent(iniciar, SOUNDS_CONFIG.checkInterval)endfunction iniciar() if (g_game.isOnline()) then removeEvent(e) toggleSoundEvent = addEvent(startAsound, SOUNDS_CONFIG.checkInterval) endendlocal m function startAsound() local player = g_game.getLocalPlayer() if not player then return end local pos = player:getPosition() for i = 1, #MUSICAS do if(isInPos(pos, MUSICAS[i].fromPos, MUSICAS[i].toPos)) then if audio == nil then m = advsound.playMusic(SOUNDS_CONFIG.folder..MUSICAS[i].sound, true, SOUNDS_CONFIG.start_paused) str = string.explode(window:getChildById('musicSoundVolumeLabel'):getText(), ":") volume = tonumber(str[2]) advsound.setVolume(m, volume/100) audio = true end else audio = nil advsound.setPaused(m, true) removeEvent(toggleSoundEvent) end end toggleSoundEvent = scheduleEvent(startAsound, SOUNDS_CONFIG.checkInterval)endlocal musicfunction getSound(protocol, opcode, buffer) local cof = string.explode(buffer, "|") local conff = { ["true"] = true, ["false"] = false, } music = advsound.playMusic(SOUNDS_CONFIG.folder..cof[1], conff[cof[2]], SOUNDS_CONFIG.start_paused) str = string.explode(window:getChildById('musicSoundVolumeLabel'):getText(), ":") volume = tonumber(str[2]) advsound.setVolume(music, volume/100)endfunction pauseSound(protocol, opcode, buffer) if opcode == 81 then advsound.pauseAll() endendfunction terminate() disconnect(g_game, { onGameEnd = terminate }) e = cycleEvent(iniciar, SOUNDS_CONFIG.checkInterval) audio = nil advsound.pauseAll()endfunction isInPos(pos, fromPos, toPos) return pos.x>=fromPos.x and pos.y>=fromPos.y and pos.z>=fromPos.z and pos.x<=toPos.x and pos.y<=toPos.y and pos.z<=toPos.zend
  15. Olá a todos, estou com esse erro nessa função do script, quando eu utilizo a magia no player, se o player estiver em 1 andar com 1 sqm, ele buga ao tentar andar no void, ele não consegue andar é clrao, porém fica apontando esses erros no console, alguém sabe me ajudar?, segue abaixo a função Trata-se de uma função de uma spell no qual o jogador ao ser atingido começa a andar aleatoriamente, igual um fear local function fear(cid) if isPlayer(cid) or isMonster(cid) thenlocal cpos = getCreaturePosition(cid)local dir = {}if queryTileAddThing(cid, {x=cpos.x,y=cpos.y-1,z=cpos.z}) == 1 thentable.insert(dir, NORTH)endif queryTileAddThing(cid, {x=cpos.x-1,y=cpos.y,z=cpos.z}) == 1 thentable.insert(dir, WEST)endif queryTileAddThing(cid, {x=cpos.x,y=cpos.y+1,z=cpos.z}) == 1 thentable.insert(dir, SOUTH)endif queryTileAddThing(cid, {x=cpos.x+1,y=cpos.y,z=cpos.z}) == 1 thentable.insert(dir, EAST)endif #dir > 0 thendoMoveCreature(cid, dir[math.random(1,#dir)])endendend O erro que acontece quando não tem sqms para andar é esse [12:30:48.011] [Error - Spell Interface][12:30:48.013] In a timer event called from:[12:30:48.014] (Unknown script file)[12:30:48.014] Description:[12:30:48.015] (luaDoTileQueryAdd) Tile not found
  16. Ele não está achando o arquivo, provavelmente o arquivo que voce editou esta com o nome diferente ou em uma pasta diferente da que o diretorio está apontando
  17. Olá a todos, gostaria de pedir uma magia que transforma lixo em item Exemplo: Utilizei um exori, a area do exori é 3x3, se tiver algum lixo(item) dentro dessa area, esse item irá se transformar em GPS
  18. É um script que ao pisar em um certo sqm dê dano? se for isso é tranquilo Vá em movements/scripts, crie um arquivo chamado dano.lua cole isso dentro function onStepIn(cid, item, position, fromPosition)if(isPlayer(cid)) or (isCreature(cid)) thendoCreatureAddHealth(cid,-1000000)doSendMagicEffect(position,0)endreturn trueendfunction onStepOut(cid, item, position, fromPosition) if(isCreature(cid)) then doSendMagicEffect(position,0) doCreatureAddHealth(cid,-1000000) elsereturn trueendend Agora em movements.xml cole isso <movevent type="StepOut" itemid="IDDOCHAO" event="script" value="dano.lua" /> <movevent type="StepIn" itemid="IDDOCHAO" event="script" value="dano.lua" /> Caso não queira utilizar um chão especifico, pode colocar por actionid ou uniqueid Ficando assim <movevent type="StepOut" actionid="IDDAACTION" event="script" value="dano.lua" /> <movevent type="StepIn" actionid="IDDAACTION" event="script" value="dano.lua" />
  19. ele grava tudo, tela, tibia client, outros jogos, audio, som do pc
  20. Vamos ver se você consegue me ajudar, gostaria de pedir uma magia que empurra o jogador 1 sqm para tras, no caso o jogador que estiver utilizando a magia será jogado para trás
  21. function onUse(cid, item, fromPosition, itemEx, toPosition)local resets = 1 --- aqui define a quantidade de resetsif getPlayerStorageValue(cid,2300) >= resets thenpos = getPlayerPosition(cid) if pos.x == topos.x then if pos.y < topos.y then pos.y = topos.y + 1 else pos.y = topos.y - 1 end elseif pos.y == topos.y then if pos.x < topos.x then pos.x = topos.x + 1 else pos.x = topos.x - 1 end else doPlayerSendTextMessage(cid,22,'Fique na frente da porta.') return 1 end doTeleportThing(cid,pos) doSendMagicEffect(topos,3)else doPlayerSendTextMessage(cid,22,'Voce nao tem resets suficiente para passar por essa porta.')endreturn trueend Basta ir em actions.xml e adicionar a tag definindo o id da porta ou actionid/uniqueid
  22. Baixa HyperCam 3 Cracked é só procurar no youtube, ele grava até 60 fps, a qualidade é configurada a gosto, recomendo gravar em MP4
  23. Sim, como não tenho uma equipe, estou coletando som de efeitos de diversos jogos, como é algo 4fun mesmo, não terá problema.
  • Quem Está Navegando   0 membros estão online

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