
Tudo que vyctor17 postou
-
Criaturas Passivas
Criaturas Passivas. (tfs 0.3.6pl1) hoje eu fiquei meio bolado mexendo em meu servidor com um cat me seguindo e pensei, mano que droga o sistema de hostilidade do tibia é uma porcaria.., então resolvi dar uma olhada em como ele funcionava nas source, e acabei vendo que modificando pouca coisa já se tem um sistema de hostilidade melhor não perfeito mas melhor . talvez daqui uns dias eu consiga fazer ele ser 100%, nesse método a criatura só ataca depois de perder vida e o ideal seria ela atacar ao tomar target mas isso tbm é facil de fazer dentro de alguns dias eu atualizo o tópico com isso. Sem mais explicações vamos as ediçoes: em monster.cpp: procure por, bool Monster::selectTarget(Creature* creature) agora nesta função procure por: if(it == targetList.end()) { //Target not found in our target list. #ifdef __DEBUG__ std::cout << "Target not found in targetList." << std::endl; #endif return false; } e logo a baixo adicione: if(!isHostile() && getHealth() == getMaxHealth() && !isSummon()){ return false; } e na função a baixo deixa assim: if((isHostile() || isSummon() || !isHostile() && getHealth() != getMaxHealth()) && setAttackedCreature(creature) && !isSummon()) Dispatcher::getInstance().addTask(createTask( boost::bind(&Game::checkCreatureAttack, &g_game, getID()))); Agora ainda no monster.cpp procure por: bool Monster::canUseAttack(const Position& pos, const Creature* target) const e remova isso: if(!isHostile()) return true; agora é só recompilar e esta pronto . 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 ©
-
getCreaturePathTo
isso já ecxiste!, doCreatureSetHideHealth(cid, true)
-
Armas que nao batem em player!
faz a parte de dano com um loop na area e checa com um if not isPlayer(cid) then pra verificar se não tem um player.
- Advanced Sound
- Advanced Sound
- Biblioteca FileManager Alpha0.1
-
Advanced Sound
Eai 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 ©
-
Biblioteca FileManager Alpha0.1
File Manager Lib Alpha0.1: Biblioteca para fazer download de arquivos de maneira simples e fácil em lua, podendo ser usada em conjunto com o "OtClient" para fazer um atualizador automático. Funções Alpha0.1: Function List Alpha0.1: doDownloadFile(output, imput) doExecuteSystem(...) doRemoveFile(file) doCheckFile(file) Próxima atualização Alpha0.2: Funções que ainda vão ser adicionadas no Alpha0.2: getDownloadInfo() doExtractFile() Exemplo de uso em lua: require('fileManager') local uPd_Config = { [1] = {"teste.png", "http://wiki.ua.sapo.pt/w/images/c/c9/Rotatetrans.png"}, [2] = {"teste2.png", "http://fc08.deviantart.net/fs70/f/2013/037/5/c/google_chrome__wallpaper__by_hardii-d5u2g2j.png"}, } for i = 1, #uPd_Config do if fileManager.doRemoveFile(uPd_Config[i][1]) then print("File exist Deleting...") print("Download Start") fileManager.doDownloadFile(uPd_Config[i][1], uPd_Config[i][2]) print("Download Done") else print("Download Start") fileManager.doDownloadFile(uPd_Config[i][1], uPd_Config[i][2]) print("Download Done") end end Download 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 ©
-
Biblioteca de atualização.
Então isso que eu falei é a logica para um "updater" eu só vou fazer a biblioteca que torna ela possível a parte em lua, quem quiser usar a biblioteca vai ter que se virar. mas mesmo assim a parte em lua se for bem feita não da mais que 15 linhas.e deixa tudo automatizado e também não é tão complicado de fazer a parte mais chata é mexer com a biblioteca IO, aprendendo isso fica tudo bem fácil...
-
Biblioteca de atualização.
um arquivo text contendo um numero de versão não pesa mais que 1kb ele vai compara com o outro arquivo text se o arquivo existir, se não existir ele inicia o download do arquivo mais recente, e já inicia a atualização mas caso o arquivo exista ele compara o numero que contem dentro do arquivo que já esta no seu computador com o numero que existe no novo arquivo que foi baixado se for diferente ele baixa se não, não.., e isso é só uma logica deve ter muitas outras formas de fazer a mesma coisa.
-
Biblioteca de atualização.
não existe porque, eu pensei o seguinte a pessoa pode facilmente colocar em seu domínio um arquivo text que ficaria para deixar a versão atual da atualização, toda vez ao iniciar o Client ele baixa esse arquivo e usa uma biblioteca IO para comparar com o arquivo antigo. e para lista de download pode ate ser um tabela em lua em arquivo text novamente no domínio da pessoa, e depois só é preciso usar o IO e a LoadString. e dai como eu falei usar um for básico e pronto . essa logica dos arquivos text é a mesma que eu uso em meu updater em vb ele sempre baixa um arquivo contendo o numero da ultima versão e compara com oque já tem no client.
-
Biblioteca de atualização.
Olá, a muito tempo atras eu desenvolvi uma "Auto-Updater" para se usar em conjunto com o "otclient", fiz ele em "vb.net" e na época era o máximo que eu podia fazer..., mas agora iniciei um novo projeto. Biblioteca de atualização. Oque é?: é uma ".dll" que estou desenvolvendo com funções para poder criar um "Auto-Updater" em lua no próprio "otclient", oque permite uma customização total na parte visual e na parte do script. E o mais importante é que vai ser da comunidade Open Tibia, oque significa que bem em breve já terá o download da ".dll" com as funções básicas para um teste de estabilidade . Funções lua: Basicas: doDownloadFile (pronta) -- baixar arquivos por url. doRemoveFile (pronta) -- remover um arquivo doCheckFile (pronta) -- checar se um arquivo existe getDownloadInfo (0%) --conseguir todas as informações do download atual tais como (Tamanho do arquivo, Velocidade de download, Total Baixado) doExtractArchive(50%) -- extrair arquivos zip. doOpenProgram(pronta) -abri qualquer arquivo. como (.exe, .txt, ...) Outras podem ser alteradas: doClientUpdate(0%) --inicia um programa secundário para concluir a atualização, caso o Client precise ser fechado para conclusão da atualização. (exemplo caso a atualização é na própria .dll ou no executável do Client). GetClientPath(0%) --Gera o caminho para o executável do Client (Ex: c://MeuClientFeliz) Obs.: Logico que isso é só o necessário para ter um "Auto-Update" básico funcionar. com o tempo vou adicionar novas funções visando melhorar minha biblioteca. Esse post é para instruir e divulgar as pessoas sobre meu projeto, gostaria muito de um feedback positivo e logico que criticas construtivas e ideias são sempre bem vindas . caso alguém tenha alguma ideia que possa ser implementada. por favor é só deixar o seu post. Por ultimo um pequeno exemplo de como ficaria um script para atualizar um arquivo: if doRemoveFile("tibia.spr") then local download = doDownloadFile ("tibia.spr", "https://www.meusitecomosdownloads.com/Path1.0.zip") doExtractArchive(download, GetClientPath().."\Data\Things\854") end E a partir do momento que você tem uma tabela em lua com vários arquivos um simples for já faria todo o trabalho . assim fazendo toda atualização bem fácil de se entender e de se scriptar.
-
Streaming de Programação
Eu ate pensei em começar fazer stream de programação mais não de otserv mais voltado em unity, não sei, se vc quer fazer a stream pra ajudar vai ser bem legal, mas agora se ta querendo view/subscribe otserv não vai atrair muito não...
-
[C++] doCreatureCastSpell(creature, spellName)
o iunix tinha feito uma função que faz a mesma coisa
-
Como aumentar o Distance Effect?
para adicionar novos magic/distance effects dentro do seu game você precisa alem de editar o 000-constant.lua, editar a source do seu servidor acho que é o tools.h
-
getCreaturePathTo
@elwyn, muito bom .
-
OTC Advanced Sound System
Obrigado, estou pensando sobre liberar mas sé fosse liberado só liberaria a dll e a lista de funções não gosto de acomodar as pessoas dando coisas prontas Obrigado tmb
-
OTC Advanced Sound System
privado. ate agora estou pensando em liberar do meu servidor o sistema é meu programei uma dll em c++ pra rodar os som em 3d e apliquei no otlcient obrigado
-
OTC Advanced Sound System
e foi postado antes em outro forum br, já que o topico é meu sim agora me chupa e se for pra comenta coisa assim, tira a mão do teclado. http://otland.net/members/vyctor17.100218/ http://www.tibiaking.com/forum/user/10758-vyctor17/ http://forums.otserv.com.br/index.php/user/134314-vyctor17/ pelo visto as pessoas sem noção do xsanduiche vieram para nesse forum... que pena , o cara nem se preocupa em ver as coisas antes de postar merda
-
OTC Advanced Sound System
é 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. 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!
-
[MOD] Otclient auto-updater
update 3.0 change log: desempenho melhorado.: diversas correções no código para o programa fluir melhor e com mais velocidade, suporte a Client "Dx9" e "opengl" refeito em vb.net 2010 vídeo atualizado versão 3.0 + tutorial em vídeo. Obs: se algum projeto quiser um laucher ou updater 100% customizado pode falar comigo