
linsoul
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
linsoul recebeu reputação de ZoR em [C++] Color Name [DigiWo]Abaixo de:
if(g_game.getFeature(Otc::GameBlueNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0x66, 0xcc, 0xff); Adiciona:
if(!g_game.getFeature(Otc::GameBlueNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0x66, 0xcc, 0xff); // EDITA AQUI A COR. (Lembrando que só ficará com essa cor caso não tenha/esteja desativado "GameBlueNpcNameColor" no otc
Pra checar se é npc: isNpc(), olha o exemplo acima, checar se é monstro/pokemon: isMonster()
E se quiser trocar a cor de algum ou alguns npc's específicos em vez de todos, só fazer como explicado no post adicionando "&& isNpc()" e desativando/tirando o GameBlueNpcNameColor no otc
Em vez disso:
if (m_name == "Banana Fight"){ Deixa assim:
if (m_name == "Banana Fight" && isNpc()){
Se quiser mudar somente de monstros, troca:
if (m_name == "Banana Fight"){
Por:
if (m_name == "Banana Fight" && isMonster()){
OBS: Não testei!!
-
linsoul deu reputação a LeoTK em [Tuto Básico] Adicionando novas outfits (Detalhado)Fala galera eu recentemente me aventurei a adicionar uma nova outfit no servidor e com addon e descobri que não tinha muitos conteúdos falando sobre isso detalhadamente com imagens etc... então resolvi pegar tudo o que aprendi e vou explicar a vocês detalhadamente passo a passo com as ferramentas que temos hoje no caso o object builder.
Programas Usados:
Paint
Object Builder
Explicando jogo de cores a serem adicionadas e como adicionar
Todo o cabelo
Blusa e Braços
Pernas
Botas e detalhes do corpo
1º- Outift Toda Branca
obs: É necessário a outfit pintada toda de branco por causa da paleta de cores quando for trocar as cores e a outfit estiver colorida ao mudar a cor vai mesclar uma cor com a outra e quando mudar para a cor branca vai mudar para a cor que estava então caso o cabelo for amarelo quando adicionar no cliente e for na paleta de cores in-game e mudar para a cor branca vai ficar amarelo o cabelo....
Exemplo:
Configurações padrão para criar a nova outfit
obs: Única coisa que notei referente a essas configurações é que se for diferente disso ao adicionar a sprite do addon ela buga....
2º- Adicionando as áreas que vão mudar de cor
Exemplo:
Para criar essa parte colorida basta pegar as sprites normais da outfit e pintar de rosa as áreas do rosto das mãos caso aparecer dedos etc... remover também tem que sobrar apenas as áreas das roupas que vai mudar de cor...
obs: caso quiser que algum detalhe da roupa continue sem mudar de cor padrão basta não pintar de nenhuma cor seja amarelo na parte da cabeça, vermelho na parte do busto, verde parte das perna e nem em azul a parte das botas e detalhes do corpo todo.
3º- Adicionando as áreas que vão mudar de cor na outfit
Quando você tiver criado o slot com as configurações padrões acima vai ter a opção Blend Layer nas opções de aparence no object builder logo abaixo onde adiciona as sprites
Exemplo:
Ao selecionar a caixa a oufit adicionada vai sumir então você vai adicionar as sprites da sua oufit colorida
Exemplo:
Após adicionar tudo certinho como se fosse uma nova outfit basta salvar e compilar.
4º- Adicionando a nova outfit no Set Outfit
Mesmo tendo adicionado no cliente ainda não é possível selecionar a nova outfit na opção Set Outfit dentro do jogo para habilitar essa opção você vai ter que ir na pasta. pasta do seu servidor/data/xml/outfits
obs: pode váriar de servidor para servidor como vai estar mas essa linha de script é padrão.
<outfits> <outfit id="1" premium="0"> <list type="female" looktype="136" name="Citizen"/> <list type="male" looktype="128" name="Citizen"/> </outfit> Tem também a versão que precisa de storage para ser usada
só vai liberar a outfit ou addon para o player que tiver a storage configurada
<?xml version="1.0"?> <outfits> <outfit id="1" quest="9785"> <list gender="0" lookType="1288" name="Test"/> <list gender="1" lookType="1288" name="Test"/> </outfit> </outfits> ou também pode ser adicionado com a linha premium ficando assim
<outfits> <outfit id="1" premium="0" quest="9785"> <list type="female" looktype="136" name="Citizen"/> <list type="male" looktype="128" name="Citizen"/> </outfit> obs:
Premium = 0 free
Premium = 1 premium
0 contas free account podem usar a outfit
1 apenas contas premium podem usar a outfit
5º-Explicando Configuração das linhas
Em ID é o id da outfit dentro do script outfit.xml então basta ir no ultimo adicionado e seguir a contagem se o ultimo for 44 o próximo é 45 e assim vai
Quest é a storage necessária para o player poder liberar a outfit no set outfit
Female looktype é o id da outfit da mulher no object builder no caso do citizen a outfit da mulher é 136 e o nome que vai aparecer no set outfit da outfit é citizen
Male looktype é o id da outfit do homem no object builder no caso do citizen a outfit do homem é 128 e o nome também é citizen
obs: Caso a outfit ser a mesma para mulher e homem basta colocar o mesmo looktype nos dois e colocar o mesmo nome da outfit.
--------- ENCERRAMENTO ---------------
Se gostou curta
Se o tópico bombar trago a parte de adicionar os addons bem explicado nesse mesmo tópico
By: Brunds
-
linsoul deu reputação a Absolute em [Eject System] Expulsar Player Inativo da HouseSalve galerinha do TK.
Hoje vim trazer um script muito útil e buscado hoje em dia nos otservers, é o sistema de !eject.
Como funciona ?
Caso o player fica X dias sem logar (configurável) qualquer outro jogador pode chegar na porta da house dizendo o comando !eject, então a house ficará sem dono e em seugida o player poderá compra-la normalmente, dizendo !buyhouse.
É um sript simples e que poderá dar lugar e novas houses a jogadores novos, expulsando os jogadores que não logam mais no seu servidor.
Nota: o script é vendido em uma "empresa" de open tibia onde estou colocando os créditos , disponibilizando aqui minha adaptação e o scrpit para vocês, achou errado? não gostou? ENTÃO COMPRA LÁ =p
Vamos ao que interessa;
Abra sua pasta talkactions/scripts e dentro dela crie um arquivo .lua com o nome de: expulse_house.lua e dentro coloque:
function onSay(cid, words, param) local position = getPlayerPosition(cid) if getPlayerLookDir(cid) == 0 then positions = {x=position.x, y=position.y-1, z=position.z} elseif getPlayerLookDir(cid) == 1 then positions = {x=position.x+1, y=position.y, z=position.z} elseif getPlayerLookDir(cid) == 2 then positions = {x=position.x, y=position.y+1, z=position.z} elseif getPlayerLookDir(cid) == 3 then positions = {x=position.x-1, y=position.y, z=position.z} end if getHouseFromPos(positions) == false then doPlayerSendTextMessage(cid, 27, "Voce precisa estar na frente a porta da casa para usar o comando.") return true end local days = 5*24*60*60 local own = getHouseOwner(getHouseFromPos(positions)) local qry = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = "..own) if(qry:getID() ~= -1) then last = tonumber(qry:getDataInt("lastlogin")) if last < os.time() - days then setHouseOwner(getHouseFromPos(positions), NO_OWNER_PHRASE,true) doPlayerSendTextMessage(cid, 27, "A Casa agora esta sem dono, você ou outro jogador pode compra-la") end if last > os.time() - days then doPlayerSendTextMessage(cid, 27, "O proprierário desta casa ainda está ativo no servidor, tente outra casa.") end end return true end Pós ter feito isto, abra o seu arquivo talkactions.xml e coloque debaixo de uma linha qualquer a seguinte linha:
<talkaction words="!eject" event="script" value="expulse_house.lua"/> Pronto. basta o player chegar na porta da casa e dizer !eject, caso o jogador esteja a 5 dias sem logar, os items do antigo dono irão para o DEPOT e a casa ficará sem dono.
@Configuração do script:
local days = 5*24*60*60 Onde está o número 5 é o tanto de dias que o player tem que ficar sem logar para outro jogador executar o comando.
Para alterar para 3 dias, ficaria como exemplo:
local days = 3*24*60*60 E assim sucessivamente.
Qualquer dúvida não deixe de me comunicar, estarei disposto a ajuda-lo.
Créditos:
Keilost
-
linsoul deu reputação a omarwsk em Pokemon HuatsonOT (DXP) Custom lvl sysHello, i come here to share my own version of the opensource dxp3 with too many new features
Custom level system Custom Stat System Smeargle System Kecleon System Mega Stone system Outland zone lvl +150 Nightmare Zone (open pvp zone, no revives) lvl +300 Held System (elemental added) Tokens Machine !invite fixed on the source (need to activate on talkactions)
Here are some Prints
Share Exp with other pokes of your same team
Mega stones looted by normal pokes with custom loot system (can check on the dex)
New 3 quests untested and without pokes inside, only bosses and rewards on chests
Known Bugs
Pokes need to be included (have sprite on the client)
Scans
Download Links
Use my database included on the links!!
Credits
All mentioned on the original post of DXP Me (Omarwsk)
If you want to support me and get some custom help, you can donate me some items on PXG red server
-
linsoul deu reputação a samlecter em [8.54] PokeCyan [ Editado By Senhor] Atualizado 3.0 2016Pega a action desse item, procura lá o scrip dessa action e exclui , caso outros itens possuam a mesma action q essa q da gm, excluindo a action nn vão mais dar gm, dps vc exclui o item do jogo por precaução, e procura no actions.xml pra ver se tem algo com essa action se tiver exclui também, o problema é que tem arvores e rochas q dão outros itens como dinheiro, master ball etc
-
linsoul deu reputação a samlecter em [8.54] PokeCyan [ Editado By Senhor] Atualizado 3.0 2016Tem um que você já deve saber, na grade do pvp, assim q entrar no pvp vai pra cima, tem umas grades, da look em todas até achar a que tem action e exclui ela
-
linsoul deu reputação a samlecter em [8.54] PokeCyan [ Editado By Senhor] Atualizado 3.0 2016Rocha em lavender, perto do mark, arvores em fuchsia e perto dos lutadores de saffron
-
linsoul deu reputação a samlecter em [System] Pontos "P" Points SystemÓtimo tutorial, ainda colocou as funções pra usar em um npc
Eu queria em vez do player receber esse "point", receber outra coisa, exemplo: possuo uma moeda no meu ot chamada event point, adquirida em eventos,quests etc, existe npcs que vendem itens por event points e tal, pode me dizer onde altero para o player receber em vez desses pontos, o event point? OBS: event point é um iten, creio que os pontos do seu script não aparecem na mochila hehe
-
linsoul deu reputação a samlecter em [Pedido] Premiaçao por tempo onlineVlw mano, esse sistema ai é até melhor do que eu queria, você sabe adaptar algumas coisas? eu até sei adicionar as funçoes para que npcs vendam itens cobrando esses pontos, mas queria que ao invés de receber esses pontos ao ficarem online, receberem algum item, pensei em quem ficar online "x" horas receber "x" event points ( uma moeda no meu ot adquirida em eventos e quest que serve pra trocar por itens e um npc ) , id dela é 2145, é um item que fica no mochila diferente desses pontos.
-
linsoul deu reputação a samlecter em Addon System FUNCIONAL 2015/2016Está funcionando normalmente? eses numeros ai: 23,1 são as linhas, olha o addon.lua e vê se ta correto, olha a linha 1 e 23 em especial, vê se nn apagou algo como uma virgula ou uma letra
-
linsoul deu reputação a samlecter em Addon System FUNCIONAL 2015/2016local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, ["Jynx"] = 17, --alterado v1.5 ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, } function onUse(cid, item, frompos, item2, topos) if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 << return true end local ballName = getItemAttribute(item.uid, "poke") local btype = getPokeballType(item.itemid) local usando = pokeballs[btype].use local effect = pokeballs[btype].effect if not effect then effect = 21 end unLock(item.uid) --alterado v1.8 if item.itemid == usando then if getPlayerStorageValue(cid, 990) == 1 then -- GYM doPlayerSendCancel(cid, "Você não pode retornar seu Pokémon durante uma batalha de ginásio.") return true end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then doPlayerSendCancel(cid, "You can't do that while is controling a mind") return true --alterado v1.5 end if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "Seu Pokémon desmaiou.") return true end end local cd = getCD(item.uid, "blink", 30) if cd > 0 then setCD(item.uid, "blink", 0) end local z = getCreatureSummons(cid)[1] if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then return true end doReturnPokemon(cid, z, item, effect) elseif item.itemid == pokeballs[btype].on then if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "Coloque a Pokébola no slot correto!") return TRUE end local thishp = getItemAttribute(item.uid, "hp") if thishp <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "Seu Pokémon desmaiou.") return true end end local pokemon = getItemAttribute(item.uid, "poke") if not pokes[pokemon] then return true end ----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto --------------------------------- if not isInArray({5, 6}, getPlayerGroupId(cid)) then local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) local low = {} local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} if #balls >= 1 then for _, uid in ipairs(balls) do local nome = getItemAttribute(uid, "poke") if not isInArray(lowPokes, pokemon) and nome == pokemon then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") else if nome == pokemon then table.insert(low, nome) end end end end if #low >= 3 then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!") end end --------------------------------------------------------------------------------------------------------------------------------------------------- local x = pokes[pokemon] local boost = getItemAttribute(item.uid, "boost") or 0 if getPlayerLevel(cid) < (x.level+boost) then doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.") return true end ---------------------------- Sistema pokes de clan -------------------------------------- local shinysClan = { ["Shiny Fearow"] = {4, "Wingeon"}, ["Shiny Flareon"] = {1, "Volcanic"}, ["Shiny Vaporeon"] = {2, "Seavel"}, ["Shiny Jolteon"] = {9, "Raibolt"}, ["Shiny Hypno"] = {7, "Psycraft"}, ["Shiny Golem"] = {3, "Orebound"}, ["Shiny Vileplume"] = {8, "Naturia"}, ["Shiny Nidoking"] = {5, "Malefic"}, ["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4 } if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) then --alterado v1.9 \/ if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!") return true elseif getPlayerClanRank(cid) ~= 5 then doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!") return true end end -------------------------------------------------------------------------------------- doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] if not isCreature(pk) then return true end ------------------------passiva hitmonchan------------------------------ if isSummon(pk) then --alterado v1.8 \/ if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then if not getItemAttribute(item.uid, "hands") then doSetItemAttribute(item.uid, "hands", 0) end local hands = getItemAttribute(item.uid, "hands") doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1) end end ------------------------------------------------------------------------- ---------movement magmar, jynx------------- if EFFECTS[getCreatureName(pk)] then markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) end -------------------------------------------------------------------------- if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited local left = getItemAttribute(item.uid, "transLeft") local name = getItemAttribute(item.uid, "transName") if left and left > 0 then setPlayerStorageValue(pk, 1010, name) doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn")) doItemSetAttribute(item.uid, "transBegin", os.clock()) else setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto") --edited end end if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, true, true) doAddPokemonInOwnList(cid, pokemon) doTransformItem(item.uid, item.itemid+1) local pokename = getPokeName(pk) --alterado v1.7 local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename) doCreatureSay(cid, mgo, TALKTYPE_SAY) doSendMagicEffect(getCreaturePosition(pk), effect) if useOTClient then doPlayerSendCancel(cid, '12//,show') --alterado v1.7 end -- Adicionado \/ 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 cima desse else else doPlayerSendCancel(cid, "Seu Pokémon desmaiou.") end if useKpdoDlls then doUpdateMoves(cid) end return true end
-
linsoul deu reputação a samlecter em Ensinando colocar foto na Cd_Bar em novos ataquesCaso esteja na área errada, mova por favor!
Esse tutorial é pra quem não sabe como adicionar uma imagem para a spell da Cd_Bar !
Caso seu OT possua um ataque/magia sem a foto na Cd_Bar/Move_Bar como na imagem abaixo:
:
Faça o Seguinte:
1º - Vá na pasta do Cliente , modules, e procure pela pasta Cd_bar ou game_pokemoves, ouuu pesquise por .png e aparecerá todas imagens .png, clique em uma com botão direito e abra o local do arquivo.
2º - Nesta pasta com as imagens das spells na move_bar, vc colocará 2 imagens, uma com fundo preto e branco com o nome da spell criada_off e uma com fundo colorido com nome da spell criada_on ( é só olhar o exemplo das outras )
Exemplo: Criei a Spell Dragon Flight, copiei 2 imagens desta pasta, uma on e uma off, e renomeei para Dragon Flight_on e Dragon Flight_off
Se Ajudei, Rep+
-
linsoul deu reputação a samlecter em Addon System FUNCIONAL 2015/2016Aki também aparece a mesma coisa ao usar o addon, porem não interfere em nada, acho que isso acontece, pq fiz uma alteração, para não aparecer esse erro teria que adicionar 2 linhas, return false e return true, porém ao fazer isso, a Cd Bar não ia aparecer no pokemon com addon
-
linsoul deu reputação a samlecter em Como colocar foto do ataque Cd bar OTClient PoketibiaQue bom que ajudei, tinha procurado como resolver e não achei aki no TK, dai um amigo meu que tem um OT me explicou, resolvi ensinar já que não achei ninguém explicando
-
linsoul deu reputação a samlecter em Como colocar foto do ataque Cd bar OTClient Poketibia1- Vá na pasta do Cliente, modules, e procure pela pasta Cd_bar ou game_pokemoves, ouuu pesquise por .png e aparecerá todas imagens .png, clique em uma com botão direito e abra o local do arquivo.
2- Nesta pasta com as imagens das spells na move_bar, vc colocará 2 imagens, uma com fundo preto e branco com o nome da spell criada_off e uma com fundo colorido com nome da spell criada_on ( é só olhar o exemplo das outras )
Exemplo: Criei a Spell Dragon Flight, copiei 2 imagens desta pasta, uma on e uma off, e renomeei para Dragon Flight_on e Dragon Flight_off
Se Ajudei, Rep+
-
linsoul deu reputação a samlecter em [Pedido] Perfect addon systemNão conseguiu pq os que tinham aki são todos incompletos, não ensinam as alterações que tem q fazer no goback, some functions, catch system...
Fiz um post ontem explicando tudo, se ainda quiser
http://www.tibiaking.com/forum/topic/65407-addon-system-funcional-20152016/#comment-373478
-
linsoul deu reputação a samlecter em Addon System FUNCIONAL 2015/2016Opa, beleza vou editar aki
Mas você procurou, conseguiu e compartilhou, já ajuda muita gente.
Sobre as quando estiver em fly, surf e ride, procurei ontem o dia todo e não consegui encontrar, vou continuar pesquisando, caso eu descubra edito aki, se você conseguir tem como me passar ou então comentar aki ? Ah você sabe como troca pra quando usar uma skill?
Exemplo: Meu scyther está com addon, ok
dai ele usa a passiva counter helix, e fica sem o addon, eu possuo a sprite dele usando essa passiva com o addon mas não sei onde por isso
Procure manualmente pelo goback.lua da pasta \data\actions\scripts
Você deve estar procurando no goback errado, existe 1 na pasta actions\scripts e um na creaturescripts\scripts
No goback.lua certo, vá até o final e terá uma parte assim:
else doPlayerSendCancel(cid, "This pokemon is fainted.") end
Em cima desse else coloca isso:
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
Depois é só seguir o tutorial, qualquer coisa me avisa
-
linsoul deu reputação a samlecter em Addon System FUNCIONAL 2015/2016Primeiramente, informo que não fui eu quem criou o sistema e nem a explicação, créditos no final.
O que eu fiz então?
R: Adaptei algumas coisas, exemplo: com o original a Cd Bar não aparecia nos pokemons com addon, adaptei para que apareçam e trouxe pro TK pois achei em outro lugar!
OBS: Sei que já existe alguns posts sobre o assunto aki, mas quando procurei pra por no meu ot, todos eram incompletos apenas com o script pra por no actions e a tag no actions.xml
OBS²: A única coisa que não funciona nesse sistema é que caso o pokemon tenha fly/surf/ride, não aparece o addon deles enquanto estiver no fly/surf/ride, não sei como por para aparecer, então se alguém souber, ficaria grato se ensinasse ( possuo a sprite do pokemon com addon usando fly/surf/ride, só não sei como por )
A Alteração feita para que a Cd Bar apareça foi feita no goback.lua e some functions.lua , já estará o correto na explicação abaixo!
Vamos Lá !
Em Data/actions e Actions.xml adiciona isto:
<action itemid="IdAddon;IdAddon" event="script" value="Addon.lua"/>
Em IdAddon Coloca os ids dos items dos addons! ai para adicionar mais ids é só colocar o ";" Ou seja aquele negocio verde, e depois colocar o ID Ficando:IdAddon;IdAddon;IdAddon e por ai vai
Ai Em Data/actions/scripts cria um arquivo lua Chamado "Addon" e Dentro Dele Adiciona Isto:
function onUse(cid, item, fromPosition, itemEx, toPosition) local addons = { [12593] = {pokemon= "Electabuzz" , looktype = 1482}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon [12925] = {pokemon= "Alakazam" , looktype = 1471}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon } if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Please back your pokemon.") return false end local numero = addons[item.itemid].looktype 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") < 1 then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.") doSetItemAttribute(pb,"addon",numero) return true end return true end
Para adicionar um Novo Addon é só Adicionar esta tag:
[ItemID] = {pokemon= "NomeDoPoke" , looktype = IdDaOutfit},
EM ItemID, troca pelo id do addon
em pokemon troca NomeDoPoke, pelo Nome Do Pokémon que vai ser adicionado o Addon
Em looktype, troca IdDaOutfit, pelo looktype do pokémon com addon!
Em Goback.lua
Procure Por: (fica lá no final)
else doPlayerSendCancel(cid, "This pokemon is fainted.") end
E Adiciona Em cima do else Isto:
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 Catch system.lua Procura Por:
doItemSetAttribute(item, "description", description) Em baixo adicione isto:
doItemSetAttribute(item, "addon", 0)
Em Some Functions.lua Procure Por:
unLock(item.uid) Da Enter Duas Vezes e Adiciona isto:
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
Pronto! Sistema de Addon Funcionando Perfeitamente Caso Coloque Tudo Certinho!
Caso Queira uma Addon Box... Façam isto:
Em Actions.xml Adiciona Isto:
<action itemid="12595" event="script" value="addonbox.lua"/>
E Em Data/Actions/Scripts Cria um Arquivo Lua Chamado "addonbox" e Adiciona Isto Dentro Dele:
function onUse(cid, item, frompos, item2, topos, pos) local addons = {12593,12889} local randomChance = math.random(1, 49) if item2.itemid == 12595 then doSendMagicEffect(getCreaturePosition(cid), 28) doRemoveItem(item2.uid, 1) doPlayerAddItem(cid, addons[randomChance], 1) doPlayerSendTextMessage(cid, 27, "Você ganhou um Addon!") return true end end Pronto Addon Box Adicionada!
Créditos
Pokémon X Rain Pelo Sistema de Addon
Drazyn12391
E Eu
EDITED
Encontrei uma falha, quando evolui o pokemon com Addon, após voltar para a ball e mandar denovo, ele fica com a outfit antes de evoluir e com addon.
Exemplo: Evolui o Electabuzz COM Addon, ele virou electivire, voltei pra ball e mandei denovo, ele estava com o Outfit(aparência) do Electabuzz com Addon.
Ou seja, melhor só por o addon em pokemons que não evoluem, caso alguem saiba resolver pfv comenta aki, caso eu descubra como resolver, edito.