-
Total de itens
2553 -
Registro em
-
Última visita
-
Dias Ganhos
73
Tudo que zipter98 postou
-
<globalevent name="monster1" type="start" event="script" value="nome_do_arquivo.lua"/> <globalevent name="monster2" interval="3600" event="script" value="nome_do_arquivo.lua"/>
-
Tem a maneira mais prática, que envolve apenas o onSpawn. Entretanto, você precisaria registrar o evento no arquivo XML de todos os monstros do jogo. (creaturescript) function backToPos(cid, pos) if isCreature(cid) then doTeleportThing(cid, pos) addEvent(backToPos, 60 * 60 * 1000, cid, pos) end end function onSpawn(cid) backToPos(cid, getThingPos(cid)) return true end Se achar muito cansativo, há uma outra maneira, que apesar de gastar muita memória no processo, você só precisará registrar 2 tags. (globalevent) function onStartup() for _, m in pairs(getMonstersOnline()) do local value = ":"..getThingPos(m).x.."/"..getThingPos(m).y.."/"..getThingPos(m).z setPlayerStorageValue(m, 9182, value) end return true end function onThink() for _, m in pairs(getMonstersOnline()) do local t = getPlayerStorageValue(m, 9182):sub(2):explode("/") doTeleportThing(m, {x = tonumber(t[1]), y = tonumber(t[2]), z = tonumber(t[3])}) end return true end
-
Se você instalar essas duas funções nas sources, eu faço o código em Lua.
-
Isso é bem simples, porém é necessário ter as sources do servidor e instalar as funções onSpawn (tem aqui no fórum, só procurar) e getMonstersOnline (o código desta função tem tanto na OTLand quanto no Tibia King).
-
Não se preocupem, fazer o que vocês querem é bem simples. Como estou ocupado no momento, mais tarde farei o código para vocês. Pelas sources, é necessário apenas instalar aquele creatureevent que citei (onSpawn).
-
Provavelmente você esqueceu de configurar alguma coisa (ou configurou errado) na tabela config. Se possível, poste como ficou seu código configurado.
-
data/creaturescripts/scripts, geralmente spawn.lua. Você deve registrar o evento no arquivo XML do(s) monstro(s). Entretanto, em servidores de pokémon, os pokémons shinies são gerados pelo script apenas adicionando o prefixo "Shiny " no nome. No seu caso, este método não seria possível.
-
Claro, seria quase o mesmo processo. Porém, neste caso, você teria que configurar uma tabela indicando os monstros e seus respectivos "shinies". Já adianto a ambos: será necessário instalar nas sources o creatureevent onSpawn. Link para a versão 0.3.6 Link para a versão 0.4
-
OK. Você saberia dizer se há alguma tabela no seu servidor (em algum arquivo da lib) em que os pokémons são configurados para alguma coisa (por exemplo, status e spells, como no PDA)? Se sim, peço que diga o nome desta tabela. Assim, não haverá margens de erros na criação do shiny. Caso contrário, eu posso criar uma função para verificar se o monstro existe (meio gambiarra, mas enfim).
-
Só que o seu OT é outra base.
- 166 respostas
-
- mega stone
- megevolution
-
(e 1 mais)
Tags:
-
Você tem as sources do seu servidor?
-
Não se esqueça de registrar o evento em login.lua. local config = { vocations = {1, 2, 3, ...}, --IDs das vocações. time = 1, --Exhaust, em minutos. hpPercent = 20, --Porcentagem de vida. toPos = {x = x, y = y, z = z}, --Para onde será teleportado. } function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and isPlayer(cid) and isInArray(config.vocations, getPlayerVocation(cid)) then if getPlayerStorageValue(cid, 18182) < os.time() and getCreatureHealth(cid) <= getCreatureMaxHealth(cid) * config.hpPercent / 100 then doTeleportThing(cid, config.toPos) setPlayerStorageValue(cid, 18182, os.time() + config.time * 60) end end return true end
-
Eu sinceramente não pretendia adaptar o código para outras bases, mas enfim. Sobre o goback, não encontrei nenhum erro que pudesse estar causando isso. Você colocou e configurou a tabela corretamente em configuration.lua? E use este look:
- 166 respostas
-
- mega stone
- megevolution
-
(e 1 mais)
Tags:
-
pedido Sistema de dominar cidades - Vodkart
tópico respondeu ao warriorfrog de zipter98 em Lixeira Pública
O problema, aparentemente, não está no código do monstro, e sim na tag dele em monsters.xml. Posso ver como você colocou? -
@Taiger Se possível, poste tanto o look.lua e o goback.lua. Escrevi o sistema para o PDA 1.9 do Slicer, sem modificações adicionais. Logo, sistemas como o de ícones pode causar problemas.
- 166 respostas
-
- mega stone
- megevolution
-
(e 1 mais)
Tags:
-
Hm, tenta o seguinte: Troque: if table ~= "" then min = getSpecialAttack(cid) * table.f * 0.1 --alterado v1.6 max = min + (isSummon(cid) and getMasterLevel(cid) or getPokemonLevel(cid)) if spell == "Selfdestruct" then min = getCreatureHealth(cid) --alterado v1.6 max = getCreatureHealth(cid) end if not isSummon(cid) and not isInArray({"Demon Puncher", "Demon Kicker"}, spell) then --alterado v1.7 doCreatureSay(cid, string.upper(spell).."!", TALKTYPE_MONSTER) end if isNpcSummon(cid) then local mnn = {" use ", " utilize ", " "} local use = mnn[math.random(#mnn)] doCreatureSay(getCreatureMaster(cid), getPlayerStorageValue(cid, 1007)..","..use..""..doCorrectString(spell).."!", TALKTYPE_MONSTER) end else print("Error trying to use move "..spell..", move not specified in the pokemon table.") end por: if spell ~= "Mega Evolution" then if table ~= "" then min = getSpecialAttack(cid) * table.f * 0.1 --alterado v1.6 max = min + (isSummon(cid) and getMasterLevel(cid) or getPokemonLevel(cid)) if spell == "Selfdestruct" then min = getCreatureHealth(cid) --alterado v1.6 max = getCreatureHealth(cid) end if not isSummon(cid) and not isInArray({"Demon Puncher", "Demon Kicker"}, spell) then --alterado v1.7 doCreatureSay(cid, string.upper(spell).."!", TALKTYPE_MONSTER) end if isNpcSummon(cid) then local mnn = {" use ", " utilize ", " "} local use = mnn[math.random(#mnn)] doCreatureSay(getCreatureMaster(cid), getPlayerStorageValue(cid, 1007)..","..use..""..doCorrectString(spell).."!", TALKTYPE_MONSTER) end else print("Error trying to use move "..spell..", move not specified in the pokemon table.") end end Sobre o goback, se possível, poste o código aqui. E aparece algum erro na distro relacionado a este arquivo (quando você tenta usar o pokémon mega)?
- 166 respostas
-
- mega stone
- megevolution
-
(e 1 mais)
Tags:
-
Quais bases vocês estão utilizando?
- 166 respostas
-
- mega stone
- megevolution
-
(e 1 mais)
Tags:
-
@Zet0N0Murmurouu Se possível, poste a linha 180 de pokemon moves.lua. PS: Você seguiu todos os passos corretamente, certo? @Taiger function doUpdateMoves(cid) if not isCreature(cid) then return true end local summon = getCreatureSummons(cid)[1] local ret = {} table.insert(ret, "12&,") if not summon then for a = 1, 12 do table.insert(ret, "n/n,") end doPlayerSendCancel(cid, table.concat(ret)) addEvent(doUpdateCooldowns, 100, cid) return true end if isTransformed(summon) then --alterado v1.9 moves = movestable[getPlayerStorageValue(summon, 1010)] else moves = getCreatureNameWithProtect(summon) == "Smeargle" and getSmeargleMoveTable(cid) or movestable[getCreatureNameWithProtect(summon)] end for a = 1, 12 do local b = getNewMoveTable(moves, a) if b then table.insert(ret, (b.name:find("Sketch") and "Sketch" or b.name)..",") else local mEvolve if 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 end end if not mEvolve then table.insert(ret, "n/n,") end end end doPlayerSendCancel(cid, table.concat(ret)) addEvent(doUpdateCooldowns, 100, cid) end
- 166 respostas
-
- mega stone
- megevolution
-
(e 1 mais)
Tags:
-
[Resolvido] [Pedido] Heavy Slam e Passiva Iron Body
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
As configurações e atributos no programa, não sei dizer. Entretanto, pegue como base um banco (porém, neste caso, a sprite será "invisível"). O necessário é que o jogador possa passar por cima do item e sofrer uma elevação. -
[Resolvido] [Pedido] Heavy Slam e Passiva Iron Body
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
Ops, agora vi o erro. Falta de atenção minha, desculpe. Corrigido. -
[Resolvido] [Pedido] Heavy Slam e Passiva Iron Body
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
Posso ver como ficou a configuração da tabela? E ela está em configuration.lua, certo? Sobre o pulo, é como eu disse: aquele item terá de ser criado. -
[Resolvido] [Pedido] Heavy Slam e Passiva Iron Body
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
Iron Body: exp2.0.lua: Em baixo de: if damageCombat == GROUNDDAMAGE then if isInArray(specialabilities["levitate"], getCreatureName(cid)) then valor = 0 end end coloque: if getCreatureName(cid) == ironBody.name and getPlayerStorageValue(cid, 2818) < os.time() and math.random(1, 100) <= ironBody.chance then doSetCreatureOutfit(cid, {lookType = ironBody.outfit}, ironBody.duration * 1000) setPlayerStorageValue(cid, 9658783, 1) setPlayerStorageValue(cid, 2818, os.time() + ironBody.cooldown) addEvent(function() if isCreature(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 9658783, -1) end end, ironBody.duration * 1000) end Em goback.lua (actions), abaixo de: doCreatureSay(cid, mgo, TALKTYPE_SAY) coloque: if pokename == ironBody.name then doSetCreatureOutfit(pk, {lookType = ironBody.outfit}, ironBody.duration * 1000) setPlayerStorageValue(pk, 9658783, 1) setPlayerStorageValue(pk, 2818, os.time() + ironBody.cooldown) addEvent(function() if isCreature(pk) then doRemoveCondition(pk, CONDITION_OUTFIT) setPlayerStorageValue(pk, 9658783, -1) end end, ironBody.duration * 1000) end Depois, em configuration.lua: ironBody = { name = "Bronzong", --Nome do pokémon. outfit = xxx, --Outfit. duration = 5, --Duração. chance = 35, --Chance, em %, de ativar a passiva. cooldown = 15, --Cooldown para usá-la novamente. } E você tem certeza absoluta que o pulo do Bronzong não é um efeito? Conferiu no client da PxG? Se for literalmente um salto, já imagino como foi feito. E, assim, adianto: será necessária a criação de um item invisível, com a propriedade do jogador poder passar por cima dele e sofrer uma elevação (como os bancos e parcels, sabe?). -
[Resolvido] [Pedido] Heavy Slam e Passiva Iron Body
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
O Iron Body pode ser ativado quando, exatamente? Parece ser diferente das outras passivas, já que no segundo gif ele foi ativado sem o Bronzong receber dano. -
[Resolvido] [Pedido] Heavy Slam e Passiva Iron Body
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
1ª spell: Isso é basicamente um Iron Defense, só que em forma de passiva, não é? 2ª spell: Saberia dizer se esse "pulo" do pokémon é um effect, outfit ou o pokémon literalmente pula? E os oponentes na área são logo teleportados para trás ou são empurrados? -
[Resolvido] ajuda com magia unown e air vortex
pergunta respondeu ao clebao666 de zipter98 em Resolvidos
Troque o código do Unown Help por esse: elseif spell == "Unown Help" then local config = { summonPoke = "Unown", health = 5, --% de HP (baseada na HP máxima do pokémon) tirada do Unown Legion. } if isSummon(cid) then local pid = getCreatureMaster(cid) doSummonMonster(pid, config.summonPoke) local newPoke = getCreatureSummons(pid)[#getCreatureSummons(pid)] doTeleportThing(newPoke, getClosestFreeTile(newPoke, getThingPos(cid), false)) adjustStatus(newPoke, getPlayerSlotItem(pid, 8).uid, true, true, true, true) end Troque: function adjustStatus(pk, item, health, vite, conditions) por: function adjustStatus(pk, item, health, vite, conditions, unown) Acima de: setPlayerStorageValue(pk, 1007, nick) coloque: if unown then nick = "Unown" end Acima de: if isSummon(pk) and conditions then --alterado v2.5 daki pra baixo!! coloque: if unown then return true end
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.