Ir para conteúdo

deivaoo

Membro
  • Registro em

  • Última visita

Tudo que deivaoo postou

  1. Basicamente, o único arquivo a se editar é o da pasta lib, onde pode editar o item a ser cobrado e a quantidade. Aparece algum erro na distro? Ele pega os pokemons da configuração do próprio servidor cyan, que tem uma tabela chamada poevo, onde tem dados de evolução, stone, etc. Pode dizer quais os erros que aparecem na distro?
  2. exatamente Summ, uma grande gambiarra! Ahuaheuaheu está apenas dando uma volta pelo erro, sem concertá-lo pela raiz... como você disse, provavelmente aparecerão outros erros... "Gambiarras resolvem instantemente, porém podem complicar em problemas futuros." ~David Araujo
  3. crie um arquivo na pasta creaturescripts chamado 'StaminaBug.lua' e coloque o seguinte código: local storage = 5612 function onPrepareDeath(cid, deathList) if isPlayer(cid) then setPlayerStorageValue(cid, storage, getPlayerStamina(cid)) -- Salva a Stamina atual do player end return true end function onLogin(cid) if isPlayer(cid) then local stamina = getPlayerStorageValue(cid, storage) if not stamina == -1 then local newStamina = stamina-getPlayerStamina(cid) --Pega a stamina salva e calcula a diferença com a atual doPlayerAddStamina(newStamina) -- Adiciona a diferença calculada setPlayerStorageValue(cid, storage, -1) -- Remove o valor da storage end end return true end Agora adicione essas duas tags ao creaturescripts.xml: <event type="login" name="StaminaBugLogin" script="StaminaBug.lua"> <event type="PrepareDeath" name="StaminaBugPrepareDeath" script="StaminaBug.lua">
  4. Vou postar o que eu fiz, se alguém puder completar... Não consegui abrir a base cyan... Bom, dei uma olhada nos scripts do cyan, mas não sei se vai funcionar... Se der algum erro, por favor, diga oq aparece na distro e oq acontece no jogo. Crie um arquivo na pasta 'data/lib', com o nome 'EvoTalkActionSystem.lua' e coloque o seguinte código: EvoTalkActionSystemConfig = { storage = 40029, --Storage da ball item = { id = 3956, --Id do item a ser cobrado (removido) quant = 1 --Quantidade do item a ser cobrado } } function getPokeDevoByName(pokename) for devo,evo in ipairs(poevo) do if evo.evolution == pokename then return devo end end end Agora crie uma pasta em 'mods/scripts' com o nome 'EvoTalkActionSystem' Crie um arquivo com o nome 'talkaction.lua', na pasta criada, e coloque o seguinte código: local config = EvoTalkActionSystemConfig function onSay(cid, words, param) if getPlayerItemCount(cid, config.item.id) < config.item.quant then --Se NÃO tiver o suficiente do item pedido return doPlayerSendCancel(cid, "Você não tem "..config.item.quant.."x - "..getItemNameById(config.item.id)) --Retorna uma mensagem de erro end if #getCreatureSummons(cid) == 0 then --Se não tiver sumonado nenhum pokemon return doPlayerSendCancel(cid, "Você precisa sumonar um pokemon para usar esse comando.") --Retorna uma mensagem de erro end local monster = getCreatureName(getCreatureSummons(cid)[1]) if not isInArray(specialevo, getCreatureName(monster)) then --Se o pokemon não estiver na lista return doPlayerSendCancel(cid, "Esse pokemon não pode ser evoluído.") --Retorna uma mensagem de erro end doPlayerRemoveItem(config.item.quant, config.item.id) -- Aqui varia a cada servidor... Adaptei para base Cyan doEvolvePokemon(cid, getCreatureSummons(cid)[1], poevo[monster].evolution, 0, 0) doItemSetAttribute(ball, "morta", "no") doItemSetAttribute(ball, "Icone", "yes") doTransformItem(ball, icons[getItemAttribute(ball, "poke")].use) ---------------------------------------------------------- setPlayerStorageValue(cid, config.storage.balluid, ball.uid) --Salva o uid da ball na storage return true end Crie um arquivo com o nome 'death.lua', na pasta criada, e coloque o seguinte código: local config = EvoTalkActionSystemConfig function onPrepareDeath(cid,deathlist) if isMonster(cid) then --Se for um pokemon if getCreatureMaster(cid) then --Se não for selvagem local player = getCreatureMaster(cid) local playerball = getPlayerSlotItem(player, 8) if getItemAttribute(playerball.uid,"uid") == config.uid then local ball = getPlayerStorageValue(player, config.storage) if playerball.uid == ball then --Se for a ball e o pokemon corretos local pokename = getPokeDevoByName(getCreatureName(cid)) -- Aqui varia a cada servidor... Adaptei para base Cyan doEvolvePokemon(player, cid, pokename, 0, 0) --"Desevolui" o pokemon doItemSetAttribute(ball.uid, "morta", "yes") --Edita a ball para morto doItemSetAttribute(ball.uid, "Icone", "yes") --Ativa sistema de ícones doTransformItem(ball.uid, icons[getItemAttribute(ball, "poke")].use)-- Edita o ícone ao do pokemon ---------------------------------------------------------- doItemSetAttribute(playerball.uid, "uid", 0) --Remove a uniqueid (edita para 0) setPlayerStorageValue(cid, config.storage, -1) --remove o valor da storage end end end end return true end Agora, na pasta 'mods', crie um arquivo chamado 'EvoTalkActionSystem.xml' e coloque o seguinte código: <?xml version="1.0" encoding="UTF-8"?> <mod name="EvoTalkActionSystem" version="1.0" author="David Araujo (Hopus)" contact="http://www.tibiaking.com/forum/user/43104-david0703/" enabled="yes"> <talkaction words="!evoluir" event="script" value="EvoTalkActionSystem/talkaction.lua"> <event type="PrepareDeath" name="EvoTalkActionSystemDeath" event="script" value="EvoTalkActionSystem/death.lua"> </mod>
  5. Já está quase finalizado, falta apenas adaptar a parte dos atributos da pokeball, pois estava fazendo no servidor Ownz como base... Baixando base Cyan
  6. Desculpe, mas estava atrasado pra facul, não fiz nem o teste de mesa... Quando chegar em casa faço o script pra você... Obrigado por olhar vyctor17 (É errando que se erra...) Qual a base de seu servidor?
  7. local evo = { ["Abra"] = "kadabra", ["Kadabra"] = "alakazam", ["Drowzee"] = "hypno", ["Slowpoke"] = "slowbro", ["Exeggcute"] = "exeggutor", ["Psyduck"] = "golduck", ["Mime Jr"] = "mr.mime", ["Togepi"] = "togetic", ["Slowbro"] = "slowking", } function onSay(cid, words, param) local monster = getCreatureName(getCreatureSummons(cid)[1]) if evo[monster] then doRemoveCreature(getCreatureSummons(cid)[1]) local summon = doCreateMonster(evo[monster], toPosition) doConvinceCreature(cid, summon) doSendMagicEffect(getThingPos(summon), 18) return TRUE end return FALSE end
  8. ah sim... aí mexe com código assembly e hexa decimal... me passa apenas exe que eu tento trocar pra vc, se eu ainda me lembrar como faz...
  9. ele está compactado... procure algum descompactador de moolebox (ou tente abrir manualmente por um SO diferente de windows)... aí vc extrai o dat e o spr e usa com seu client criado no vapus
  10. Bom, creio que esse mod possa ajudar: mod catch window v1.3 Se não, esclareça melhor seu pedido, com mais detalhes.
  11. Talvez esse tópico te ajude: tutorial adicionando novos pokemons em seu pda com e sem icon system
  12. Não é necessário dizer que o Max é foda... Ele mostra isso com as atitudes dele... Faz scripts para o povo, sem pedir nada em troca... Merece 1000 rep+ pela dedicação em compartilhar e emprestar seu conhecimento para todos nós... Max, me espelho em ti cara! Sistema bem-elaborado... Não deixe que mal-agradecidos toquem em sua humildade... Você é 10 mano!
  13. deivaoo postou uma resposta no tópico em Recursos Avançados
    Apoio a ideia... ele será open source? Pois seria uma grande fonte de estudos!
  14. o sistema de montaria seria através de um summon?
  15. deivaoo postou uma resposta no tópico em Suporte Tibia OTServer
    copia o código do arquivo da lib dnv, ele já arrumou...
  16. ah sim, não são todos os servidores que tem... essa seria a função- getItemDescriptions(item).name na pasta lib, em algum arquivo, acrescente isso function getItemName(uid) return getItemDescriptions(uid).name end caso não queira adicionar a função na lib, troque getItemName(config.recompensa) por getItemDescriptions(config.recompensa).name e, para ficar organizado, escreva o nome do item apos o id, ex. recompensa = 2493, --Diamond
  17. deivaoo postou uma resposta no tópico em Formação de Equipe
    Eu deixei meus dados ali acima... Nao coloquei raidcall pq não estou sempre com o pc conectado na internet... apenas meu celular... creio que seria o melhor meio de comunicação, ou até mesmo pelo privado aqui no fórum...
  18. deivaoo postou uma resposta no tópico em Suporte Tibia OTServer
    isso ai eh o calculo que pega todos os quadradinhos dentro dos pontos recebidos pela função... verifica se eh player e adiciona na tabela o creatureid, se for...
  19. Exatamente @Caronte, eh assim que funciona em servidores de pokemon 8.54...
  20. Acho que vc soh precisava trocar o intens.otb e o itens.xml do seu remare's... Porém eu sempre faço quests via action, mais tranquilo pra editar @Wakon, , não eh necessário pegar o nome do item, pois temos a função ''getItemName(itemid)'', que pega o nome do item pelo itemid... Portanto, pode tirar essa linha nitem = "Item test.", -- Nome da recompensa. e, nessa linha doPlayerSendTextMessage(cid,25,"You have found a "..config.nitem..".") alterar ''config.nitem'' para ''getItemName(config.recompensa)'', ficando assim doPlayerSendTextMessage(cid,25,"You have found a "..getItemName(config.recompensa)..".")
  21. pegar como base... teria que fazer ajustes, claro, mas nada tao difícil... nao posso falar com propriedade porque faço scripts apenas pra 8.54, mas ´´e utilizado um sistema de montaria quando se sobe em um pokemon, seja voador ou terrestre... um sistema de montaria, por exemplo, tirado do antigo servidor de poketibia Ownz... Ele eh utilizado em forma de action id...
  22. Bom, acho que ficaria mais dinamico se o teleport aparecesse exatamente onde o monstro morreu... Em 'Teleportz.lua', coloque o seguinte codigo...
  23. pode pegar sistemas de montaria em servidores de poketibia...
  24. Nome: David Idade: 19 Whats APP: 11 9 7048-5942 Porque você quer fazer parte do projeto? R. Ja tive essa ideia antes e levaria o projeto sozinho... Mas acho que uma corda de 3 fios resiste mais que 1 fio sozinho... Quanto tempo de experiência você tem com OT Servers? R. 3 Anos, aproximadamente. Mapper/Spriter/Scripter/Programador: Scripter.

Informação Importante

Confirmação de Termo