Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 05/11/16 em %
-
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
-
Será possível o uso de opcodes em servidores sem o código fonte? Agora é sim com esse novo mod que eu fiz e disponibilizarei à vocês! Conversação de servidor para client! Muito fácil de usar e de instalar! Sem mais delogas, vamos logo ao conteúdo! 1. Crie um arquivo com o nome ModOpcodes.lua na pasta lib do seu servidor; 2. Coloque o seguinte código dentro dele: -- By Hopus -- function doPlayerSendModOpcode(cid, port, param) doPlayerSendCancel(cid, '#<=>#ModOpcode#<=>#'..port..'#<&>#'..param) end 3. Agora coloque a pasta mod_opcodes na pasta modules de seu client; 4. Abra o arquivo textmessage.lua, localizado na pasta modules/game_textmessage de seu client; 5. Procure esse código: elseif string.find(text, '12&,') then modules.cdBar.cdBar.toolTipChange(text) return end 6. Adicione, logo abaixo, essa linha: if text:find('#<=>#ModOpcode#<=>#') then return end 7. Opcodes instalados com sucesso! Como usar? Simples! [Obs.: A função a ser conectada deve ter UM PARÂMETRO, seja ele nomeado como quiser.] Bom, é isso... Espero que seja de grande utilidade e ajude muita gente! Abraços e até a próxima! ^^ [Obs.: Seria legal criar uma área no site exclusiva para otclients!]1 ponto
-
Spr e dat da pxg 07/05/2016
LilDanonee reagiu a MUNlZ por um tópico no fórum
AQUI PESSOAL O LINK DA SPR E DAT ATUAIS DA PXG Versão 854 V1 - http://www.mediafire.com/download/ukmjw4j85l8rc3d/pxg_maio_2016.zip Versão 854 V3 - http://www.mediafire.com/download/ykz4oqsc9sxydk8/pxg maio 2016.zip Lembrem-se de usar o object builder mais atual e marcarem como estendido e transparência. =D1 ponto -
Olá galera eu estou criando um mapa para base Pokemon Dash v6 reupload então eu resolvi atualizar as spr e dat com as novas Sprites, sprites antigas que ja havia foi colocado, as novas por cima atualizando elas, e foi adicionado as novas sprites pxg item, outfit, effect e etc. Notas Download e scan1 ponto
-
(resolvido) Aumentar Limite de Efeitos FALHA
samlecter reagiu a Developer Berg por uma questão
cara eu conseguir fazer tudo normal, eu tenho um pouco de experiencia com lua e com sources, aqui foi tudo normal, já que vc quebrou o galho do client lá quebrado pra mim kk, se quiser te passo a minhas sources que compilei, ela tá com 370 effects, mas já está com os effects prolongado, dai é só vc seguir a forma e aumentar de acordo com o Const.h, se quiser é só falar que ponho pra download, aproveitar mando o dono do tópico do Bolz open source atualizar a source com os effects estendidos.1 ponto -
Spr e dat da pxg 07/05/2016
Developer Berg reagiu a MUNlZ por um tópico no fórum
São todas, spr original da pxg =D1 ponto -
1 ponto
-
1 ponto
-
Spr e dat da pxg 07/05/2016
Developer Berg reagiu a MUNlZ por um tópico no fórum
Não sei mas to dando umas olhada aqui tirando print pra postar no topico, se eu achar te aviso.1 ponto -
1 ponto
-
1 ponto
-
1 ponto
-
1 ponto
-
https://gist.github.com/dalvorsn/031ddf3c24fa2181cdd966594e95f3a0/revisions "escondendo" pela altura :>1 ponto
-
1 ponto
-
No creaturescript, abaixo de: local ballName = getItemAttribute(thisball.uid, "poke") coloque: if ballName:find("Mega") then ballName = megaEvolutions[getItemAttribute(thisball.uid, "megaStone")][1] doItemSetAttribute(thisball.uid, "poke", ballName) end Na action, remova: 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, abaixo de: if cd > 0 then setCD(item.uid, "blink", 0) end coloque: if getItemAttribute(item.uid, "poke"):find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) end end1 ponto
-
Aparecer X Y Z no minimap
Survivor98130 reagiu a drakylucas por um tópico no fórum
em otclient-master/modules/game_minimap altere o arquivo minimap.otui pra isso: http://pastebin.com/Dr4RmvRL e também altere o arquivo minimap.lua para isso: http://pastebin.com/gf8ZDAp2 Atenção com os espaços.. copie corretamente. de reload all e abra o minimap PS: Nao funciona com minimap full (idk why)1 ponto