
Histórico de Curtidas
-
vyctor17 recebeu reputação de leonardoviana em Advanced SoundEai galera, pra quem conhece meu tópico de showoff já sabe oque eu estou postando . mas pra quem não conhece oque é o Advanced Sound segue o ctrl+v.
é um MOD para o OTC, que permite ao OTC reproduzir diversas tipos de mídia como (.MP3, .WAV, .OGG, .MOD, .IT, .S3D, .XM).
Além disso esse MOD conta com uma biblioteca de áudio 3D, e a melhor parte é que não necessita de alteração na source por parte do OTC,só no serverside se o desenvolvedor quiser ativar alguns recursos como áudio nas falas das criaturas. a parte do áudio nas criaturas não esta inclusa no download. e também não conta com áudio 3d configurado em script mais as funções estão na biblioteca se quiser é só fazer .
Algumas aplicações por exemplo em servidores de pokemon ao jogar a pokebola mandar um som para o client ao capturar outro som ou falhar na captura, assim como som de batalhas, som ambiente, o limite é sua imaginação!
Lista de funções
pauseAll isPlaying isFinished getSoundPlayLen getSoundPlayPosition setSndPlayPos setSoundMinDistance setListenerPosition setSound3DPosition setVolume getVolume setPaused isPaused playMusic deleteSnd setReverbEnabled setEchoEnabled setDistortionEnabled Exemplo de uso em lua servidor:
local colors = { TEXTCOLOR_BLUE, TEXTCOLOR_LIGHTBLUE, TEXTCOLOR_LIGHTGREEN, TEXTCOLOR_TEAL, TEXTCOLOR_PURPLE, TEXTCOLOR_PLATINUMBLUE, TEXTCOLOR_LIGHTGREY, TEXTCOLOR_DARKRED, TEXTCOLOR_RED, TEXTCOLOR_ORANGE, TEXTCOLOR_YELLOW, TEXTCOLOR_WHITE_EXP } function onSay(cid, words, param) local playerpos = getPlayerPosition(cid) local random = math.random(1, #colors) if math.max(math.abs(playerpos.x-23), math.abs(playerpos.y-30)) < 9999 then doSendAnimatedText(playerpos, "GoGoGo!", colors[random]) sendScreanSound(cid, "com_go.wav") end return true end
Criaturas Falantes C++ ServerSide:
Em game.cpp, procure por:
bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) E abaixo de:
if(!ghostMode || tmpPlayer->canSeeCreature(creature)) tmpPlayer->sendCreatureSay(creature, type, text, &destPos); Adicione:
if(type == SPEAK_MONSTER_YELL or type == SPEAK_MONSTER_SAY){ tmpPlayer->sendExtendedOpcode(85, text + ".mp3|false"); } Dai é só adicionar os som a pasta e colocar o nome dele igual a fala nesse metodo só ta pra rodar mp3, tem jeito melhor de fazer isso adicionando um nova tag no .xml do monstro mais acabei ficando com preguiça e fiz assim kk'
Download
não autorizo o re-post em qualquer outro fórum sem minha autorização.
vyctor17 - Waki-V LTDA ©
-
Há algum tempo, comecei a explorar a reversão do OTCliente. Inclusive, criei um tópico aqui apresentando o básico do que encontrei. Como não tenho mais interesse no projeto, pois demanda muito trabalho para atualizar os offsets, decidi disponibilizar o código-fonte neste tópico. Atualmente, ele pode não estar funcional devido à falta de atualizações nos offsets dos clientes mais recentes da PXG, mas, com as atualizações adequadas, tudo deve funcionar normalmente.
Desenvolvi uma base sólida para quem deseja se aprofundar em injeção de DLLs. Isso pode ser útil até mesmo para modificar o cliente original do Tibia ou para criar um BOT em qualquer servidor com alguma variação do OTClient, permitindo criar suas próprias modificações.
Tudo foi feito em C++ e eu criei um Engine de LUA, para fácil extensão dos modulos.
Vídeos:
SourceCode DLL + Launcher: https://github.com/victorverdoodt/WakeLuaPlusPlu
-
vyctor17 recebeu reputação de Kramer em (Resolvido)Vocação com Protection a x elementousa as tags no ,xml da vocação
<absorb percentAll=""/> <absorb percentElements=""/> <absorb percentMagic=""/> <absorb percentEnergy=""/> <absorb percentFire=""/> <absorb percentPoison=""/> <absorb percentIce=""/> <absorb percentHoly=""/> <absorb percentDeath=""/> <absorb percentLifeDrain=""/> <absorb percentManaDrain=""/> <absorb percentDrown=""/> <absorb percentPhysical=""/> <absorb percentHealing=""/> <absorb percentUndefined=""/> entre as " " coloca 100
você pode usar todas essas tags assim conseguindo dar um bônus de ml pra x vocação ou dar um magicshield permanente pra Y vocação
manaShield invisible healthGain/healthTicks manaGain/manaTicks speed -------------- reflect percentAll reflect percentElements reflect percentMagic reflect percentEnergy reflect percentFire reflect percentPoison reflect percentIce reflect percentHoly reflect percentDeath reflect percentLifeDrain reflect percentManaDrain reflect percentDrown reflect percentPhysical reflect percentHealing reflect percentUndefined reflect chanceAll reflect chanceElements reflect chanceMagic reflect chanceEnergy reflect chancetFire reflect chancePoison reflect chanceIce reflect chanceHoly reflect chanceDeath reflect chanceLifeDrain reflect chanceManaDrain reflect chanceDrown reflect chancePhysical reflect chanceHealing reflect chanceUndefined -------------- absorb percentAll absorb percentElements absorb percentMagic absorb percentEnergy absorb percentFire absorb percentPoison absorb percentIce absorb percentHoly absorb percentDeath absorb percentLifeDrain absorb percentManaDrain absorb percentDrown absorb percentPhysical absorb percentHealing absorb percentUndefined -------------- skills fist skills club skills axe skills sword skills distance skills shielding skills fishing skills melee (fist, club, sword y axe) skills weapon (club, sword, axe, dist) skills fistPercent skills clubPercent skills axePercent skills swordPercent skills distancePercent skills shieldingPercent skills fishingPercent skills meleePercent (fist, club, sword y axe) skills weaponPercent (club, sword, axe, dist) -------------- stats maxHealth stats maxMana stats soul stats level stats magLevel stats maxHealthPercent stats maxManaPercent stats soulPercent stats levelPercent stats magLevelPercent -------------- supress poison supress fire supress energy supress physical supress haste supress paralyze supress invisible supress light supress manaShield supress drunk supress drown supress muted -
vyctor17 recebeu reputação de kevinazo em Advanced Soundpra sair som nos passos você tem que criar um novo callback creaturescript nas sources, que eu chamei onTryMove, é um callback que é chamado toda vez que alguém tenta andar, e usar isso pra soltar o som, sobre o som ambiente eu me lembro de estar tudo funcionando bem, mas você pode tentar fazer ele pelo servidor ao invés do cliente, usando de referencia oque eu fiz no cliente para passar pro server-side. ou então usar o proprio sistema de som do otclient só para o som ambiente, funcionando de forma separada.
-
vyctor17 recebeu reputação de Drazyn em Advanced Soundfaz muito tempo mas acho que foi as mesmas pra compilar um servidor 0.3.6pl1, mas eu compilei antes de colocar no github e só precisei linkar a biblioteca de c++ do visualstudio mesmo.
-
vyctor17 recebeu reputação de Orientalz em [Pedido] queria um script em lua, pra fazer o char virar de frente para o monstrofunction onAttack(cid, target) doCreatureSetLookDirection(cid, getDirectionTo(getCreaturePosition(cid), getCreaturePosition(target))) return true end toda vez que o personagem for atacar ele vai virar na direção do monstro baseado na posição.
-
vyctor17 recebeu reputação de DATA Vinny em [Show-Off] Vyctor17Oi Tk, faz um tempo que eu postei alguns módulos que eu fiz, para o OTclient, agora vou mostrar um pouco de como eles foram implementados em um projeto de teste. vou fazer um breve explicação sobre o o funcionamento e depois colocarei um GIF ou Video mostrando in-game.
Raridade em monstros e items.
Monstros: a raridade em monstros aumenta seu poder de ataque e vida baseado na raridade. Para monstros existem 4 Tiers de raridade, Comum, Épico, Lendário e Único um monstro com raridade acima de comum sempre protegendo um bau com recompensas.
Items: Os items tem variação de raridade baseado em um encantamento obtido via Gemas, Essas raridades são dividas em 5 Tiers de raridade, Comum, Magico, Épico, Lendário e Único.
a imagem não contem item e monstros únicos
Gemas de encantamento.
As gemas de encantamento melhoram um item e só podem ser utilizadas uma vez por item, existem duas gemas uma pode dar de um a três atributos novos ao item e outra de um a seis, a partir do numero de atributos novos gerados no item é definido sua raridade. As gemas podem ser obtidas através de mineração ou em baus de recompensa.
Baus de recompensa.
São gerados junto a monstros de raridade acima de comum dependo de qual bau o monstro protege mais forte ele é, exemplo um monstro épico protegendo um bau de ouro é mais forte que um épico protegendo um bau normal. Para abrir o bau você terá que fazer o Lockpick no bau.
Wasp lendária protegendo bau da fortuna.
Pescaria.
Nada de muito explicativo só uma pesca comum, para obter peixes para Cooking ou para Alquimia.
Lockpick.
Nada de muito novo também.
Montaria
Nada muito diferente também, só existem três pontos diferentes da montaria no meu server para o do global que são, as montarias tem vida e se ela "morrer" você é desmontado, as montarias em quanto montado te libera magias, a montaria tem um slot próprio para poder ser equipada.
Magias e inventario.
Todas classes podem usar qualquer magia mas as magias são vinculadas as items, então para ter a magia liberada a pessoa tem que estar com o item equipado para aumentar a quantidade magias criei mais dois slots no inventario um slot para montaria e mais um anel.
Vou ficar devendo falar sobre o craft e a alquimia, pois ainda estou trabalhando neles. deixar um agradecimento especial a galera do discord do TK que me ajudou com ideias e me guiando para melhorar sistemas existentes . Qualquer duvida ou sugestão para os sistemas acima ou para qualquer outro tipo de sistema que você acha que poderia ficar legal em conjunto com esses sistemas ficarei ligado nos comentários desse tópico. Obrigado pela atenção.
Bonus:
-
vyctor17 recebeu reputação de Pedro. em PXG Reversal, Structs e OffsetsBom, comecei a pouco a me aprofundar em engenharia reversa de programas/jogos, resolvi fazer esse post pra se alguém com objetivo em comum precisar de um ponto de partida já que existe pouco conteúdo sobre, e os fóruns antigos de reversão voltado para Tibia/OTserv estão mortos.
[STATUS]
GamePtr
-->LocalPlayer-->Inventario
-->Creatures
-->Protocolo
falta mapa e containers.
Obs: eu vou focar o tópico no PXG mas essas mesmas informações de estrutura são compatíveis com qualquer OTclient desde que você atualize os offsets.
Programas usados:
IDA PRO - conseguir ponteiros dissecar estruturas e funções
Cheat Engine - confirmar offsets
ReClass - criar uma classe para o ponteiro das criaturas na Battle List
Se alguém tiver alguma duvida sobre como conseguir os OFFSETS ou de como usar os programas citados acima pode perguntar no tópico que eu responderei assim que possível.
PXG DIRECTX9 23/09/2019
OFFSETS/OFFSETS:
// Created with ReClass.NET by KN4CK3R class CreaturePtr { public: char pad_0000[12]; //0x0000 uint16_t m_pos_x; //0x000C char pad_000E[2]; //0x000E uint16_t m_pos_y; //0x0010 char pad_0012[2]; //0x0012 uint8_t m_pos_z; //0x0014 char pad_0015[7]; //0x0015 uint32_t m_id; //0x001C char pad_0020[4]; //0x0020 uint8_t m_name_lenght; //0x0024 char pad_0025[3]; //0x0025 char m_name[16]; //0x0028 uint8_t m_healthPercent; //0x0038 char pad_0039[3]; //0x0039 uint8_t m_direction; //0x003C char pad_003D[3]; //0x003D uint8_t m_outfit_visible; //0x0040 char pad_0041[3]; //0x0041 uint8_t m_outfit_looktype; //0x0044 char pad_0045[7]; //0x0045 uint8_t m_outfit_head; //0x004C char pad_004D[3]; //0x004D uint8_t m_outfit_body; //0x0050 char pad_0051[3]; //0x0051 uint8_t m_outfit_legs; //0x0054 char pad_0055[3]; //0x0055 uint8_t m_outfit_feet; //0x0058 char pad_0059[3]; //0x0059 uint8_t m_outfit_addon; //0x005C char pad_005D[83]; //0x005D uint16_t m_light; //0x00B0 char pad_00B2[2]; //0x00B2 int32_t m_speed; //0x00B4 uint8_t m_skull; //0x00B8 uint8_t m_shield; //0x00B9 uint8_t m_emblem; //0x00BA uint8_t m_type; //0x00BB uint8_t m_icon; //0x00BC char pad_00BD[363]; //0x00BD bool m_walking; //0x0228 char pad_0229[123]; //0x0229 uint16_t m_autoWalkDestination_x; //0x02A4 char pad_02A6[2]; //0x02A6 uint16_t m_autoWalkDestination_y; //0x02A8 char pad_02AA[2]; //0x02AA uint8_t m_autoWalkDestination_z; //0x02AC }; //Size: 0x02AD class ItemPtr { public: char pad_0000[16]; //0x0000 uint8_t m_slotid; //0x0010 char pad_0011[21]; //0x0011 uint16_t m_clientId; //0x0026 char pad_0028[2]; //0x0028 uint16_t m_serverId; //0x002A char pad_002C[2]; //0x002C uint8_t m_countOrSubType; //0x002E }; //Size: 0x002F class LocalPlayerPtr { public: char pad_0000[12]; //0x0000 uint16_t m_pos_x; //0x000C char pad_000E[2]; //0x000E uint16_t m_pos_y; //0x0010 char pad_0012[2]; //0x0012 uint8_t m_pos_z; //0x0014 char pad_0015[7]; //0x0015 uint32_t m_id; //0x001C char pad_0020[4]; //0x0020 uint8_t m_name_lenght; //0x0024 char pad_0025[3]; //0x0025 char m_name[16]; //0x0028 uint8_t m_healthPercent; //0x0038 char pad_0039[3]; //0x0039 uint8_t m_direction; //0x003C char pad_003D[3]; //0x003D uint8_t m_outfit_visible; //0x0040 char pad_0041[3]; //0x0041 uint8_t m_outfit_looktype; //0x0044 char pad_0045[7]; //0x0045 uint8_t m_outfit_head; //0x004C char pad_004D[3]; //0x004D uint8_t m_outfit_body; //0x0050 char pad_0051[3]; //0x0051 uint8_t m_outfit_legs; //0x0054 char pad_0055[3]; //0x0055 uint8_t m_outfit_feet; //0x0058 char pad_0059[3]; //0x0059 uint8_t m_outfit_addon; //0x005C char pad_005D[83]; //0x005D uint16_t m_light; //0x00B0 char pad_00B2[2]; //0x00B2 int32_t m_speed; //0x00B4 uint8_t m_skull; //0x00B8 uint8_t m_shield; //0x00B9 uint8_t m_emblem; //0x00BA uint8_t m_type; //0x00BB uint8_t m_icon; //0x00BC char pad_00BD[363]; //0x00BD bool m_walking; //0x0228 char pad_0229[52]; //0x0229 bool m_premium; //0x025D char pad_025E[58]; //0x025E uint16_t m_lastPrewalkDestination_x; //0x0298 char pad_029A[2]; //0x029A uint16_t m_lastPrewalkDestination_y; //0x029C char pad_029E[2]; //0x029E uint8_t m_lastPrewalkDestination_z; //0x02A0 char pad_02A1[3]; //0x02A1 uint16_t m_autoWalkDestination_x; //0x02A4 char pad_02A6[2]; //0x02A6 uint16_t m_autoWalkDestination_y; //0x02A8 char pad_02AA[2]; //0x02AA uint8_t m_autoWalkDestination_z; //0x02AC char pad_02AD[3]; //0x02AD uint16_t m_lastAutoWalkPosition_x; //0x02B0 char pad_02B2[2]; //0x02B2 uint16_t m_lastAutoWalkPosition_y; //0x02B4 char pad_02B6[2]; //0x02B6 uint8_t m_lastAutoWalkPosition_z; //0x02B8 char pad_02B9[29]; //0x02B9 uint8_t m_Known; //0x02D6 char pad_02D7[5]; //0x02D7 class ItemPtr* m_inventoryItems[10]; //0x02DC char pad_0304[136]; //0x0304 uint8_t m_vocation; //0x038C char pad_038D[3]; //0x038D double m_health; //0x0390 double m_maxHealth; //0x0398 double m_freeCapacity; //0x03A0 double m_totalCapacity; //0x03A8 double m_experience; //0x03B0 double m_level; //0x03B8 double m_levelPercent; //0x03C0 double m_mana; //0x03C8 double m_maxMana; //0x03D0 double m_magicLevel; //0x03D8 double m_magicLevelPercent; //0x03E0 double m_baseMagicLevel; //0x03E8 double m_soul; //0x03F0 double m_stamina; //0x03F8 double m_regenerationTime; //0x0400 double m_offlineTrainingTime; //0x0408 }; //Size: 0x0410 class ProtocolGamePtr { public: char pad_0000[68]; //0x0000 }; //Size: 0x0044 class gGame { public: class LocalPlayerPtr* m_localPlayer; //0x0000 class CreaturePtr* m_attackingCreature; //0x0004 class CreaturePtr* m_followingCreature; //0x0008 class ProtocolGamePtr* m_protocolGame; //0x000C char pad_0010[48]; //0x0010 bool m_online; //0x0040 char pad_0041[1]; //0x0041 bool m_dead; //0x0042 char pad_0043[57]; //0x0043 uint8_t m_pvpMode; //0x007C char pad_007D[7]; //0x007D uint8_t m_lastWalkDir; //0x0084 char pad_0085[23]; //0x0085 uint8_t m_characterName_lenght; //0x009C char pad_009D[3]; //0x009D char m_characterName[16]; //0x00A0 char pad_00B0[4]; //0x00B0 uint8_t m_worldName_lenght; //0x00B4 char pad_00B5[3]; //0x00B5 char m_worldName[16]; //0x00B8 }; //Size: 0x00C8
-
vyctor17 recebeu reputação de Cat em [Show-Off] Vyctor17Oi Tk, faz um tempo que eu postei alguns módulos que eu fiz, para o OTclient, agora vou mostrar um pouco de como eles foram implementados em um projeto de teste. vou fazer um breve explicação sobre o o funcionamento e depois colocarei um GIF ou Video mostrando in-game.
Raridade em monstros e items.
Monstros: a raridade em monstros aumenta seu poder de ataque e vida baseado na raridade. Para monstros existem 4 Tiers de raridade, Comum, Épico, Lendário e Único um monstro com raridade acima de comum sempre protegendo um bau com recompensas.
Items: Os items tem variação de raridade baseado em um encantamento obtido via Gemas, Essas raridades são dividas em 5 Tiers de raridade, Comum, Magico, Épico, Lendário e Único.
a imagem não contem item e monstros únicos
Gemas de encantamento.
As gemas de encantamento melhoram um item e só podem ser utilizadas uma vez por item, existem duas gemas uma pode dar de um a três atributos novos ao item e outra de um a seis, a partir do numero de atributos novos gerados no item é definido sua raridade. As gemas podem ser obtidas através de mineração ou em baus de recompensa.
Baus de recompensa.
São gerados junto a monstros de raridade acima de comum dependo de qual bau o monstro protege mais forte ele é, exemplo um monstro épico protegendo um bau de ouro é mais forte que um épico protegendo um bau normal. Para abrir o bau você terá que fazer o Lockpick no bau.
Wasp lendária protegendo bau da fortuna.
Pescaria.
Nada de muito explicativo só uma pesca comum, para obter peixes para Cooking ou para Alquimia.
Lockpick.
Nada de muito novo também.
Montaria
Nada muito diferente também, só existem três pontos diferentes da montaria no meu server para o do global que são, as montarias tem vida e se ela "morrer" você é desmontado, as montarias em quanto montado te libera magias, a montaria tem um slot próprio para poder ser equipada.
Magias e inventario.
Todas classes podem usar qualquer magia mas as magias são vinculadas as items, então para ter a magia liberada a pessoa tem que estar com o item equipado para aumentar a quantidade magias criei mais dois slots no inventario um slot para montaria e mais um anel.
Vou ficar devendo falar sobre o craft e a alquimia, pois ainda estou trabalhando neles. deixar um agradecimento especial a galera do discord do TK que me ajudou com ideias e me guiando para melhorar sistemas existentes . Qualquer duvida ou sugestão para os sistemas acima ou para qualquer outro tipo de sistema que você acha que poderia ficar legal em conjunto com esses sistemas ficarei ligado nos comentários desse tópico. Obrigado pela atenção.
Bonus:
-
vyctor17 recebeu reputação de wougoplex em [Show-Off] Vyctor17Oi Tk, faz um tempo que eu postei alguns módulos que eu fiz, para o OTclient, agora vou mostrar um pouco de como eles foram implementados em um projeto de teste. vou fazer um breve explicação sobre o o funcionamento e depois colocarei um GIF ou Video mostrando in-game.
Raridade em monstros e items.
Monstros: a raridade em monstros aumenta seu poder de ataque e vida baseado na raridade. Para monstros existem 4 Tiers de raridade, Comum, Épico, Lendário e Único um monstro com raridade acima de comum sempre protegendo um bau com recompensas.
Items: Os items tem variação de raridade baseado em um encantamento obtido via Gemas, Essas raridades são dividas em 5 Tiers de raridade, Comum, Magico, Épico, Lendário e Único.
a imagem não contem item e monstros únicos
Gemas de encantamento.
As gemas de encantamento melhoram um item e só podem ser utilizadas uma vez por item, existem duas gemas uma pode dar de um a três atributos novos ao item e outra de um a seis, a partir do numero de atributos novos gerados no item é definido sua raridade. As gemas podem ser obtidas através de mineração ou em baus de recompensa.
Baus de recompensa.
São gerados junto a monstros de raridade acima de comum dependo de qual bau o monstro protege mais forte ele é, exemplo um monstro épico protegendo um bau de ouro é mais forte que um épico protegendo um bau normal. Para abrir o bau você terá que fazer o Lockpick no bau.
Wasp lendária protegendo bau da fortuna.
Pescaria.
Nada de muito explicativo só uma pesca comum, para obter peixes para Cooking ou para Alquimia.
Lockpick.
Nada de muito novo também.
Montaria
Nada muito diferente também, só existem três pontos diferentes da montaria no meu server para o do global que são, as montarias tem vida e se ela "morrer" você é desmontado, as montarias em quanto montado te libera magias, a montaria tem um slot próprio para poder ser equipada.
Magias e inventario.
Todas classes podem usar qualquer magia mas as magias são vinculadas as items, então para ter a magia liberada a pessoa tem que estar com o item equipado para aumentar a quantidade magias criei mais dois slots no inventario um slot para montaria e mais um anel.
Vou ficar devendo falar sobre o craft e a alquimia, pois ainda estou trabalhando neles. deixar um agradecimento especial a galera do discord do TK que me ajudou com ideias e me guiando para melhorar sistemas existentes . Qualquer duvida ou sugestão para os sistemas acima ou para qualquer outro tipo de sistema que você acha que poderia ficar legal em conjunto com esses sistemas ficarei ligado nos comentários desse tópico. Obrigado pela atenção.
Bonus:
-
vyctor17 recebeu reputação de Coltera em [Show-Off] Vyctor17Oi Tk, faz um tempo que eu postei alguns módulos que eu fiz, para o OTclient, agora vou mostrar um pouco de como eles foram implementados em um projeto de teste. vou fazer um breve explicação sobre o o funcionamento e depois colocarei um GIF ou Video mostrando in-game.
Raridade em monstros e items.
Monstros: a raridade em monstros aumenta seu poder de ataque e vida baseado na raridade. Para monstros existem 4 Tiers de raridade, Comum, Épico, Lendário e Único um monstro com raridade acima de comum sempre protegendo um bau com recompensas.
Items: Os items tem variação de raridade baseado em um encantamento obtido via Gemas, Essas raridades são dividas em 5 Tiers de raridade, Comum, Magico, Épico, Lendário e Único.
a imagem não contem item e monstros únicos
Gemas de encantamento.
As gemas de encantamento melhoram um item e só podem ser utilizadas uma vez por item, existem duas gemas uma pode dar de um a três atributos novos ao item e outra de um a seis, a partir do numero de atributos novos gerados no item é definido sua raridade. As gemas podem ser obtidas através de mineração ou em baus de recompensa.
Baus de recompensa.
São gerados junto a monstros de raridade acima de comum dependo de qual bau o monstro protege mais forte ele é, exemplo um monstro épico protegendo um bau de ouro é mais forte que um épico protegendo um bau normal. Para abrir o bau você terá que fazer o Lockpick no bau.
Wasp lendária protegendo bau da fortuna.
Pescaria.
Nada de muito explicativo só uma pesca comum, para obter peixes para Cooking ou para Alquimia.
Lockpick.
Nada de muito novo também.
Montaria
Nada muito diferente também, só existem três pontos diferentes da montaria no meu server para o do global que são, as montarias tem vida e se ela "morrer" você é desmontado, as montarias em quanto montado te libera magias, a montaria tem um slot próprio para poder ser equipada.
Magias e inventario.
Todas classes podem usar qualquer magia mas as magias são vinculadas as items, então para ter a magia liberada a pessoa tem que estar com o item equipado para aumentar a quantidade magias criei mais dois slots no inventario um slot para montaria e mais um anel.
Vou ficar devendo falar sobre o craft e a alquimia, pois ainda estou trabalhando neles. deixar um agradecimento especial a galera do discord do TK que me ajudou com ideias e me guiando para melhorar sistemas existentes . Qualquer duvida ou sugestão para os sistemas acima ou para qualquer outro tipo de sistema que você acha que poderia ficar legal em conjunto com esses sistemas ficarei ligado nos comentários desse tópico. Obrigado pela atenção.
Bonus:
-
vyctor17 recebeu reputação de Agaka em [Show-Off] Vyctor17Oi Tk, faz um tempo que eu postei alguns módulos que eu fiz, para o OTclient, agora vou mostrar um pouco de como eles foram implementados em um projeto de teste. vou fazer um breve explicação sobre o o funcionamento e depois colocarei um GIF ou Video mostrando in-game.
Raridade em monstros e items.
Monstros: a raridade em monstros aumenta seu poder de ataque e vida baseado na raridade. Para monstros existem 4 Tiers de raridade, Comum, Épico, Lendário e Único um monstro com raridade acima de comum sempre protegendo um bau com recompensas.
Items: Os items tem variação de raridade baseado em um encantamento obtido via Gemas, Essas raridades são dividas em 5 Tiers de raridade, Comum, Magico, Épico, Lendário e Único.
a imagem não contem item e monstros únicos
Gemas de encantamento.
As gemas de encantamento melhoram um item e só podem ser utilizadas uma vez por item, existem duas gemas uma pode dar de um a três atributos novos ao item e outra de um a seis, a partir do numero de atributos novos gerados no item é definido sua raridade. As gemas podem ser obtidas através de mineração ou em baus de recompensa.
Baus de recompensa.
São gerados junto a monstros de raridade acima de comum dependo de qual bau o monstro protege mais forte ele é, exemplo um monstro épico protegendo um bau de ouro é mais forte que um épico protegendo um bau normal. Para abrir o bau você terá que fazer o Lockpick no bau.
Wasp lendária protegendo bau da fortuna.
Pescaria.
Nada de muito explicativo só uma pesca comum, para obter peixes para Cooking ou para Alquimia.
Lockpick.
Nada de muito novo também.
Montaria
Nada muito diferente também, só existem três pontos diferentes da montaria no meu server para o do global que são, as montarias tem vida e se ela "morrer" você é desmontado, as montarias em quanto montado te libera magias, a montaria tem um slot próprio para poder ser equipada.
Magias e inventario.
Todas classes podem usar qualquer magia mas as magias são vinculadas as items, então para ter a magia liberada a pessoa tem que estar com o item equipado para aumentar a quantidade magias criei mais dois slots no inventario um slot para montaria e mais um anel.
Vou ficar devendo falar sobre o craft e a alquimia, pois ainda estou trabalhando neles. deixar um agradecimento especial a galera do discord do TK que me ajudou com ideias e me guiando para melhorar sistemas existentes . Qualquer duvida ou sugestão para os sistemas acima ou para qualquer outro tipo de sistema que você acha que poderia ficar legal em conjunto com esses sistemas ficarei ligado nos comentários desse tópico. Obrigado pela atenção.
Bonus:
-
vyctor17 deu reputação a Namikaze em [Show-Off] Vyctor17Bem legal os sistemas. slot na montaria pra carregar alguma coisa seria legal tbm fica minha sugestão kk
-
vyctor17 deu reputação a Kramer em [Show-Off] Vyctor17Esse inventário ficou show, essa parte de item com magia também nem se fala.
-
vyctor17 recebeu reputação de Namikaze em [Show-Off] Vyctor17Oi Tk, faz um tempo que eu postei alguns módulos que eu fiz, para o OTclient, agora vou mostrar um pouco de como eles foram implementados em um projeto de teste. vou fazer um breve explicação sobre o o funcionamento e depois colocarei um GIF ou Video mostrando in-game.
Raridade em monstros e items.
Monstros: a raridade em monstros aumenta seu poder de ataque e vida baseado na raridade. Para monstros existem 4 Tiers de raridade, Comum, Épico, Lendário e Único um monstro com raridade acima de comum sempre protegendo um bau com recompensas.
Items: Os items tem variação de raridade baseado em um encantamento obtido via Gemas, Essas raridades são dividas em 5 Tiers de raridade, Comum, Magico, Épico, Lendário e Único.
a imagem não contem item e monstros únicos
Gemas de encantamento.
As gemas de encantamento melhoram um item e só podem ser utilizadas uma vez por item, existem duas gemas uma pode dar de um a três atributos novos ao item e outra de um a seis, a partir do numero de atributos novos gerados no item é definido sua raridade. As gemas podem ser obtidas através de mineração ou em baus de recompensa.
Baus de recompensa.
São gerados junto a monstros de raridade acima de comum dependo de qual bau o monstro protege mais forte ele é, exemplo um monstro épico protegendo um bau de ouro é mais forte que um épico protegendo um bau normal. Para abrir o bau você terá que fazer o Lockpick no bau.
Wasp lendária protegendo bau da fortuna.
Pescaria.
Nada de muito explicativo só uma pesca comum, para obter peixes para Cooking ou para Alquimia.
Lockpick.
Nada de muito novo também.
Montaria
Nada muito diferente também, só existem três pontos diferentes da montaria no meu server para o do global que são, as montarias tem vida e se ela "morrer" você é desmontado, as montarias em quanto montado te libera magias, a montaria tem um slot próprio para poder ser equipada.
Magias e inventario.
Todas classes podem usar qualquer magia mas as magias são vinculadas as items, então para ter a magia liberada a pessoa tem que estar com o item equipado para aumentar a quantidade magias criei mais dois slots no inventario um slot para montaria e mais um anel.
Vou ficar devendo falar sobre o craft e a alquimia, pois ainda estou trabalhando neles. deixar um agradecimento especial a galera do discord do TK que me ajudou com ideias e me guiando para melhorar sistemas existentes . Qualquer duvida ou sugestão para os sistemas acima ou para qualquer outro tipo de sistema que você acha que poderia ficar legal em conjunto com esses sistemas ficarei ligado nos comentários desse tópico. Obrigado pela atenção.
Bonus:
-
vyctor17 recebeu reputação de Kramer em [Show-Off] Vyctor17Oi Tk, faz um tempo que eu postei alguns módulos que eu fiz, para o OTclient, agora vou mostrar um pouco de como eles foram implementados em um projeto de teste. vou fazer um breve explicação sobre o o funcionamento e depois colocarei um GIF ou Video mostrando in-game.
Raridade em monstros e items.
Monstros: a raridade em monstros aumenta seu poder de ataque e vida baseado na raridade. Para monstros existem 4 Tiers de raridade, Comum, Épico, Lendário e Único um monstro com raridade acima de comum sempre protegendo um bau com recompensas.
Items: Os items tem variação de raridade baseado em um encantamento obtido via Gemas, Essas raridades são dividas em 5 Tiers de raridade, Comum, Magico, Épico, Lendário e Único.
a imagem não contem item e monstros únicos
Gemas de encantamento.
As gemas de encantamento melhoram um item e só podem ser utilizadas uma vez por item, existem duas gemas uma pode dar de um a três atributos novos ao item e outra de um a seis, a partir do numero de atributos novos gerados no item é definido sua raridade. As gemas podem ser obtidas através de mineração ou em baus de recompensa.
Baus de recompensa.
São gerados junto a monstros de raridade acima de comum dependo de qual bau o monstro protege mais forte ele é, exemplo um monstro épico protegendo um bau de ouro é mais forte que um épico protegendo um bau normal. Para abrir o bau você terá que fazer o Lockpick no bau.
Wasp lendária protegendo bau da fortuna.
Pescaria.
Nada de muito explicativo só uma pesca comum, para obter peixes para Cooking ou para Alquimia.
Lockpick.
Nada de muito novo também.
Montaria
Nada muito diferente também, só existem três pontos diferentes da montaria no meu server para o do global que são, as montarias tem vida e se ela "morrer" você é desmontado, as montarias em quanto montado te libera magias, a montaria tem um slot próprio para poder ser equipada.
Magias e inventario.
Todas classes podem usar qualquer magia mas as magias são vinculadas as items, então para ter a magia liberada a pessoa tem que estar com o item equipado para aumentar a quantidade magias criei mais dois slots no inventario um slot para montaria e mais um anel.
Vou ficar devendo falar sobre o craft e a alquimia, pois ainda estou trabalhando neles. deixar um agradecimento especial a galera do discord do TK que me ajudou com ideias e me guiando para melhorar sistemas existentes . Qualquer duvida ou sugestão para os sistemas acima ou para qualquer outro tipo de sistema que você acha que poderia ficar legal em conjunto com esses sistemas ficarei ligado nos comentários desse tópico. Obrigado pela atenção.
Bonus:
-
vyctor17 recebeu reputação de WooX em [Show-Off] Vyctor17Oi Tk, faz um tempo que eu postei alguns módulos que eu fiz, para o OTclient, agora vou mostrar um pouco de como eles foram implementados em um projeto de teste. vou fazer um breve explicação sobre o o funcionamento e depois colocarei um GIF ou Video mostrando in-game.
Raridade em monstros e items.
Monstros: a raridade em monstros aumenta seu poder de ataque e vida baseado na raridade. Para monstros existem 4 Tiers de raridade, Comum, Épico, Lendário e Único um monstro com raridade acima de comum sempre protegendo um bau com recompensas.
Items: Os items tem variação de raridade baseado em um encantamento obtido via Gemas, Essas raridades são dividas em 5 Tiers de raridade, Comum, Magico, Épico, Lendário e Único.
a imagem não contem item e monstros únicos
Gemas de encantamento.
As gemas de encantamento melhoram um item e só podem ser utilizadas uma vez por item, existem duas gemas uma pode dar de um a três atributos novos ao item e outra de um a seis, a partir do numero de atributos novos gerados no item é definido sua raridade. As gemas podem ser obtidas através de mineração ou em baus de recompensa.
Baus de recompensa.
São gerados junto a monstros de raridade acima de comum dependo de qual bau o monstro protege mais forte ele é, exemplo um monstro épico protegendo um bau de ouro é mais forte que um épico protegendo um bau normal. Para abrir o bau você terá que fazer o Lockpick no bau.
Wasp lendária protegendo bau da fortuna.
Pescaria.
Nada de muito explicativo só uma pesca comum, para obter peixes para Cooking ou para Alquimia.
Lockpick.
Nada de muito novo também.
Montaria
Nada muito diferente também, só existem três pontos diferentes da montaria no meu server para o do global que são, as montarias tem vida e se ela "morrer" você é desmontado, as montarias em quanto montado te libera magias, a montaria tem um slot próprio para poder ser equipada.
Magias e inventario.
Todas classes podem usar qualquer magia mas as magias são vinculadas as items, então para ter a magia liberada a pessoa tem que estar com o item equipado para aumentar a quantidade magias criei mais dois slots no inventario um slot para montaria e mais um anel.
Vou ficar devendo falar sobre o craft e a alquimia, pois ainda estou trabalhando neles. deixar um agradecimento especial a galera do discord do TK que me ajudou com ideias e me guiando para melhorar sistemas existentes . Qualquer duvida ou sugestão para os sistemas acima ou para qualquer outro tipo de sistema que você acha que poderia ficar legal em conjunto com esses sistemas ficarei ligado nos comentários desse tópico. Obrigado pela atenção.
Bonus:
-
vyctor17 recebeu reputação de Kramer em [Show-Off] Dungeon roomEsse tópico é só um show-off de um sistema que estou trabalhando, vou deixar aqui algumas utilidades praticas do mesmo e gostaria de sugestões e ideias para utilizá-lo de maneira criativa.
Basicamente, é um sistema que pode gerar um mapa em uma posição definida, e pode trocar o mapa na mesma posição por outro, possibilitando a criação de salas "infinitas" sobe demanda de players para dungeons(por exemplo a dz da pxg tem um numero limitado de salas, com um sistema parecido essas salas poderão ser geradas dinamicamente), quests, salas de HUNT privadas ou qualquer outro sistema que precisa de um mapa especifico para funcionar, o mapa é alocado em tempo real em segundos. no vídeo abaixo preste atenção no minimapa.
PEQUENO VIDEO DE UPDATE MOSTRANDO DOIS CLIENTES EM SALAS INDIVIDUAIS AO MESMO TEMPO:
-
vyctor17 recebeu reputação de luanluciano93 em Lockpick e fishingEstou liberando o modulo de lockpick e fishing que eu fiz a muito tempo, é um modulo conceito oque significa que precisa ser melhorado para entrar em um servidor. acho que é uma boa base para se trabalhar em sistemas do gênero.
https://github.com/vyctor17/otclient-mods
Exemplo de action que usava no lockpick no meu server para testar.
function onUse(cid, item, frompos, item2, topos) if item2.uid > 0 then if item2.itemid == 1741 then local minrange = getItemAttribute(item2.uid, 'minrange') local maxrange = getItemAttribute(item2.uid, 'maxrange') if minrange ~= nil and maxrange ~= nil then doSendPlayerExtendedOpcode(cid, 27, "Open|"..minrage.."|"..maxrange) else doItemSetAttribute(getThingfromPos(topos).uid, "minrange", 35) doItemSetAttribute(getThingfromPos(topos).uid, "maxrange", 45) doSendPlayerExtendedOpcode(cid, 27, "Open|35|45") end end end return true end
-
vyctor17 recebeu reputação de LeoTK em Lockpick e fishingEstou liberando o modulo de lockpick e fishing que eu fiz a muito tempo, é um modulo conceito oque significa que precisa ser melhorado para entrar em um servidor. acho que é uma boa base para se trabalhar em sistemas do gênero.
https://github.com/vyctor17/otclient-mods
Exemplo de action que usava no lockpick no meu server para testar.
function onUse(cid, item, frompos, item2, topos) if item2.uid > 0 then if item2.itemid == 1741 then local minrange = getItemAttribute(item2.uid, 'minrange') local maxrange = getItemAttribute(item2.uid, 'maxrange') if minrange ~= nil and maxrange ~= nil then doSendPlayerExtendedOpcode(cid, 27, "Open|"..minrage.."|"..maxrange) else doItemSetAttribute(getThingfromPos(topos).uid, "minrange", 35) doItemSetAttribute(getThingfromPos(topos).uid, "maxrange", 45) doSendPlayerExtendedOpcode(cid, 27, "Open|35|45") end end end return true end
-
vyctor17 recebeu reputação de OLOSTER GAMES em Monstros Focando SummonsMonstros Focando Summons (tfs 0.3.6pl1)
Eai galera, to ativo essa semana rs, agora to trazendo pra vcs uma modificação que faz as criaturas sempre atacarem os summons antes dos players, tipo a do servidores de pokemon mas acho que pra fazer isso eles mudam o group do player pra um group que monstro não ataca, agora vou mostrar como fazer isso certo rs.
Lembrando que essa modificação da maneira que esta neste tópico só funciona com http://www.tibiaking.com/forum/topic/53480-criaturas-passivas/
já instalado nas source . da pra fazer funcionar sem isso sim e é ate bem simples só tirar algumas checagens mas dai isso fica com vcs :0.
Obs: Diferente do método em que se muda o group do player, se uma criatura usa um poder em área, e o player estiver perto tmb toma o dano. se vc não gostou desta informação digo que tem como "retirar o dano" com um statchange checando se o player tem um summon ativo.
Em Monster.cpp:
Procure por:
void Monster::doAttacking(uint32_t interval) E em baixo de:
if(!attackedCreature || (isSummon() && attackedCreature == this)) return; Adicione:
const std::list<Creature*>& summons = attackedCreature->getSummons(); CreatureList::const_iterator itt = summons.begin(); for(uint32_t i = 1; itt != summons.end(); ++itt, ++i) { if (i >= 1 && *itt){ searchTarget(); } } Ainda em Monster.cpp procure por:
bool Monster::selectTarget(Creature* creature) e em baixo de:
if(!isHostile() && getHealth() == getMaxHealth() && !isSummon()){ return false; } Adicione:
const std::list<Creature*>& summons = creature->getSummons(); CreatureList::const_iterator itt = summons.begin(); for(uint32_t i = 1; itt != summons.end(); ++itt, ++i) { if (i >= 1 && *itt){ if((isHostile() || isSummon() || !isHostile() && getHealth() != getMaxHealth()) && setAttackedCreature(*itt) && !isSummon()) Dispatcher::getInstance().addTask(createTask( boost::bind(&Game::checkCreatureAttack, &g_game, getID()))); return setFollowCreature(*itt, true); } } Gostou?, então se puder me ajude!
não autorizo o re-post em qualquer outro fórum sem minha autorização.
vyctor17 - Waki-V LTDA ©
-
vyctor17 recebeu reputação de Pedro. em [Show-Off] Dungeon roomEsse tópico é só um show-off de um sistema que estou trabalhando, vou deixar aqui algumas utilidades praticas do mesmo e gostaria de sugestões e ideias para utilizá-lo de maneira criativa.
Basicamente, é um sistema que pode gerar um mapa em uma posição definida, e pode trocar o mapa na mesma posição por outro, possibilitando a criação de salas "infinitas" sobe demanda de players para dungeons(por exemplo a dz da pxg tem um numero limitado de salas, com um sistema parecido essas salas poderão ser geradas dinamicamente), quests, salas de HUNT privadas ou qualquer outro sistema que precisa de um mapa especifico para funcionar, o mapa é alocado em tempo real em segundos. no vídeo abaixo preste atenção no minimapa.
PEQUENO VIDEO DE UPDATE MOSTRANDO DOIS CLIENTES EM SALAS INDIVIDUAIS AO MESMO TEMPO:
-
vyctor17 recebeu reputação de lordzetros em [Show-Off] Dungeon roomEsse tópico é só um show-off de um sistema que estou trabalhando, vou deixar aqui algumas utilidades praticas do mesmo e gostaria de sugestões e ideias para utilizá-lo de maneira criativa.
Basicamente, é um sistema que pode gerar um mapa em uma posição definida, e pode trocar o mapa na mesma posição por outro, possibilitando a criação de salas "infinitas" sobe demanda de players para dungeons(por exemplo a dz da pxg tem um numero limitado de salas, com um sistema parecido essas salas poderão ser geradas dinamicamente), quests, salas de HUNT privadas ou qualquer outro sistema que precisa de um mapa especifico para funcionar, o mapa é alocado em tempo real em segundos. no vídeo abaixo preste atenção no minimapa.
PEQUENO VIDEO DE UPDATE MOSTRANDO DOIS CLIENTES EM SALAS INDIVIDUAIS AO MESMO TEMPO:
-
vyctor17 recebeu reputação de Pepeco em [Show-Off] Dungeon roomEsse tópico é só um show-off de um sistema que estou trabalhando, vou deixar aqui algumas utilidades praticas do mesmo e gostaria de sugestões e ideias para utilizá-lo de maneira criativa.
Basicamente, é um sistema que pode gerar um mapa em uma posição definida, e pode trocar o mapa na mesma posição por outro, possibilitando a criação de salas "infinitas" sobe demanda de players para dungeons(por exemplo a dz da pxg tem um numero limitado de salas, com um sistema parecido essas salas poderão ser geradas dinamicamente), quests, salas de HUNT privadas ou qualquer outro sistema que precisa de um mapa especifico para funcionar, o mapa é alocado em tempo real em segundos. no vídeo abaixo preste atenção no minimapa.
PEQUENO VIDEO DE UPDATE MOSTRANDO DOIS CLIENTES EM SALAS INDIVIDUAIS AO MESMO TEMPO:
-
vyctor17 deu reputação a amora murder em [Show-Off] Dungeon roomMuito bacana... Tá de parabéns!
Acho legal demais a galera que desenvolve esse tipo de ideia, queria ter conhecimento suficiente pra fazer esse tipo de coisa hahah
Rep+