-
Total de itens
2553 -
Registro em
-
Última visita
-
Dias Ganhos
72
Tudo que zipter98 postou
-
[Resolvido] Ajuda para converter sistema para outra base (pokémon)
pergunta respondeu ao kaleudd de zipter98 em Resolvidos
Primeiramente, sempre procure colocar em seus tópicos títulos que sugiram o conteúdo do tópico. Colocando "Script do Zipter98" é muito generalizante, enquanto algo como "Ajuda para converter sistema para outra base (pokémon)" seria bem mais objetivo e talvez atraísse mais pessoas dispostas a ajudar. Para todo caso, alterei o título para você. Também recomendo o uso de spoiler para códigos muito grandes. Troque: doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1) por: doSetCreatureOutfit(cid, {lookType = pokemon + 351}, -1) -
[Resolvido] [Pedido] Spell Pokemon (Outrage)
pergunta respondeu ao Morigan1 de zipter98 em Resolvidos
Já que você não mencionou a base utilizada, irei supor que é PDA. data/lib/pokemon moves.lua: elseif spell == "Outrage" then local config = { outfit = { --["pokemon_name"] = outfit, ["Salamence"] = xxx, }, AOE = { times = 2, --Quantas vezes o golpe AOE será usado. interval = 3000, --Intervalo de tempo, em milésimos de segundo, entre cada golpe AOE. combat = DRAGONDAMAGE, --Elemento. spell = { --Uma tabela deverá ser configurada com a área e efeito da parte com socos, e a outra com a parte do efeito do Draco Meteor. {area = OutrageArea1, effect = xxx}, --{area = área do dano AOE, effect = efeito} {area = OutrageArea2, effect = xxx} }, } } local function doOutrage(cid, times) if not isCreature(cid) then return true end for i = 1, #config.AOE.spell do doMoveInArea2(cid, config.AOE.spell[i].effect, config.AOE.spell[i].area, config.AOE.combat, min, max, spell) end times = times - 1 if times <= 0 then local rounds = math.random(4, 7) rounds = rounds + math.floor(getPokemonLevel(cid) / 35) local ret = {} ret.id = cid ret.cd = rounds ret.check = getPlayerStorageValue(cid, conds["Confusion"]) ret.cond = "Confusion" doCondition2(ret) return true end addEvent(doOutrage, config.AOE.interval, cid, times) end local ret = {} ret.id = cid ret.cd = config.AOE.interval / 1000 * config.AOE.times ret.eff = 0 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) doSetCreatureOutfit(cid, {lookType = config.outfit[getCreatureName(cid)]}, config.AOE.interval * config.AOE.times) addEvent(doOutrage, config.AOE.interval, cid, config.AOE.times) areas.lua: OutrageArea1 = { {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, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 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}, } OutrageArea2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } newStatusSyst.lua, abaixo de: if buff == "Strafe" or buff == "Agility" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 0, 0, 100, a) coloque: elseif buff == "Outrage" then doRaiseStatus(cid, 0, 1.4, 0, a) -
[Resolvido] [PDA] Player Em Pz Usando Ataque
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
Isso aí é derivados. @topic Se possível, poste move1.lua. -
Apesar de mais simples, as novas possuem uma temática que condiz mais com o fórum. Voto nelas.
-
Apenas postando minha versão dos códigos, caso as acima não funcionem. Movevent: local storage = 18597 function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerStorageValue(cid, storage) <= 0 then doPlayerSendCancel(cid, "You're not a VIP player.") doTeleportThing(cid, fromPosition) doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) else doPlayerSendTextMessage(cid, 27, "Welcome to the VIP Area!") --Faltava o parâmetro responsável pela cor da mensagem. doSendMagicEffect(getThingPos(cid), 14) end return true end Action: local storage = 18597 function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, storage) <= 0 then doRemoveItem(item.uid, 1) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 18597) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player") else doSendPlayerCancel(cid, "Voce ja e um Modd Player.") end --Você colocou um end a mais aqui. return true end
-
Basta ler as observações deixadas no código. As configurações que deixei são apenas exemplos. Você pode configurar a quantidade de skill que quiser. Pode adicionar infinitas vocações no código, basta seguir o modelo que deixei. Cada vocação (configurada entre colchetes [ ]) receberá amount pontos nas skills configuradas na tabela skillId. Para ML, a skill deve ser "ml". Para as outras, você confere seus valores e variáveis em 000-constant.lua (dê um CTRL + F por SKILL_CLUB que você encontrará tais variáveis). Novamente: leia as observações e exemplos que você entenderá. Exemplo: [10] = {skillId = {SKILL_CLUB, SKILL_SWORD}, amount = 2}, Assim, a vocação 10 irá receber 2 pontos em club e sword. Sobre seu erro, você deve ter esquecido de copiar a tabela config.
-
local config = { --[vocation_id] = {skillId = {skills}, amount = quantidade}, --Se for magic level, coloque "ml". Se não, confira os valores (ou variáveis) correspondentes a cada skill em 000-constant.lua (data/lib). --Ex.: [1] = {skillId = {SKILL_CLUB}, amount = 10}, [2] = {skillId = {SKILL_CLUB, SKILL_SWORD, SKILL_AXE}, amount = 10}, [4] = {skillId = {"ml"}, amount = 5}, [9] = {skillId = {"ml", SKILL_FIST}, amount = 5}, } function doPlayerUpdateSkill(cid, SKILL, amount) local query = "" if tonumber(SKILL) and SKILL >= 0 and SKILL <= 5 then query = "UPDATE player_skills SET value = value + "..amount.." WHERE player_id = "..getPlayerGUID(cid).. " AND skillid = "..SKILL elseif SKILL == "ml" then query = "UPDATE players SET maglevel = maglevel + "..amount.." WHERE id = "..getPlayerGUID(cid) else return true end db.executeQuery(query) end local storage = 4934 function onUse(cid) local voc_skill = config[getPlayerVocation(cid)] if getPlayerStorageValue(cid, storage) < 1 and voc_skill then setPlayerStorageValue(cid, storage, 1) for i = 1, #voc_skill.skillId do doPlayerUpdateSkill(cid, voc_skill.skillId, voc_skill.amount) end doRemoveCreature(cid, true) else doPlayerSendCancel(cid, "It is empty.") end return true end
-
action [Encerrado] Erro em Goback do Actions Poketibia Ajuda a editalo
tópico respondeu ao kaleudd de zipter98 em Tópicos Sem Resposta
Qualquer coisa, coloque, abaixo de: btype = getPokeballType(item.itemid) esta proteção: if btype == "none" then btype = "normal" end -
action [Encerrado] Erro em Goback do Actions Poketibia Ajuda a editalo
tópico respondeu ao kaleudd de zipter98 em Tópicos Sem Resposta
Você não configurou a nova pokeball na tabela pokeballs (encontrada em algum arquivo da lib. Dependendo do servidor, configuration.lua). -
Ah sim, pensei nisso enquanto escrevia o código, mas parece que esqueci de colocar em prática. Corrigido.
-
[Resolvido] [Pedido] Comando que checa caughts
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
Tópico movido para dúvidas / pedidos resolvidos. -
Erro da distro corrigido.
-
[Resolvido] [Pedido] Comando que checa caughts
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
editado com correção do antigo registro de catches do PDA -
[Resolvido] [Pedido] Comando que checa caughts
pergunta respondeu ao FlamesAdmin de zipter98 em Resolvidos
Troque a função getCatchList de catch system.lua por essa: function getCatchList(cid) local ret = {} for name, info in pairs(newpokedex) do if type(getPlayerStorageValue(cid, info.storage)) == "string" and getPlayerStorageValue(cid, info.storage):find("catch,") then ret[#ret + 1] = name end end return ret end -
9 dias desde o último comentário
-
local catch_config = { --[[ [catch_count] = { --[quantidade_de_catch] = { prize_item = { {itemid = xxx, count = xxx}, --{itemid = ID_do_item, count = quantidade} {itemid = xxx, count = xxx}, --{itemid = ID_do_item, count = quantidade} --etc }, outfit = xxx --Se ganhar outfit, coloque a storage dela (de outfits.xml). Caso contrário, coloque false. }, ]]-- [30] = { --[quantidade_de_catch] = { prize_item = { {itemid = 11639, count = 1}, --{itemid = ID_do_item, count = quantidade} }, outfit = false --Se ganhar outfit, coloque a storage dela (de outfits.xml). Caso contrário, coloque false. }, [100] = { --[quantidade_de_catch] = { prize_item = { {itemid = 11641, count = 1}, --{itemid = ID_do_item, count = quantidade} {itemid = 2160, count = 20}, --{itemid = ID_do_item, count = quantidade} --etc }, outfit = 49101 --Se ganhar outfit, coloque a storage dela (de outfits.xml). Caso contrário, coloque false. }, } local CATCH_STORAGE = 8382 local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function doBuyPokemonWithCasinoCoins(cid, poke) npcHandler:onSellpokemon(cid) end function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function 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 if msgcontains(msg:lower(), "mission") or msgcontains(msg:lower(), "help") then local count, catch, need_catch = #getCatchList(cid) for catch_count, info in pairs(catch_config) do if getPlayerStorageValue(cid, CATCH_STORAGE + catch_count) < 1 then if need_catch then if catch_count < need_catch then need_catch = catch_count end else need_catch = catch_count end end end if not need_catch then return selfSay("You have completed all my quests.") elseif count < need_catch then return selfSay("You need catch "..need_catch.." different pokemons to complete my next task. [Left: "..need_catch - count.." catches]") end catch = catch_config[need_catch] selfSay("Congratulations, take your prizes!") for i = 1, #catch.prize_item do doPlayerAddItem(cid, catch.prize_item.itemid, catch.prize_item.count) end setPlayerStorageValue(cid, CATCH_STORAGE + need_catch, 1) if catch.outfit then setPlayerStorageValue(cid, catch.outfit, 1) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Troque: if(param.count < 5) then param.count = param.count + 1 addEvent(spellCallback, math.random(1000, 3000), param) end por: if(param.count < 5) then param.count = param.count + 1 addEvent(function() if not isCreature(param.cid) then return true end spellCallback(param) end, math.random(1000, 3000)) end
-
Sim. Use este código, ao invés do que disponibilizei no tópico: local megaEvoClans = { --[mega_stone_id] = {"clan_name", "clan_name", etc}, [91912] = {"Volcanic", "Wingeon"}, [91913] = {"Seavell"}, --etc, } if megaEvoClans[isMega] then if not isInArray(megaEvoClans[isMega], getPlayerClanName(cid)) then return doPlayerSendCancel(cid, "You can't mega evolve this pokemon.") end end
- 166 respostas
-
- mega stone
- megevolution
-
(e 1 mais)
Tags:
-
if(Player* player = static_cast<Player*>(creature)) { if(player->getVocationId() == VOCATION_ID && !hasCondition(CONDITION_INFIGHT)) // Troque VOCATION_ID pela vocação do Obito. fpp.clearSight = false; }
-
^ um getSpectators ou loop iterando as coordenadas da posição superior esquerda e inferior direita da área seria mais prático (principalmente o primeiro método, que também é o mais fácil). Mas w/e, globalstorage também funciona.
-
Como estou em semana de provas, é meio difícil ter tempo para scriptear. Entretanto: -Erro da talkaction: corrigirei quando possível. -Erro ao matar o dono do castelo: corrigido. -Tile: já enviei (é o moveevent).
-
Este erro que você citou não aconteceu comigo, mas w/e. E sim. Basta colocar isso: setPlayerStorageValue(cid, 9181, os.time() + 5) Acima de: doAddCondition(cid, invisibility) E para bloquear o uso de spells, você tem duas opções: fazê-lo diretamente nas sources ou em Lua mesmo, adicionando a seguinte condição abaixo do callback onCastSpell de outras magias: if getPlayerStorageValue(cid, 9181) > os.time() then return doPlayerSendCancel(cid, "Wait "..getPlayerStorageValue(cid, 9181) - os.time().." second(s) to use this spell again.") end
-
@narutomaniacos O efeito de risco não é algo proposital do código. Muito provavelmente é algum problema do seu servidor. Se preferir, pode deixar sem efeito configurado para que os riscos simulem um vulto do jogador. @Animal Pak Se a próxima posição de teleporte do jogador não for andável, o código vai rodar toda a tabela a procura de uma posição viável. Se não encontrá-la (o que significa que esta seria a 4ª posição - logo, a última), o efeito da spell acaba. Testei a magia algumas vezes e, em todas, ela funcionou perfeitamente.
-
Qual foi o efeito que você configurou? O de sangue ou o de riscos pretos?
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.