Líderes
-
-
-
-
Wingardium
MembroPontos78Total de itens
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/21/16 em todas áreas
-
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
cell18 e um outro reagiu a Qwizer por uma resposta no tópico
2 pontosas quest que nos outros algumas são bugadas nesse não são, e uns detalhes baixe olhe e veja você mesmo. ja esta no topico, printer nao tem wote, warzone e bugada falta subsolo de gray nao tem, Chayenne Realm Quest e nao tem Pythius The Rotten Quest só algumas delas que citei2 pontos -
[8.6] TOP 5 LEVEL no BroadCast
[8.6] TOP 5 LEVEL no BroadCast
bagulhoescroto reagiu a Vodkart por uma resposta no tópico
1 pontoMe pediram para postar uma especie de propaganda, onde aparecia os top level do servidor, no caso está configurado para aparecer os 5 leveis mais alto, como mostra a imagem: como esse script está no meu servidor faz anos, resolvi jogar para a molecada: Data/globalevents/script topleveis.lua function onThink(interval, lastExecution) local max, query = 5, db.getResult("SELECT `name`, `level` FROM `players` WHERE `id` > 6 AND `group_id` < 2 ORDER BY `level` DESC, `name` ASC;") local str = "TOP "..max.." Rank Level:\n\n" if (query:getID() ~= -1) then k = 1 while true do str = str .. "\n " .. k .. " - "..query:getDataString("name").."["..query:getDataInt("level").."]" k = k + 1 if not(query:next()) or k > max then break end end query:free() end doBroadcastMessage(str, 22) return true end TAG: <globalevent name="TopLevels" interval="3600" event="script" value="topleveis.lua"/>1 ponto -
[10.91] Remere's Map Editor
[10.91] Remere's Map Editor
Hrod reagiu a Bruno Carvalho por uma resposta no tópico
1 pontoBom pessoal, há muito tempo o Remere's Map Editor ficou open source. Eu estou testando e gostaria de compartilhar ele com vocês. Changelog Versão 10.91 adicionada (NOVO) (Não é uma versão oficial e como sempre digo: Não é recomendado que se utilize os items novos, apenas crie o mapa sem utilizá-los até que tenha um OTB oficial) Melhorias no sistema de zoom Suporte para versões 10.10+ Live casts Ultima versão do github Informações Precisa do Microsoft Visual C++ 2013 - 32/64Bits: Redistributable Package Não tem suporte para Windows Xp Download Versão até 10.91 rev 250 https://mega.nz/#!z9910YbL!9cHUvoYlrFiwshsVCe-JEKKzqrwp-w7ZsCqhFiAtBWE Créditos Hjnilsson (RME) MartyX - Ajudou a compilar Comedinha (Bruno Carvalho) Pessoal do TPForums Outros Contato com o criador: Pelo Twitter: @leremere1 ponto -
[8.6] Heromassa Server 2.0
1 pontoHeromassa Server 2.0 Nha nha nha. Sejam bem vindos ao Heromassa. Server com mapa baseado no Heroserv, porém com MUITAS COISAS NOVAS, algumas, citarei aqui, outras, descubram por si mesmos . Bom, o server como eu ja disse, é baseado no famoso Heroserv, alguns anos atrás chegou a ter 400 players online, porém perdeu muito a sua fama com o passar do tempo. Em 2012, um servidor chamado Heromassa surgiu, com exatamente esse mapa, a partir daí, passei a procurar o mesmo, por amar o mapa. Vocês podem não acreditar, mas eu dei um duro danado pra conseguir esse mapa fodasticamente perfeito na minha opinião, e um certo dia, um amigo meu QUE EU PASSEI A AMAR MUITO, ME PASSOU ELE . Isso foi ano passado, desde então joguei incansavelmente esse mapa. Mês passado, eu tive a vontade de consertar TODOS os erros que o server continha, estava até alguns dias atrás arrumando os mesmos, e com MUITA ajuda de membros desse fórum como o @xWhiteWolf, @vankk, @Absolute, @Wakon, @Fir3element e outros(mesmo eles não sabendo) eu finalmente terminei as correções. Bom, vamos logo ao que interessa né HAHAAHAHHAHHAHA. Informações do server: - Mapa Hero - Conta GOD: god/god(mysql precisa criar acc) - Zombie Event por Talkaction 100%(TP no ultimo andar do templo) -- /zombiestart X ; /zombiestart force X - número de players - Battlefield programado 100% - TFS 0.4 (compilado por mim) - Suporta qualquer items.otb - War System( COM ESCUDINHOOOS) 100% -- /war ; /balance - Cast System 100% -- conta: não coloque nada em account nem password. -- /cast on ; /cast off - Suporta MySQL e SQLite(apenas x86) - Databases limpas e perfeitamente compatíveis - Quests 100% - Itens 100% - Castle 24 Horas 100% - Promotion por Talkaction 100% - Vocações balanceadas (quase la) preciso de ajuda!! - Supreme itens com quest 100% - Special itens sendo vendidos no Special Seller - Nova moeda(1kk: gold ingot, id: 9971) - Autoloot System 100% - Upgrade System(até +10 usando o item 8306) - Bugs corrigidos do mapa e do TFS - Trade Off para website - TFS 0.4 x64 - TFS 0.4 x86 - Para trocar o TFS, delete o .exe e as libs que estejam na pasta. Vamos às imagens né poxa, não pode faltar... Battlefield map Black Boss hunt Bosser Hunt Distro Limpa Como conquistar o Castle24H Mapa do Castle24H Fire Master Elemental Hunt Ice Demon Hunt Principais Hunts: White Boss, Treptin, Verminor, Bosser, Quara Predator Scout, Fire Master Elemental, Black Boss e Ice Demon Quara Predator Scout Hunt Sphere City Supreme Attack Quest Supreme Ring & Shield Quest Supreme Set Quest Templo Treptin Hunt Verminor Hunt White Boss Hunt Zombie Event Map Bom gente, muito provável que essas férias eu continue em mudanças no mapa, então, muito provável que eu fique atualizando o post para postar as atualizações do server. Galera, o server está perfeito pra rodar em Windows, distro TFS 0.4 compilada por mim, estável, compilada para x32(antes eu achava que era para x64 rsrs) e x64, pronto pra deixar online! Créditos Beijos e até a próxima Website totalmente compatível(Gesior): Use este --> Link Download: https://github.com/s3kk/Heromassa/archive/master.zip Scan: https://www.virustotal.com/pt/url/71216ea7e98991af2c7f6226d581d2ba513e14cc585f8e8d0f6cf04bf112f755/analysis/1 ponto
-
mapa
mapa
jorginjones reagiu a heitor1 por uma resposta no tópico
1 pontoOlá pessoal, boa tarde para todos! Pra quem queria o mapa do atual darghos, estou disponibilizando um link para download! Download mapa darghos recente versão. Scan feito online https://www.virustotal.com/pt/file/539220b46124dead060554db13a0fe157d6072cd9b851e399fa881ed2afddedd/analysis/ Não tenho tempo de tirar foto, pois eu trabalho, e não tenho tempo a perder, quem quiser baixe e teste e da ok ai embaixo pra galera se sentir mais segura. Valeu!1 ponto -
[GlobalEvents] Perfect Zombie Event 100% automatico
[GlobalEvents] Perfect Zombie Event 100% automatico
DarkRed reagiu a Smart Maxx por uma resposta no tópico
1 pontoPrimeiramente o evento foi testado num servidor 8.6, TFS 0.4, sem apresentar nenhum problema. Em data/creaturescripts/scripts crie o arquivo zombieevent.lua : local config = { playerCount = 2001, -- Storage dos players que entram e sai do evento goblet = 5805, -- Troféu que vai pro vencedor do evento rewards = {2195, 2152, 2160}, -- Recompensas. moneyReward = {2160, 10, 1}, -- {moneyId, quantidade, usar}1 pra usar 0 pra não usar} -- Area que o zumbi vai spawnar fromPosition = {x = 543, y = 578, z = 7}, -- top de fromPosition até toPosition = {x = 577, y = 600, z = 7} -- em baixo toPostion } function onStatsChange(cid, attacker, type, combat, value) if isPlayer(cid) and isMonster(attacker) then if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then if getGlobalStorageValue(config.playerCount) >= 2 then doBroadcastMessage(getPlayerName(cid) .. " have been eated by Zombies!", MESSAGE_STATUS_CONSOLE_RED) local corpse = doCreateItem(3058, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)-1) elseif getGlobalStorageValue(config.playerCount) == 1 then if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING) local goblet = doPlayerAddItem(cid, config.goblet, 1) doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.") local corpse = doCreateItem(3058, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) for _,items in ipairs(config.rewards) do doPlayerAddItem(cid, items, 1) end if config.moneyReward[3] == 1 then doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2]) end end for x = config.fromPosition.x, config.toPosition.x do for y = config.fromPosition.y, config.toPosition.y do for z = config.fromPosition.z, config.toPosition.z do areapos = {x = x, y = y, z = z, stackpos = 253} getMonsters = getThingfromPos(areapos) if isMonster(getMonsters.uid) then doRemoveCreature(getMonsters.uid) end end end end end return false end end return true end Na mesma pasta em login.lua antes do ultimo return true adicione : registerCreatureEvent(cid, "zombieevent") Agora em data/creaturescripts adicione em creturescripts.XML : <!-- ZOMBIE EVENT --> <event type="statschange" name="zombieevent" event="script" value="zombieevent.lua"/> Agora vamos em data/monster crie uma pasta com o nome ZombieEvent e dentro dessa pasta crie o arquivo chamado event zombie.XML : <?xml version="1.0" encoding="UTF-8"?><monster name="Event Zombie" nameDescription="an event zombie" race="undead" experience="280" speed="100" manacost="0"> <health now="500" max="500"/> <look type="311" corpse="9875"/> <targetchange interval="5000" chance="50"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="0"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" min="-35000" max="-35000"/> </attacks> <defenses armor="15" defense="10"/> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="You wont last long!"/> <voice sentence="Mmmmh.. braains!"/> </voices> <loot> <item id="2148" countmax="1" chance="100000"/><!-- gold coin --> </loot> </monster> voltando pra pasta data/monster abra o arquivo monsters.XML e adicione : <!-- ZombieEvent --> <monster name="event zombie" file="ZombieEvent/event zombie.xml"/> tudo ok até aqui ... então vamos pra pasta data/movements/scripts crie zombieevent.lua : local config = { playerCount = 2001, -- Storage do players do evento maxPlayers = 20, -- Maximo de players pra partiparem do evento minLevel = 17 -- Level minimo pra entrar no evento } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getPlayerLevel(cid) < config.minLevel then addEvent(tpBack, 1000, cid, fromPosition) doPlayerSendCancel(cid, "You need to be at least level " .. config.minLevel .. ".") return false end if getGlobalStorageValue(config.playerCount) < config.maxPlayers then setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)+1) if getGlobalStorageValue(config.playerCount) == config.maxPlayers then doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(config.playerCount) .. " players]! The event will soon start.") else doBroadcastMessage(getPlayerName(cid) .. " entered the Zombie event! Currently " .. getGlobalStorageValue(config.playerCount) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED) end else addEvent(tpBack, 1000, cid, fromPosition) doPlayerSendCancel(cid, "The event is full. There is already " .. config.maxPlayers .. " players participating in the quest.") return false end print(getStorage(config.playerCount) .. " Players in the zombie event.") return true end function tpBack(cid, fromPosition) doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) end voltando pra data/movements abra o arquivo movements.XML e adicione : <!-- ZOMBIE event --> <movevent type="StepIn" actionid="2008" event="script" value="zombieevent.lua"/> agora vamos pra parte mais importante e que devemos mais prestar atenção... em data/globalevents/scripts crie zombieevent.lua : local config = { semana_mes = "semana", days = {1,2,3,4,5,6,7}, -- Dia das semanas que irá acontecer o evento goblet = 5805, -- Troféu que vai pro vencedor do evento rewards = {2195, 2152, 2160}, -- Recompensas. moneyReward = {2160, 10, 1},-- {moneyId, quantidade, usar}1 pra usar 0 pra não usar} playerCount = 2001, -- Storage dos players que entram e sai do evento zombieCount = 2002, -- Storage do zombie do event teleportActionId = 2008, -- Action ID do teleport teleportPosition = {x = 652, y = 1020, z = 7, stackpos = 1}, -- Onde o teleport é criado teleportToPosition = {x = 559, y = 589, z = 7}, -- Pra onde será teleportado teleportId = 1387, -- ID do teleporte timeToStartEvent = 2, -- Minutos que o portal irá ficar aberto até os player entrarem timeBetweenSpawns = 20, -- Segundos dps do evento ser startado começarem a aparecer os zombie zombieName = "event zombie", -- Nome do zombie sumonado playersNeededToStartEvent = 3, -- Players necessários pro evento ser iniciado -- Area que o zumbi vai spawnar fromPosition = {x = 543, y = 578, z = 7}, -- top de fromPosition até toPosition = {x = 577, y = 600, z = 7} -- -- em baixo toPostion } function onTime() local time = os.date("*t") if (config.semana_mes == "semana" and isInArray(config.days,time.wday)) or (config.semana_mes == "mes" and isInArray(config.days,time.day)) or config.semana_mes == "" then local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition) doItemSetAttribute(tp, "aid", config.teleportActionId) doBroadcastMessage("Zombie event starting in " .. config.timeToStartEvent .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING) setGlobalStorageValue(config.playerCount, 0) setGlobalStorageValue(config.zombieCount, 0) addEvent(startEvent, config.timeToStartEvent * 1000 * 60) end return TRUE end function startEvent() local fromp, top = config.fromPosition, config.toPosition if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then addEvent(spawnZombie, config.timeBetweenSpawns * 1000) doBroadcastMessage("Good luck in the zombie event people! The teleport has closed!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. config.timeBetweenSpawns .. " seconds! Good luck!") pvgaylord() end end end end else doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. config.playersNeededToStartEvent .. " players is needed!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false) doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT) end end end end end end function spawnZombie() if getGlobalStorageValue(config.playerCount) >= 2 then pos = {x = math.random(config.fromPosition.x, config.toPosition.x), y = math.random(config.fromPosition.y, config.toPosition.y), z = math.random(config.fromPosition.z, config.toPosition.z)} doSummonCreature(config.zombieName, pos) doSendMagicEffect(pos, CONST_ME_MORTAREA) setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1) doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED) addEvent(spawnZombie, config.timeBetweenSpawns * 1000) else local fromp, top = config.fromPosition, config.toPosition for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} cid = getThingfromPos(areapos).uid if isPlayer(cid) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doBroadcastMessage(getCreatureName(cid)..' has survived at zombie event!') for _,items in ipairs(config.rewards) do doPlayerAddItem(cid, items, 1) end if config.moneyReward[3] == 1 then doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2]) end doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING) local goblet = doPlayerAddItem(cid, config.goblet, 1) doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.") elseif isMonster(cid) then doRemoveCreature(cid) end end end end end end function pvgaylord() local fromp, top, p, m = config.fromPosition, config.toPosition, 0, 0 for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do local areapos = {x = x, y = y, z = z, stackpos = 253} local cid = getThingfromPos(areapos).uid if isPlayer(cid) then p = p+1 elseif isMonster(cid) then m = m+1 end end end end if p ~= getGlobalStorageValue(config.playerCount) then setGlobalStorageValue(config.playerCount, p) end if p < 2 then return true end addEvent(pvgaylord,100,nil) end na mesma pasta crie o arquivo fechazombie.lua : local teleportPos = {x = 652, y = 1020, z = 7, stackpos = 1} -- Posição em que se abre o teleport local teleportId = 1387 function onTimer() for i = 1, 255 do teleportPos.stackpos = i if getThingFromPos(teleportPos).itemid == teleportId then doRemoveItem(getThingFromPos(teleportPos).uid, 1) end end return true end agora em data/globalevents abra o arquivo globalevents.XML e adicione : <globalevent name="zombieevent" time="23:41" event="script" value="zombieevent.lua"/> <globalevent name="zombieventt" time="23:43" event="script" value="fechazombie.lua"/> Importante : time="Horário que irá acontecer o evento" e no fechazombie coloque 2 minutos a mais da hora que vc colocou pra iniciar, para assim fechar o teleport na hora em que o evento é startado (configuração padrão do script, se alterar lá terá que alterar aqui tb) Agora só abrir e desfrutar do seu novo sistema... Download de mapas : http://tibiaking.com...apa-modificado/ - tiago.bordin1988 http://tibiaking.com...mbie-event-v10/ - ricardo3 http://tibiaking.com...map-86-inovado/ - OhGod http://www.speedysha...ombieEvent.otbm Créditos... Fausto32 Sociopata Orochi Elf Phowned Smart Maxx1 ponto -
SISTEMA DE ADDON COMPLETO
SISTEMA DE ADDON COMPLETO
Angellgreen reagiu a Viny 13 por uma resposta no tópico
1 pontoBom gente esses dias o @Ceetros postou um sistema de Addon, que funciona no fly, ride e surf Só vou repostar aqui pra vocês, pois ele só postou no outro forum Vá em actions/scripts e crie um arquivo chamado addon.lua. Adicione isso lá: function onUse(cid, item, fromPosition, itemEx, toPosition) local addons = { [ID DO ITEM] = {pokemon= "NOME DO POKEMON" , looktype = LOOKTYPE NORMAL, fly = FLY, SE NÃO TIVER PONHA 0, ride = RIDE, SE NÃO TIVER PONHA 0, surf = SE NÃO TIVER SURF PONHA 0}, } if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Please back your pokemon.") return false end local addon = addons[item.itemid].looktype local fly = addons[item.itemid].fly local ride = addons[item.itemid].ride local surf = addons[item.itemid].surf local pb = getPlayerSlotItem(cid, 8).uid local pk = addons[item.itemid].pokemon if getItemAttribute(pb,"poke") ~= pk then doPlayerSendCancel(cid, "Sorry, you can't use this addon on this poke.") return false end if getItemAttribute(pb,"addon") >= 0 then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.") doSetItemAttribute(pb,"addon",addon) doSetItemAttribute(pb,"addonfly",fly) doSetItemAttribute(pb,"addonride",ride) doSetItemAttribute(pb,"addonsurf",surf) return true end return true end Em actions.xml adicione: <action itemid="ID;ID;ID" event="script" value="addon.lua"/> Agora em actions/goback.lua antes de: else doPlayerSendCancel(cid, "This pokemon is fainted.") end return true end Adicione: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) end Em lib/order.lua encontre: local pokemon = flys[getPokemonName(getCreatureSummons(cid)[1])] doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower.") doChangeSpeed(cid, -getCreatureSpeed(cid)) local speed = 500 + PlayerSpeed/5 + getSpeed(sid) * 6 * speedRate doChangeSpeed(cid, speed) setPlayerStorageValue(cid, 54844, speed) doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1) doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1])) doRemoveCreature(getCreatureSummons(cid)[1]) setPlayerStorageValue(cid, 17000, 1) Abaixo adicione: local addonfly= getPlayerSlotItem(cid, 8).uid local addofly = getItemAttribute(addonfly,"addonfly") if not addofly then doSetItemAttribute(addonfly,"addonfly",0) end if addofly > 0 then doSetCreatureOutfit(cid, {lookType = addofly}, -1) end Continuando em order.lua Encontre: local pokemon = rides[getPokemonName(getCreatureSummons(cid)[1])] doChangeSpeed(cid, -getCreatureSpeed(cid)) local speed = 150 + PlayerSpeed + getSpeed(sid) * 5 * speedRate doChangeSpeed(cid, speed) setPlayerStorageValue(cid, 54844, speed) doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1) doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1])) doRemoveCreature(getCreatureSummons(cid)[1]) setPlayerStorageValue(cid, 17001, 1) Em baixo adicione: local addonride = getPlayerSlotItem(cid, 8).uid local addoride = getItemAttribute(addonride,"addonride") if not addoride then doSetItemAttribute(addonride,"addonride",0) end if addoride > 0 then doSetCreatureOutfit(cid, {lookType = addoride}, -1) end Agora em movements/surf.lua encontre: doSetCreatureOutfit(cid, {lookType = surfs[getPokemonName(getCreatureSummons(cid)[1])].lookType + 351}, -1) doCreatureSay(cid, ""..getPokeName(getCreatureSummons(cid)[1])..", lets surf!", 1) doChangeSpeed(cid, -(getCreatureSpeed(cid))) E troque por: local addonsurf = getPlayerSlotItem(cid, 8).uid local addosurf = getItemAttribute(addonsurf,"addonsurf") if not addosurf then doSetItemAttribute(addonsurf,"addonsurf",0) doSetCreatureOutfit(cid, {lookType = surfs[getPokemonName(getCreatureSummons(cid)[1])].lookType + 351}, -1) end if addosurf > 0 then doSetCreatureOutfit(cid, {lookType = addosurf}, -1) end doCreatureSay(cid, ""..getPokeName(getCreatureSummons(cid)[1])..", lets surf!", 1) doChangeSpeed(cid, -(getCreatureSpeed(cid))) No mesmo arquivo ache: doSummonMonster(cid, pokemon) Logo abaixo adicione: local pk = getCreatureSummons(cid)[1] local balla = getPlayerSlotItem(cid, 8).uid local balladdon = getItemAttribute(balla,"addon") if not balladdon then doSetItemAttribute(balla,"addon",0) end if balladdon > 0 then doSetCreatureOutfit(pk, {lookType = balladdon}, -1) end Por ultimo em actions/order.lua encontre: doPlayerSay(cid, ""..getPokeName(getCreatureSummons(cid)[1])..", let me get down!", 1) doRegainSpeed(cid) --alterado v1.7 doRemoveCondition(cid, CONDITION_OUTFIT) Abaixo adicione: local pkjg = getCreatureSummons(cid)[1] local pkza = getPlayerSlotItem(cid, 8).uid local pkxd = getItemAttribute(pkjg,"addon") if not pkxd then doSetItemAttribute(pkza,"addon",0) elseif pkxd > 0 then doSetCreatureOutfit(pkjg, {lookType = pkxd}, -1) end Caso não tenha addon box vá data/actions/scripts e adicione isso: Explicando: local addons = {12803,12804,12805,12806,12807,2135,2136,2137,2138,2139,2142} ( Onde tá os numeros é o id da sua addon ) onde tá 12802 ( é o id da addon box ) Onde tá (1, 11 ) é a quantidade de items que tem na box,sempre que for adicionar uma aumente o numero pois pode falhar. EM DATA/ACTIONS/ACTIONS.XML ADICIONE ESTA TAG : <action itemid="ID DA SUA ADDON BOX" event="script" value="addon box.lua"/> Pra finalizar Vá em creaturescripts/scripts/login.lua Troque tudo por:1 ponto -
PK ao Atacar Summon de Outro Player
Serei breve, já que o próprio título já diz sobre o sistema. É um creaturescript bem simples, porém pode ser útil. onattacksummon.lua (data/creaturescripts/scripts): local stime = 10 -- tempo de pk (minutos) local condition_infight = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition_infight, CONDITION_PARAM_TICKS, stime * 60 * 1000) function onAttack(cid, target) if getCreatureSkullType(cid) < 3 and isPlayer(getCreatureMaster(target)) then doCreatureSetSkullType(cid, SKULL_WHITE) doAddCondition(cid, condition_infight) doPlayerSetPzLocked(cid, true) end return true end No mesmo diretório, adicione o registro ao arquivo login.lua (data/creaturescripts/scripts): registerCreatureEvent(cid, "onAttackSummon") Adicione a tag - creaturescripts.xml (data/creaturescripts): <event type="attack" name="onAttackSummon" event="script" value="onattacksummon.lua"/> Créditos: Suicide (aprendiz de xWhiteWolf).1 ponto
-
OTClient pararecido com PXG! [Download]
Primeiramente: Peço desculpas se errei o lugar porque pra min um Client de algum server e um ultilitario então peço desculpas se errei novamente o lugar. Segundamente: Aqui estou postando um Client parecido com o da PXG Logo digo não fui eu que fiz e ele e beta então pode a ver rejeição em alguns servers eu testei ele no servidor de poketibia do gabrielTxu 3.0 a 3.2 e as vezes a vara de pescar não funciona então quem quiser pegar como base para seu Client pode usar a vontade. Por isso que estou postando e uma base não um pronto para usar entendido então não me venha reclamar dizendo que enganei vocês. Aqui esta uma print: Aqui esta o Download do Client: CLICK AQUI SCAN: CLICK AQUI Me agradecer não cai o dedo Vlws. Um grande abraço e fiquem com Deus.1 ponto
-
Fly System BETA - 100% sources
Fly System BETA - 100% sources
Shadow.Styller reagiu a Orochi Elf por uma resposta no tópico
1 pontoFly System BETA Fala galera, hoje eu estou aqui para mostrar o fly system que eu desenvolvi inteiramente nas sources. Uma observação sobre o vídeo, o tile branco que vocês vão ver é apenas para demonstração. Sobre o sistema: Este sistema é totalmente desenvolvido dentro das sources, e sua funcionalidade depende apenas de 1 tile, diferentemente das versões já criadas que usam 9 tiles (1 para o player ficar em cima, e os outros 8 em volta do jogador para captação do próximo passo), assim diminuindo o consumo desnecessário de memória.1 ponto -
[Formando Equipe] Pokemon Master
[Formando Equipe] Pokemon Master
CarlosHenrique7457 reagiu a Mauro Sérgio por uma resposta no tópico
1 pontoBom Pessoal Estou Aqui Para Forma Uma Equipe Dedicada De Poketibia, Estamos Precisando Urgente De Um Script/Progamador. Pois Iremos Criar Scripts Únicos Para Servidor (Dash Com Level [Não é PDA]). Se Quiser Participar Só Comentar, Já Temos Uma VPS. Ah Quase Esqueço De Comentar Muitas Das Scripters Será Mais Para Adaptar.1 ponto -
Magia que Empurra
Magia que Empurra
gmstrikker reagiu a xWhiteWolf por uma resposta no tópico
1 pontoele só sai só pra baixo se vc esquecer de botar direction="1" na tag do xml.1 ponto -
ME AJUDA A MONTAR SCRIPT
1 pontona vdd esse item teria que ser criado pela função para adicionar o atributo. mas tente assim: <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} -- slots que ele vai checar function onStatsChange(cid, attacker, type, combat, value) local item_id, p = 2644,30 local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) end if getPlayerSlotItem(cid, slotPos[i]).itemid == item_id then reflectPercent = reflectPercent + p end end end if reflectPercent > 0 then 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 else return true end end]]></event> </mod>1 ponto
-
[SHOW OFF] [PROJETO] Ellon Online FULL RPG ATS
Bom cara, conforme te prometi por MP, eis o logotipo e a capa que fiz pro projeto. Lembrando que não sou designer. Recomendo fortemente que vc procure um designer de verdade que possa acrescentar algo de verdade em seu projeto. Até porque, em um projeto sério, um bom design é uma necessidade constante! Por isso mesmo recomendo vc procurar um designer de verdade. Só estou quebrando galho. Logotipo: https://s32.postimg.org/c4hxxjso5/Ellon_Logo.png Capa do cliente: https://s32.postimg.org/6a0trxk91/ellonbg.png Abraço.1 ponto
-
help teleport scroll com efeito CreatureSay
help teleport scroll com efeito CreatureSay
Luccan Medeiros reagiu a Reds por uma resposta no tópico
1 pontopq vc n usa assim? doSendAnimatedText(getCreaturePosition(cid), "blbla", 19)1 ponto -
(Resolvido)[SCRIPT] Item para Last Hit
doBroadcastMessage("O jogador "..getCreatureName(deathList[1]).." deu o ultimo HIT no Homem De Gelo e ganhou um Vale Level e uma XP Potion!")1 ponto
-
PATROCINIO GERAL
PATROCINIO GERAL
Pabloxsz reagiu a gabriel152a por uma resposta no tópico
1 pontoTenho um ot server 860 pronto. Criei os itens donates, balanceei e editei todo mapa. É Baiak, está muito bom, inclusive já paguei um VPS para por em prática o projeto. Podemos fazer uma equipe, também estou em disposição de investimento e divulgação do servidor, inclusive em scripts e proteção. No caso estou acabando de resolver alguns pequenos problemas, que seria de grande interesse da ajuda de mais alguém para resolução. Dificuldades para deixar o site online pelo fato de alguns erros chatos porém já está pronto e muito bonito. Abraços, aguardo contato.1 ponto -
Adicionando itens novos no items.otb
Adicionando itens novos no items.otb
Axion Nitron reagiu a Reds por uma resposta no tópico
1 pontoda pra criar por actions, vc teria q refazer todos os teles..1 ponto -
Adicionando itens novos no items.otb
Adicionando itens novos no items.otb
Axion Nitron reagiu a Reds por uma resposta no tópico
1 pontovc importou o otb pro remeres tbm?1 ponto -
Staff que Almenta ataque Por Level Ajuda
function onGetFormulaValues(cid, level, maglevel) min = -(level*20) max = -(level*20) return min, max end cara, em spell funciona assim, acredito que seja igual1 ponto
-
(AJUDA) Como Criar Itens
(AJUDA) Como Criar Itens
njeffersonm reagiu a DukeeH por uma resposta no tópico
1 pontoQuando um item tem a função de dar algum atributo que não seja só armor/def. (ml, regen, skills...) ele deve ser registrado no movements.xml com uma tag onequip e outra deequip, o id do item e o local que ele vai ser equipado. Espero ter ajudado.1 ponto -
[TFS 1.X] Chuva de items
[TFS 1.X] Chuva de items
Shadow.Styller reagiu a Linus por uma resposta no tópico
1 pontoAh duas versões do script, em globalevent ou talkaction use a que preferir. -- GLOBALEVENT -- globalevents.xml : <globalevent type="startup" name="RainItems" script="rainitems.lua"/> rainitems.lua local config = { items = {{8306,1}, {2157,2}, {7735,1}, {8306,1}, {2184,1}, {9932,1}, {8306,1}, {9693,1}, {2148, 100}}, interval = 1000, -- time between checks areas = { [1] = { startHour = 19, startMin = 15, waves = 10, interval = 10000, chancePerTile = 10, -- % maxItemsPerWave = 15, from = {x = 1021, y = 994, z = 7}, to = {x = 1024, y = 998, z = 7} }, [2] = { startHour = 18, startMin = 43, waves = 10, interval = 10000, chancePerTile = 10, maxItemsPerWave = 15, from = {x = 1026, y = 995, z = 7}, to = {x = 1028, y = 1001, z = 7} } } } local executed = {} function Position.isPathable(pos) local tile = Tile(pos) if tile == nil then return false end return not tile:hasFlag(TILESTATE_BLOCKSOLID) end function rainWave(arena) local from = config.areas[arena].from local to = config.areas[arena].to local items_spawned = 0 for x = from.x, to.x do for y = from.y, to.y do for z = from.z, to.z do if math.random(1, 100) < config.areas[arena].chancePerTile and items_spawned < config.areas[arena].maxItemsPerWave then local pos = {x = x, y = y, z = z} if Position(pos):isPathable() then local item = math.random(1, #config.items) doCreateItem(config.items[item][1], math.random(1, config.items[item][2]), pos) Position(pos):sendMagicEffect(CONST_ME_MAGIC_RED) items_spawned = items_spawned + 1 end end end end end end function startRain(arena) broadcastMessage("Rain item event begins!") for i = 1, config.areas[arena].waves do if i == 1 then rainWave(arena) else addEvent(rainWave, config.areas[arena].interval * (i - 1), arena) end end addEvent(broadcastMessage, config.areas[arena].interval * (config.areas[arena].waves - 1), "Rain items event ended.") end function checkRain() local hour = tonumber(os.date("%H")) local min = tonumber(os.date("%M")) if not executed[hour] then executed[hour] = {} end for i = 1, #config.areas do if hour == config.areas[i].startHour and min == config.areas[i].startMin then if not executed[hour][min] then startRain(i) addEvent(checkRain, config.interval) executed[hour][min] = true end end if tonumber(os.date("%H", os.time() + (30 * 60))) == config.areas[i].startHour and tonumber(os.date("%M", os.time() + (30 * 60))) == config.areas[i].startMin then if not executed[hour][min] then broadcastMessage("Rain items event will start in 30 minutes.") addEvent(checkRain, config.interval) executed[hour][min] = true end end if tonumber(os.date("%H", os.time() + (1 * 60))) == config.areas[i].startHour and tonumber(os.date("%M", os.time() + (1 * 60))) == config.areas[i].startMin then if not executed[hour][min] then broadcastMessage("Rain items event will start in 1 minute.") addEvent(checkRain, config.interval) executed[hour][min] = true end end end addEvent(checkRain, config.interval) end function onStartup() addEvent(checkRain, 100) end -- TALKACTION -- talkactions.xml <talkaction words="/rainitems" separator=" " script="rainitems_command.lua"/> rainitems_command.lua local config = { items = {{8306,1}, {2157,2}, {7735,1}, {8306,1}, {2184,1}, {9932,1}, {8306,1}, {9693,1}, {2148, 100}}, interval = 1000, -- time between checks areas = { [1] = { waves = 10, interval = 10000, chancePerTile = 10, -- % maxItemsPerWave = 15, from = {x = 1021, y = 994, z = 7}, to = {x = 1024, y = 998, z = 7} }, [2] = { waves = 10, interval = 10000, chancePerTile = 10, maxItemsPerWave = 15, from = {x = 1026, y = 995, z = 7}, to = {x = 1028, y = 1001, z = 7} } } } function Position.isPathable(pos) local tile = Tile(pos) if tile == nil then return false end return not tile:hasFlag(TILESTATE_BLOCKSOLID) end function rainWave(arena) local from = config.areas[arena].from local to = config.areas[arena].to local items_spawned = 0 for x = from.x, to.x do for y = from.y, to.y do for z = from.z, to.z do if math.random(1, 100) < config.areas[arena].chancePerTile and items_spawned < config.areas[arena].maxItemsPerWave then local pos = {x = x, y = y, z = z} if Position(pos):isPathable() then local item = math.random(1, #config.items) doCreateItem(config.items[item][1], math.random(1, config.items[item][2]), pos) Position(pos):sendMagicEffect(CONST_ME_MAGIC_RED) items_spawned = items_spawned + 1 end end end end end end function startRain(arena) broadcastMessage("Rain item event begins!") for i = 1, config.areas[arena].waves do if i == 1 then rainWave(arena) else addEvent(rainWave, config.areas[arena].interval * (i - 1), arena) end end addEvent(broadcastMessage, config.areas[arena].interval * (config.areas[arena].waves - 1), "Rain items event ended.") end function onSay(player, words, param) if not player:getGroup():getAccess() then return false end if tonumber(param) then startRain(tonumber(param)) else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, words .. " eventid") end return false end Créditos zbisu.1 ponto -
(Resolvido)Ajuda com npcs, rashid e djins
(Resolvido)Ajuda com npcs, rashid e djins
njeffersonm reagiu a robi123 por uma resposta no tópico
1 pontoonde eu faço isso na versão 10.90 ??1 ponto -
[BUG EM TODOS OS OTS] TFS 1.X, FIXED!
O walkable.lua que eu mandei, não permite que o servidor de esse problema, devido isso ser um bug em LUA, nos scripts; e não em C++ e não é culpa do TFS. Os baús das chests, e o script de Calassa, como exemplo do video, não são seguro de utilizar, ambos scripts walkable.lua do TFS, script de Calassa do projeto do @Bruno Minervino, não são seguros de utilizar, nada além disso. A solução do @Absolute nada mais é do que remover o stack overflow, e funciona com certeza, e não seria um bug inútil. Um colega meu disse que esse "bug" não vê nada de errado com o modo que o TFS está lidando com a situação, mas sim programadores inexperientes e irresponsáveis culpando o TFS por seus scripts que não são seguros, e ele deu uma situação hipotética, se um foguete da NASA cair em meio ao lançamento. A culpa é da gravidade ou dos engenheiros, que por imperícia, negligência, não perceberam a existência de um erro crucial no projeto deles? Sem mais.1 ponto
-
Base Sprite
Base Sprite
mixnaruto reagiu a Wingardium por uma resposta no tópico
1 pontoE ai bro, blz? Eu to começando agora sprites humanas e me baseei nesses dois tutoriais: Anatomia Humana AA Aplication Espero que ajude1 ponto -
puxar todos os player do ot
puxar todos os player do ot
Axion Nitron reagiu a justikar por uma resposta no tópico
1 pontoVai em Data/talkaction/scripts/tpall.lua function onSay(cid, words, param, channel) local temple = { x = 1000, y = 1000, z = 7 } //local para onde serão teleportados for _, cid in ipairs(getPlayersOnline()) do doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "All players have been teleported to xxxxxxx.") //Frase que receberão doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) end return TRUE end1 ponto