Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 11/19/15 em todas áreas
-
Underground Camp
SamueLGuedes e um outro reagiu a Administrador por um tópico no fórum
2 pontos -
Qual ficou melhor a primeira ou a segunda ?2 pontos
-
Dúvida em creaturescript
Krono e um outro reagiu a Night Wolf por uma questão
tá, vamos lá: Primeiro lugar seu código não tá completo, ele possui erros gravíssimos e isso explicaria por si só grande parte do motivo de não funcionar.. 1- Pra todo if que você tem você precisa de um end pra fechar o bloco dele. a melhor forma de perceber isso é identando seu código, baixe o notepad++ aí q ele vai te dizer onde um bloco abre e onde ele fecha e use sempre o tab pra identar e não perder controle sobre seu código Agora vamos lá, arrumando o erro [1] seu código deverá ficar assim, note que é muito mais fácil entender o que cada coisa faz 2- Você só pode utilizar coisas como parâmetro que existam, sério, muita gente ainda acredita que cid significa sempre o player e isso não é verdade. No geral cid só existe dentro do callback (função principal do script) pois ele é o primeiro parâmetro da função, acompanha cmg: function onJoinChannel(cid, channelId, users, isTv) esse é o callback e olha só ali o nosso cid. Eu só posso usar coisas que utilizam o cid debaixo dessa linha aí pois antes disso ele não é definido, logo isso daqui daria erro: local pokes1 = getLivePokeballs(cid, getPlayerSlotItem(cid, 3).uid, true) local pokes2 = getLivePokeballs(sid, getPlayerSlotItem(sid, 3).uid, true) function onJoinChannel(cid, channelId, users, isTv) Sem falar que sid não existe, você vai ter que pensar em outra forma de coletar os pokemons do oponente e eu dou um bom palpite que você poderia usar aquele users ali no callback pra checar os players que já estão no channel. Nunca mexi com esse callback mas é um bom palpite, coloca pra printar o type daquilo e vai fazer testes pra ver como funciona aquilo (ou se vc manjar de source, olha na source como a função tá definida) Por fim, se vc só usa a variável uma vez, não tem porque definí-la. Corrigindo tudo ficamos com: Mas ainda não é certo de isso funcionar, só corrigi a parte estrutural do código.. to partindo do pressuposto que a semântica você acertou.2 pontos -
Base usada: PDA by Slicer, v1.9 Para quem não conhece o sistema de mega evoluções, recomendo acessar este link. A diferença é que a pedra (mega stone) não ocupa o espaço de um Held Item tier Y (visto que não são todos os servidores que possuem Held Itens). Instalação do sistema (atenção nos detalhes) data/lib: cooldown bar.lua: Troque o código da função getNewMoveTable(table, n) por este: function getNewMoveTable(table, n) if table == nil then return false end local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9, table.move10, table.move11, table.move12} local returnValue = moves if n then returnValue = moves[n] end return returnValueend No código da função doUpdateMoves(cid), troque o segundo: table.insert(ret, "n/n,") por: local mEvolveif not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then if not isInArray(ret, "Mega Evolution,") then table.insert(ret, "Mega Evolution,") mEvolve = true endendif not mEvolve then table.insert(ret, "n/n,")end Depois, em pokemon moves.lua: Troque: min = getSpecialAttack(cid) * table.f * 0.1 --alterado v1.6 por: min = getSpecialAttack(cid) * (table and table.f or 0) * 0.1 --alterado v1.6 Código da spell: elseif spell == "Mega Evolution" then local effect = xxx --Efeito de mega evolução. if isSummon(cid) then local pid = getCreatureMaster(cid) if isPlayer(pid) then local ball = getPlayerSlotItem(pid, 8).uid if ball > 0 then local attr = getItemAttribute(ball, "megaStone") if attr and megaEvolutions[attr] then local oldPosition, oldLookdir, health_percent_lost = getThingPos(cid), getCreatureLookDir(cid), (getCreatureMaxHealth(cid) - getCreatureHealth(cid)) * 100 / getCreatureMaxHealth(cid) doItemSetAttribute(ball, "poke", megaEvolutions[attr][2]) doSendMagicEffect(getThingPos(cid), effect) doRemoveCreature(cid) doSummonMonster(pid, megaEvolutions[attr][2]) local newPoke = getCreatureSummons(pid)[1] doTeleportThing(newPoke, oldPosition, false) doCreatureSetLookDir(newPoke, oldLookdir) adjustStatus(newPoke, ball, true, false) doCreatureAddHealth(newPoke, -(health_percent_lost * getCreatureMaxHealth(newPoke) / 100)) if useKpdoDlls then addEvent(doUpdateMoves, 5, pid) end end end end end Depois, em configuration.lua: megaEvolutions = { --[itemid] = {"poke_name", "mega_evolution"}, [11638] = {"Charizard", "Mega Charizard X"}, [11639] = {"Charizard", "Mega Charizard Y"},} Agora, em data/actions/scripts, código da mega stone: function onUse(cid, item) local mEvolution, ball = megaEvolutions[item.itemid], getPlayerSlotItem(cid, 8).uid if not mEvolution then return doPlayerSendCancel(cid, "Sorry, this isn't a mega stone.") elseif ball < 1 then return doPlayerSendCancel(cid, "Put a pokeball in the pokeball slot.") elseif #getCreatureSummons(cid) > 0 then return doPlayerSendCancel(cid, "Return your pokemon.") elseif getItemAttribute(ball, "poke") ~= mEvolution[1] then return doPlayerSendCancel(cid, "Put a pokeball with a(n) "..mEvolution[1].." in the pokeball slot.") elseif getItemAttribute(ball, "megaStone") then return doPlayerSendCancel(cid, "Your pokemon is already holding a mega stone.") end doItemSetAttribute(ball, "megaStone", item.itemid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Now your "..getItemAttribute(ball, "poke").." is holding a(n) "..getItemNameById(item.itemid)..".") doRemoveItem(item.uid) return trueend Depois, em goback.lua: Abaixo de: if not pokes[pokemon] then return trueend coloque: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end Depois, em data/creaturescripts/scripts, look.lua: Abaixo de: local boost = getItemAttribute(thing.uid, "boost") or 0 coloque: local extraInfo, megaStone = "", getItemAttribute(thing.uid, "megaStone")if megaStone then extraInfo = getItemNameById(megaStone) if pokename:find("Mega") then pokename = megaEvolutions[megaStone][1] endend Depois, acima do primeiro: doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) coloque: if extraInfo ~= "" then table.insert(str, "\nIt's holding a(n) "..extraInfo..".")end Já em data/talkactions/scripts, move1.lua: Abaixo de: function doAlertReady(cid, id, movename, n, cd) coloque: if movename == "Mega Evolution" then return true end Troque: if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end por: if not move then local isMega = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") if not isMega or name:find("Mega") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local moveTable, index = getNewMoveTable(movestable[name]), 0 for i = 1, 12 do if not moveTable[i] then index = i break end end if tonumber(it) ~= index then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local needCds = true --Coloque false se o pokémon puder mega evoluir mesmo com spells em cooldown. if needCds then for i = 1, 12 do if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then return doPlayerSendCancel(cid, "To mega evolve, all the spells of your pokemon need to be ready.") end end end move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0} end E troque: doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) por: local spellMessage = msgs[math.random(#msgs)]..""..move.name.."!"if move.name == "Mega Evolution" then spellMessage = "Mega Evolve!"enddoCreatureSay(cid, getPokeName(mypoke)..", "..spellMessage, TALKTYPE_SAY) Se não quiser que o "Mega" apareça no nome do pokémon, vá em data/lib, level system.lua: Acima de: if getItemAttribute(item, "nick") then nick = getItemAttribute(item, "nick")end coloque: if nick:find("Mega") then nick = nick:match("Mega (.*)") if not pokes[nick] then nick = nick:explode(" ")[1] end end Caso queiram que cada mega evolução tenha um clã específico: Em move1.lua, acima de: move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0, f = 0, t = "?"} coloque: local megaEvoClans = { --[mega_stone_id] = "clan_name", [91912] = "Volcanic", [91913] = "Seavell", --etc,}if megaEvoClans[isMega] then if getPlayerClanName(cid) ~= megaEvoClans[isMega] then return doPlayerSendCancel(cid, "You can't mega evolve this pokemon.") endend Finalizando o tópico após uma pequena reestruturação na indexação, gostaria de levantar algo que acredito ser bem claro: o sistema é cheio de detalhes, muitas vezes minuciosos. Um simples erro e bugs aparecem por toda parte. Se você encontrou algum, pelo menos uma das duas seguintes condições acontecem: Base DIFERENTE da usada. Peço desculpas, mas não pretendo adaptar o sistema para todas as bases diferentes que aparecerem. Se a base for a mesma, você com certeza errou em algum ponto da instalação. O sistema foi testado inúmeras vezes, não apenas por mim, e seu funcionamento foi seguidamente comprovado. Façam bom uso, invocadores.1 ponto
-
[Oficial] Refugia (8.60) 26/08/2012 0.0.8
felipecaldas199 reagiu a Subwat por um tópico no fórum
Bom pessoal,venho trazer-lhes hoje um trabalho,de meses de mim e de daniel devotti,fizemos um servidor Igual o refugia. e agora venho compartilhar com vocês. SENHA DO GOD account:god senha:GOD Spells Knights :ezzori,ezzori gran. Magos :exevo gran frigo,exevo gran mas mort,exevo gran mas ghost,aurora. Paladinos :exevo gran mas mort,aurora. Sistemas Pet system com mais de 50 pets,Incluindo Pets Donates que você pode vender em seu site! Sistemas de arena duels Para teams ou duplas no segundo andar no templo! Sistema de VIP Coins e (VIP) no nome Igual do Refugia Original! TASK SYSTEM! Sistema De Reborn Monster! adicionado 16/09/11 Ao matar um monstro ele tem 50% de chance de renascer igual no refugia! Items Mais de 100 items editados únicos do servidor! items free bons,quests com items editados e etc. Quests Anihilator demon helmet Aqua quest vermilion quest Pits of inferno Lord vampire quest refugia legs multi Quest dentre várias outras. Screen Shots Trainer's Templo Free Teleports Vip Teleports Free Teleportes para cidades Segundo andar do templo Montanha City Vip City Free NPC's DOWNLOAD: http://adf.ly/IGQ9S http://adf.ly/IGQDJ (SCAN DESATUALIZADO) Créditos Subwat (Gean Riot) Refugia.com.br daniel freire devotti curtiu REP+ Este tópico recebeu destaque em nosso portal!1 ponto -
[Znote AAC] Layout FREE!
hoshik4ge reagiu a Administrador por um tópico no fórum
1 ponto -
Show Off (Gwix)
Liipe Silva3 reagiu a Gwix por um tópico no fórum
Olá pessoal, Sou o Gwix, atual mapper do RadBR e a nossa parceria com o Xtibia me motivou a postar meus mapas aqui, não acompanhava o fórum mas passarei a acompanhar. Vamos ao que interessa! Floresta encantada 1 Mapa temático de Halloween Apenas uma cachoeira Floresta encantada 2 Possível 'monte olimpo', peço desculpas pois está incompleto... Mas terão 12 colunas dessas, e à frente de cada coluna 1 Deus Olimpiano, que 1 a 1 serão desafiados pelos jogadores e por último enfrentarão Zeus, o poderoso Deus será forçado a se levantar de seu trono e devastará a morte à quem o enfureceu! Uma passagem para o portal das entranhas do Santuário do Senhor Hades, ele está reconstruindo sua fortaleza e também seu exército, reza a lenda que os mais bravos e tolos guerreiros que arriscaram aventurar-se por ali tiveram seu crânio como decoração. Arena, onde o espetáculo entre homens contra homens e até mesmo os mais poderosos monstros era tramado. É um mapa meio antigo meu: Insectoid hunt: Templo congelado do Rei, não ouse libertá-lo Underwater temple Precipício de Ghondor1 ponto -
Script do Vodkart, ele autorizou o post. O script consiste em quando comprar a pot ao invés de vir com 1 carga, irá vir com 5 cargas. potregenera.lua (data/actions/scripts) function onUse(cid, item, fromPos, itemEx, toPos) local function doRegeneration(cid, formula, count) doCreatureAddHealth(cid, formula.health) doCreatureAddMana(cid, formula.mana) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYAREA) if (count ~= 1) then addEvent(doRegeneration, 1000, cid, formula, count - 1) end return TRUE end local tempo = 30 -- tempo que a potion ira ficar healando (tempo em segundos) local storage = 11148 -- nao mexa aqui local exhaust = 30 -- Tempo para player poder usar o item novamente! (tempo em segundos) local form = {health = getCreatureMaxHealth(cid) * 0.2 + 50, mana = getCreatureMaxMana(cid) * 0.15 + 40} if (getPlayerStorageValue(cid, storage) <= os.time()) then doRegeneration(cid, form, tempo) doChangeTypeItem(item.uid, item.type - 1) setPlayerStorageValue(cid, storage, os.time()+exhaust) else doPlayerSendCancel(cid, "Desculpe, voce so vai poder usar novamente em "..exhaust.." segundos.") end return TRUE end actions.xml <action itemid="7443" event="script" value="potregenera.lua" override="yes"/> Em items.xml, substitua:1 ponto
-
Walking Effect On Outfit
Mendiguinho91 reagiu a Vodk por um tópico no fórum
Explicação: Enquanto andar com o full addon de algumas ouflits irá sair efeito. Creaturescripts/scripts: creaturescripts.xml: <event type="login" name="EffectOutLogin" event="script" value="outfiteffect.lua"/> <event type="outfit" name="OutfitEffects" event="script" value="outfiteffect.lua"/> Configurando: local effect = { [136] = 3, [128] = 3, -- citizen [270] = 27,[273] = 27, -- jester [156] = 61,[152] = 61, -- assassin [147] = 44,[143] = 44, -- barbarian [148] = 45,[144] = 45, -- druid [157] = 68,[153] = 68, -- beggar [149] = 36,[145] = 36, -- wizard [279] = 17,[278] = 17, -- brotherwood [137] = 39,[129] = 39, -- hunter [141] = 66,[133] = 66, -- summoner [142] = 34,[134] = 34, -- warrior [155] = 31,[151] = 31, -- pirate [158] = 46,[154] = 46, -- shaman [288] = 6,[289] = 6 -- demonhunter } Em [] é o ID da ouflit e depois do = é o número do efeito1 ponto -
1 ponto
-
Ice Spawn
Sexyboyy reagiu a Administrador por um tópico no fórum
1 ponto -
1 ponto
-
Avatar Lost Online - BETA
Administrador reagiu a Wo11ven por um tópico no fórum
Projeto muito interessante, parabéns! Adicionei o servidor na lista do OT Checker, caso queira acompanhar o "analytics". Boa sorte.1 ponto -
spells que heala vida igual utura gran
Dennyz Dias reagiu a Caronte por uma questão
utura.lua local tempo = 10 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo * 1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setCombatCondition(combat, condition) function onCastSpell(cid, var) heal(cid) return doCombat(cid, combat, var) end function heal(cid) local formula = 100 * getPlayerLevel(cid) for i = 1, tempo do addEvent(doCreatureAddHealth,1000 * i,cid, formula / tempo) end end spells.xml <instant name="Cure Aid" words="utura" lvl="9" mana="20" aggressive="0" selftarget="1" exhaustion="20000" needlearn="0" event="script" value="utura.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> Diminui a formula, pois coloquei muito. e o tempo pode aumentar, está em segundos.1 ponto -
Avatar Lost Online - BETA
Administrador reagiu a Danihcv por um tópico no fórum
Tópico Movido Este tópico foi movido de "OTServ → Formação de Equipes → Divulgue-se" para "OTServ → Anúncio de OTservers → Servidores Derivados".1 ponto -
Show Off (Gwix)
Gwix reagiu a SamueLGuedes por um tópico no fórum
Sinta-se a vontade, criatividade é o que mais tem por aqui kk xD.1 ponto -
Creio que esse script deve funcionar No caso o player sendo level por exemplo 60 ele so pode atacar quem for level 50 ou + ou quem for lvl 199 ou - dai você edita o parameter seguindo a mesma logica...1 ponto
-
use debian 7 ou ubuntu no maximo 14.04 nao tem como te ajudar esse ot nao abre em 32 bits mapa e muito grande.1 ponto
-
Vai na pasta mods/firstitems.XML e acha o id dele e apaga assim ninguém vai começar com esse item ai vai vim um slot vazio ai depois vai data/items/items.xml e adiciona <attribute key value "ring"/> não lembro se assim to pelo celular1 ponto
-
Map Editor (Modificado)
JustinnoTibianno reagiu a Administrador por um tópico no fórum
Eai galera, achei essas extensões criadas por RokojoM e Limos da OtLand. Bom, espero que curtam. Itens.otb OFICIAL BAIXAR EXTENSÕES RkjM RME Mod.rar Map Editor (Última Versão) (São os arquivos que você deve utilizar no map editor para ter as extensões mostradas nas imagens - Para usar basta colar os arquivos baixados em Remere's Map Editor > data > client) IMAGENS1 ponto -
Poi seals
Adolfohrq reagiu a Administrador por um tópico no fórum
Procurei em todos os fóruns que esse mapa está postado, estão todos com o link quebrado. Vou falar com o slec e ver se ele tem o mapa =) btw, se alguém tiver, posta ai!1 ponto -
Sensacional ... sem mais !1 ponto
-
Remere's Map Editor 7.0 - 10.80
Silveira Crtba reagiu a Administrador por um tópico no fórum
Changelog Versão 10.76 adicionada (NOVO) 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 VERSÃO ATÉ 10.80 ! Versão até 10.71 rev 151 + modificações Versão até 10.55 rev 142 + modificações1 ponto -
Bom galera, sei que o natal acabou de passar, porém esqueci de postar esse system antes... Fiz uma versão 2.0 do meu npc de natal (papai noel). Agora ao invés do bom velhinho entregar diretamente o item, vc recebe uma caixa que ao clicar vc recebe um item 100% aleatorio (dentre os itens que foram programados dentro do script). Funciona assim: o player vai até o papai noel e fala: hi, aí o papai noel fala ho-ho-ho... aí o player responde sim (ou yes) e então o player recebe uma caixa. Ao clicar na caixa, o player recebe um dos itens, que estiverem programados no script, de forma aleatoria. Então vamo lá. Pra adicionar esse system, primeiro vá na pasta data/npc e crie um arquivo chamado Papai Noel.xml e coloque isso dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Papai Noel" script="data/npc/scripts/papai_noel.lua" walkinterval="1500" speed="100" walkradius="2" floorchange="0"> <health max="100" now="100"/> <look type="160" head="0" body="113" legs="94" feet="132" addons="0" mount="0"/> <parameters> <!--MESSAGES--> <parameter key="message_greet" value="HO-HO-HO, |PLAYERNAME| bem-vindo. Voce gostaria de um presente?"/> <parameter key="message_farewell" value="HO-HO-HO, tenha um feliz natal, |PLAYERNAME|."/> </parameters> </npc> Agora vá na pasta data/npc/scripts e crie um arquivo chamado papai_noel.lua e coloque isso dentro: Agora vá na pasta data/actions e adicione essa tag dentro do arquivo actions.xml: <action itemid="11401" event="script" value="giftbox.lua"/> Agora va na pasta data/actions/scripts e crie um arquivo chamado giftbox.lua e coloque isso dentro: local items = { [1]=2160, --ID do item 1 [2]=2157, --ID do item 2 [3]=2121} --ID do item 3 local stor = (11401+os.date("%Y")) --Nao mexa function onUse(cid) if getPlayerStorageValue(cid, stor) ~= 1 then a = math.random(1, #items) doPlayerAddItem(cid, items[a], 1) setPlayerStorageValue(cid, stor, 1) else doPlayerSendCancel(cid, "Voce ja pegou seu presente.") end doPlayerRemoveItem(cid, 11401, 1) return true end E isso é tudo pessoal! Créditos Eu (@Danihcv)1 ponto
