
OinomedRellik
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
OinomedRellik deu reputação a L3K0T em OTClient PersonalOTCLIENT PERSONAL
O OTClient Personal é uma fusão exclusiva dos recursos do OTClient MeHah, OTClient V8 e OTClient Edubard. Com uma interface totalmente alterada e personalizada, esta versão proporciona uma experiência de jogo singular e adaptável. Além disso, o OTClient Personal recebe atualizações constantes através do GitHub https://github.com/l3k0t/OTClient_Personal, assegurando que os administradores de servidores OTS estejam sempre atualizados com as últimas melhorias e correções na interface e no código-fonte.
Cores nos nomes, isso é só o começo:
Download: https://github.com/l3k0t/OTClient_Personal
Queremos ouvir você! Sua voz é fundamental para tornar nossa comunidade ainda mais vibrante e dinâmica. Convidamos você a contribuir compartilhando suas ideias, sugestões e feedback. Juntos, podemos criar algo verdadeiramente especial. Não hesite em participar e fazer parte desta jornada conosco!
RELEASES DOWNLOADS:
11/05/2024 - Download OTClient 5.1 https://github.com/l3k0t/OTClient_Personal/releases/tag/otclient_5.1
10/05/2024 - Download OTClient 5.0 https://github.com/l3k0t/OTClient_Personal/releases/tag/otclient_5.0
-
OinomedRellik deu reputação a L3K0T em Health Bar para OTC 0.6.6 e 0.6.7Tutorial Heath Bar
Oi Galera tudo bem??? hoje vou ensinar vocês como por a Health Bar como na imagem acima "dentro do circulo amarelo" no seu otcliente 0.6.6 e 0.6.7. Para começar essa alteração é pela source, caso não tenha source do seu OTC não adianta... Recomendo baixar otclientes com sources
1° vai na pasta da source do seu otcliente e abre o arquivo creature.cpp e ache;;;
if(drawFlags & Otc::DrawBars && (!isNpc() || !g_game.getFeature(Otc::GameHideNpcNames))) { g_painter->setColor(Color::black); g_painter->drawFilledRect(backgroundRect); g_painter->setColor(fillColor); g_painter->drawFilledRect(healthRect); } if(drawFlags & Otc::DrawNames) { if(g_painter->getColor() != fillColor) g_painter->setColor(fillColor); m_nameCache.draw(textRect); } altere para;;
if(drawFlags & Otc::DrawBars && (!isNpc() || !g_game.getFeature(Otc::GameHideNpcNames))) { g_painter->setColor(fillColor); g_painter->drawFilledRect(healthRect); ImagePtr backgroundLifeBar = Image::load("data/images/game/target_healbar/healtbar.png"); TexturePtr bgLifeBar = TexturePtr(new Texture(backgroundLifeBar, false)); g_painter->drawTexturedRect(backgroundRect, bgLifeBar); } if (drawFlags & Otc::DrawNames) { if (g_painter->getColor() != fillColor) g_painter->setColor(fillColor); m_nameCache.draw(textRect); } procure ainda em creature.cpp;;
#include <framework/core/clock.h> abaixo adicione;;
#include <framework/graphics/image.h> agora vá em data\images\game do OTC e cole essa pasta dentro dele;;
target_healbar.zip"ATENÇÃO REMOVA A PASTA DO WINRAR E COLOCA LÁ DENTRO"
Feito isso é só compilar o OTC pela opção Rebuilde e seja feliz
Vídeo;;
Créditos:
Ceetros (criador original)
Ajudei?? REP+
-
OinomedRellik deu reputação a Cat em [novo] » Mapas do NolisEm minhas caminhadas dentre as montanhas do vale do Itapocu e as ruínas antigas da Itália , gravei em minha memória a sensação única que é se aventurar na natureza.
Ela é rica em detalhes, momentos arquitetados pelo tempo e pelas criaturas.
Transmitir essa emoção no universo do mapping é minha missão.
Shinobi Universe
Outras amostras:
-
OinomedRellik deu reputação a Cat em [novo] » Mapas do Nolis
-
OinomedRellik deu reputação a Jepart em Compilando com Microsoft Visual Studio 2013Procurei um tutorial aqui no fórum que utiliza-se o Microsoft Visual Studio 2013 para complilar o OTC porem não achei então fui pra outro fórum e vim trazer para o TK
1.Download
MSVC 2013 Libs - Aqui Source - Aqui 2.Agora que temos as source e libs está na hora de colocá-los nos lugares corretos.
Coloque as "otclient-master" e "otclient-msvc13-libs" na "C:\" .Isto vai poupar muito tempo, porque você não tem que ligar manualmente todas as inclui e libs.
3.Abrindo o MSVC 2013
(Imagem de outro forum - dominique120)
4. Agora vamos configurar as propriedades
5. Agora selecione a configuração correta:
6. Agora, aqui ele pode ficar um pouco confuso, então preste atenção.
6.1 Se você extraiu as libs para o ? / drive você só precisa adicionar isso ao seu includes:
E isso para as suas libs
6.2 Mas, se você extraiu os libs em outros lugares que você deve adicionar esses diretórios também.
Isto é para o includes:
Isto é para as libs:
6. Agora clique em Aplicar e deixar os arquivos analisar, isso é automático.
7. Uma vez que é você pode reconstruir os arquivos.
8. Construindo seu .exe .
9. Agora é só esperar termina e você vai ter seu .exe.
10. Caso precise das DLL basta baixar aqui.
Créditos:
@dominique120 - pelo tutorial
@edubart - pelo desenvolvimento do OTC
@Dalkon - por adicionar arquivos de compilação MSVC
@conde2- por fixar-se a fonte de modo que seja compatível com o compilador do MSVC
-
OinomedRellik deu reputação a Cat em Blender - Transformar Modelos 3d (.dae) em Sprites 2d (p45)Transformar Modelos 3d em Sprites 2d p45
Créditos pelo tutorial: OtavioGFL (ele que me ensinou)
Antes de tudo, pra isso funcionar, você vai precisar de:
- Blender
- Arquivo contendo as configurações para perspectiva 45 graus: perspective_45 by OtavioGFL.blend
- Modelos:
Você encontra diversos tipos de modelos 3d no Deviant Art e em outros sites.
Pesquise EXEMPLO model + o formato => mmd, xna e dae.
(mmd e xna precisa usar addon pra importar, neste tutorial trabalharei com o formato .dae)
1 - Abra o arquivo perspective 45 by OtavioGFL no blender.
2 - Vá em arquivo -> importar -> Collada (.dae) e selecione o modelo baixado.
3 - Vai abrir como na imagem abaixo, clique em Modificar Propriedades:
4 - Clique em Adicionar Modificador:
5 - Seleciona a modificação Treliça:
6 - Agora clique em Objeto:
7 - Selecione Lattice dentro de Objeto:
8 - O modelo de boneco 3d está em perspectiva 45 graus e pronto para ser convertido, veja a imagem abaixo, agora vamos para o próximo passo que é modificar tamanho, rotação, partes do corpo, etc. E em seguida finalizar a conversão.
9 - Para mudar o tamanho, selecione os bones (clique exatamente na ponta da flecha amarela), e pressione a tecla S:
10 - Para mover peças ou partes do corpo e fazer outras alterações use diferentes tipos de Object Mode, eles ajudam na seleção dos bones (selecione com o botão esquerdo). Para visualizar melhor os bones e saber quais mover, continue abaixo:
11 - Mudar visualização do modelo (camera):
12 - Visualização e gerenciamento de arquivo
O boneco está pronto para ser convertido, pressione F12:
Resultado Final:
Se quiserem testar com o modelo que eu usei está abaixo:
NTBSS_Orochimaru.rar
-
OinomedRellik deu reputação a L3K0T em RESOLVENDO O ERRO (luaDoCreatureExecuteTalkAction) Creature not foundBom galera hoje irei ensinar você como resolver o erro (luaDoCreatureExecuteTalkAction) Creature not found causado pela a função "doCreatureExecuteTalkAction" o erro é bem simples de resolver porem ainda tem gente que sofre com essa função.
Função o que ela faz?
doCreatureExecuteTalkAction = puxa um comando talkactions da talkactions.xml, ai toda vez que o player logar ou clicar ele vai chamar um script da talkactions.xml.
Erro:
[5:8:44.528] [Error - CreatureScript Interface] [5:8:44.530] data/creaturescripts/scripts/login.lua:onLogin [5:8:44.530] Description: [5:8:44.532] (luaDoCreatureExecuteTalkAction) Creature not found Porque acontece esse erro?? muitas vezes a função não é inserida corretamente, nesse caso a função foi usada nessa seguinte forma:
Função Errada;
doCreatureExecuteTalkAction("/t", true) Como não possui a função CID = verificar se é player então retorna o erro mostrado lá em cima o modo certo de usar essa função seria;
Função Certa;
doCreatureExecuteTalkAction(cid, "/t", true) assim ela funcionaria perfeitamente no login.lua ou em item, piso clicáveis, espero ter tirado essa dúvida de algumas pessoas que quebram a cabeça por algo bem simples
-
OinomedRellik deu reputação a LeoTK em [Wono 1.2] Server + Cliente + Pasta RMESalve galera estou com esse servidor do wono 1.2 guardado a um tempo e resolvi postar deve ter bastante coisa que vocês podem reutilizar porém não possui source apenas o servidor/cliente e os arquivos da pasta para o rme favor utilizar o spr/dat da pasta map editor eu utilizei esse para abrir o mapa etc....
Server roda apenas em linux já que não tem o executável junto como eu disse estou disponibilizando para vocês reutilizarem o conteúdo ou até mesmo estudarem códigos etc...
wono12.rar
Scan
Lembrando não darei suporte neste tópico se tiver problemas crie um novo tópico de ajuda na área de suporte bom uso
-
OinomedRellik recebeu reputação de NTORox OTServer em Monster Level TFS e OTXver direito se é monsters.h ou monster.h me confundi também
-
OinomedRellik deu reputação a LeoTK em Monster Level TFS e OTX@.HuRRiKaNe pra uma atualização boa ou mais futura seria legal trazer também quanto maior o nivel da criatura mais exp em porcentagem daria exemplo 10% ou 20% a mais de exp por level, assim valeria a pena caçar criaturas de nível mais forte porém da mesma raça saca
-
OinomedRellik deu reputação a Storm em (Resolvido)[PEDIDO] Ganhar recompensa ao matar jogador@OinomedRellik Tenta assim:
-
OinomedRellik deu reputação a Storm em (Resolvido)[PEDIDO] Ganhar recompensa ao matar jogador@OinomedRellik Testa aí, eu tinha esquecido de nomear as variáveis corretamente (muito tempo sem programar da nisso)
local config = { storageX = 1001, itemX = 5943, countX = 1, StorageY = 1002, itemY = 5808, countY = 1, item0 = 5805, count0 = 1 } function onKill(cid, target, lastHit) if isPlayer(target) then if getPlayerStorageValue(target, config.storageX) == 1 then doPlayerAddItem(cid, config.itemX, config.countX) elseif getPlayerStorageValue(target, config.storageY) == 1 then doPlayerAddItem(cid, config.itemY, config.countY) else doPlayerAddItem(cid, config.item0, config.count0) end end return true end
-
OinomedRellik deu reputação a Mathias Kenfi em (Resolvido).Fiz aqui pra você, amigo
-
OinomedRellik deu reputação a Jeanfersonsp em (Resolvido)Deixar 1 dos effect lentolocal combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 15)
function onGetFormulaValues(cid, level, skill, attack, factor)
local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)
local min = (level * 3 + lvl_skill * 3) * 1
local max = (level * 3 + lvl_skill * 3) * 1
return -min, -max
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
local delay = 1500 -- (1000 = 1 seg)
local target = getCreatureTarget(cid)
if target > 0 and isCreature(cid) then
position1 = {x=getThingPos(target).x, y=getThingPos(target).y, z=getThingPos(target).z}
position2 = {x=getThingPos(target).x, y=getThingPos(target).y, z=getThingPos(target).z}
doSendMagicEffect(position1, 688)
addEvent(doSendMagicEffect, delay, position2, 683)
local skillmin = 1 -- MINIMO DE SKILL PRA LANÇAR A MAGIA
if getPlayerSkillLevel(cid, skill) < skillmin then
return doPlayerSendCancel(cid, "You must have at least ".. skillmin .." of sword skill to use this spell.")
end
return doCombat(cid, combat, var)
end
end
-
OinomedRellik deu reputação a BangxD em [Narutibia] Jinchuuriki System - Distro 0.4@Breno Neves só falta isso pra o sistema fica perfeito pra min. pode min ajuda?
-
OinomedRellik deu reputação a KotZletY em [Narutibia] Jinchuuriki System - Distro 0.4Salve rápázyádá, recentemente estava de rolê pelo tk, e vi um tópico com o seguinte pedido: "Jinchuuriki System", pra que não conhece irei da um breve resumo.
Para quem conhece o anime naruto sabe sobre as bijuus, e que elas foram seladas em shinobis destinados a carregar tamanha responsabilidade devido a cada biju ter um poder destruidor, como por exemplo a bijuu raposa de nove caldas(Kyuubi), selada dentro do personagem principal chamado de Naruto Uzumaki, a Kyuubi quando dominada, dá ao usuário uma grotesca quantidade de chakra, assim como jutsus e muito mais, cada bijuu tem sua especialidade, jutsus de defesa, assim como a própia defesa e resistência do usuário a tais jutsus, mas claro para você ter a bijuu, é necessário que você sele-a dentro de você, através de um dos jutsus proibidos, como o Shiki Fuujin usado por Minato o 4º Hokage e também pai de naruto, ao usar o selo ele consome a alma de quem usa levando-o a morte após o termino do jutsu, minato como hokage não poderia deixar a kyuubi destruir a vila, então ele invoca o Selo Consumidor do Demônio Morto(Shiki Fuujin) conhecido também como Selo Ceifeiro da Morte, e sela a kyuubi dentro de seu própio filho salvando a vila e morrendo como herói, e naruto desde então passa a ser o Jinchuuriki da raposa de nove caldas.
Tendo uma ideia básica de como funciona, vamos a explicação do sistema, que não é diferente.
Ao usar um jutsu(spell) de selo em algum bijuu(monstro), você terá ele selado dentro de você e obterá os jutsus de acordo com cada bijuu, mas para isso, a vida(hp) da bijuu deve está menor que 20%(configurável), e então você durante 2(configurável) dias, terá ele selado dentro de você e poderá usar os jutsus, ao acabar esse tempo você irá perdelo, assim como os jutsus.
Sistema criado e testado na versão 8.60 usando uma distro na versão 0.4, mesmo assim pode funcionar em versões inferiores!!
Siga os passos corretamente que é sucesso.
Vá em data/lib e crie um arquivo chamado JinchuurikiSystem.lua e coloque o seguinte code dentro:
A tabela está de acordo com a ordem de bijuus existente desde o bijuu de 1 calda, até a biju de nove caldas, então você irá mexer somente em qual ou quais jutsus(spells) cada bijuu irá usar, mais precisamente aqui:
spells = {""} entre aspas coloque a quantidade que seja de jutsus(spell), como por exemplo:
Tk no Jutsu 1- Tk no jutsu 2, separados por virgula, assim:
spells = {"Tk no jutsu 1", "Tk no jutsu 2"} Lembrando que o nome das spells não é a que fica em words, é que fica em name na xml, por exemplo:
eu tenho um jutsu chamado kai, quem joga narutibia sabe pra que serve, para usar ela, usamos o nome que está em words, e a que fica em name, será que vai ser mostrada quando for usar, entretanto a função que faz o player aprender a spell, segui pelo nome:
<instant name="Kai!" words="kai" note que contém uma exclamação no nome da spell, então vai ter que ir exclamação e tudo junto, ficando assim:
spells = {"Tk no jutsu 1", "Tk no jutsu 2", "Kai!"} e então quando o player for usar a spell pelo words kai, a spell será usada.
Agora vá em data/spells/scripts crie um arquivo chamado selojin.lua e coloque o seguinte code dentro:
Agora vá em data/spells/scripts crie um arquivo chamado buff bijuu.lua e coloque o seguinte code dentro:
a tag que você irá colocar na spells.xml para esse jutsu(spell) será a seguinte:
<instant name="Shiki Fuujin" words="shiki fuujin" lvl="1" mana="1" prem="0" exhaustion="10" enabled="1" needtarget="1" event="script" value="selojin.lua"> </instant> <instant name="Buff Jin" words="buff jin" lvl="1" mana="0" prem="0" selftarget="1" exhaustion="1000" enabled="1" event="script" value="buff bijuu.lua"> </instant>
Agora vá em data/talkactions/scripts e crie um arquivo chamado jincheck.lua e coloque o seguinte code dentro:
Nota: esse comando serve para você checar quanto tempo você tem de Jinchuuriki, e qual bijuu está selado dentro de você.
A tag da talkactions.xml para esse jutsu(spell) é a seguinte:
<talkaction words="!jincheck" event="script" value="jincheck.lua"/>
Agora vá em data/globalevents/scripts e crie um arquivo chamado jincheck.lua e coloque o seguinte code dentro:
Nota: esse script checa a cada um minuto, os players online na qual o tempo de Jinchuuriki já expirou, e então remove, para assim ele não continuar com os jutsus.
A tag do globalevents.xml desse script é a seguinte:
<globalevent name="JinSystem" interval="60000" script="jincheck.lua"/>
Agora pra finalizar vá em data/creaturescripts/scripts e crie um arquivo chamado jinsystem.lua e adicione o seguinte code:
e a tag do creaturescripts.xml desse script é a seguinte:
<!-- Jinchuuriki System --> <event type="look" name="JinSystemLook" event="script" value="jinsystem.lua"/> <event type="death" name="JinSystemDeath" event="script" value="jinsystem.lua"/> <event type="login" name="JinSystemLogin" event="script" value="jinsystem.lua"/> <event type="logout" name="JinSystemLogout" event="script" value="jinsystem.lua"/>
Nota: na spells.xml que não precisam ter uma vocação especifica para ser usada e devem conter a tag:
needlearn="1" contendo essa tag, a spell não irá aparecer para nenhum player e não poderá ser usado até que o player sele a bijuu, após ser aprendida quando o player sela a bijuu, irá aparecer no comando !jutsus que em servidores normais é o spellbook e o !spells, em quanto o player não selar, ele não ver e nem pode usar.
bijuu_outfit é o id da looktype que o player vai ganhar ao usar o buff(se você tem outro buff ou speel que faça o mesmo, remova-o ou então remova a função doSetCreatureOutfit da minha buff, assim não gerando conflito e ficando o outfit que deseja).
skill_p é a quantidade de pontos que ao usar o buff da bijuu, vai add no player.
time_buff é quanto tempo o buff vai ficar no player valendo também para a looktype.
effBuff é o id do efeito que vai sair em cima do player quando ele usar o buff.
Pronto, basta configura a spells que cada bijuu(monstro), e pronto.
Acho que não preciso explicar como configurar, no própio script deixei umas observações.
É totalmente proibido levar meu sistema para outro blog, site ou fórum, fiz esse sistema exclusivamente para membros da comunidade do TibiaKing.
Quaisquer erros, sugestões, críticas(construtivas), fiquem a vontade, caso tenha alguma duvida sobre tal parte do script, ou não entendeu alguma parte de como configurar, basta comentar que estarei dando suporte.
Script feito por mim.
Abraços, bom uso, e boa noite! xD
-
OinomedRellik deu reputação a Rafaelk36 em (Resolvido)[Ajuda] Vip Door Com Levelfunction onUse(cid, item, frompos, item2, topos) local idPortaAberta = 9181 local idPortaFechada = 9181 local levelNeeded = 500 ---level necessario pra passar if not isPremium(cid) then return doPlayerSendTextMessage(cid,22,"Você precisa ter Premium Account para passar!") end if getPlayerLevel(cid) < levelNeeded then return doPlayerSendTextMessage(cid,22,"Você necessita do level "..levelNeeded.." !") end doTransformItem(item.uid, idPortaAberta) local dir = getDirectionTo(getPlayerPosition(cid), frompos) doMoveCreature(cid, dir) doMoveCreature(cid, dir) local porta = getTileItemById(frompos, idPortaAberta) if porta.uid > 0 then doTransformItem(porta.uid, idPortaFechada) end return TRUE end
-
OinomedRellik deu reputação a LeoTK em [Qualquer ACC] Limitador de caracteresSalve galera bom achei um código bem simples porém que pode ajudar bastante gente para evitar criar por exemplo guildas com nomes muito grande ou qualquer outra coisa que queiram colocar limite de caracteres para usar
Código
data-ls-module='charCounter' maxlength='10' Bom é necessário adicionar esse código na linha que é colocado o nome de algo por exemplo no arquivo create_guilds.php do modern acc seria adicionado nessa linha
echo "<input type='text' data-ls-module='charCounter' maxlength='10' name='name'><br />"; Dessa forma não permite o nome da guilda ultrapassar 10 caracteres
-
OinomedRellik deu reputação a Wakon em (Resolvido)[AJUDA] npc entrega storage varias vezeslocal cfg = { item = {5943, 15}, storage = 32100, hp_bonus = 1000, skills_bonus = { [SKILL__MAGLEVEL] = 10, [SKILL_FIST] = 10, } } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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, 'yes')) then if (getPlayerStorageValue(cid, cfg.storage) < 1) then if (doPlayerRemoveItem(cid, cfg.item[1], cfg.item[2])) then for v, k in pairs (cfg.skills_bonus) do doPlayerAddSkill(cid, v, k) end setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + cfg.hp_bonus) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) setPlayerStorageValue(cid, cfg.storage, 1) selfSay('Parabéns agora você faz parte da Akatsuki, utilize o comando !akatsuki.', cid) else selfSay('Não adianta me enganar, você não tem '.. cfg.item[2] ..' {'.. (cfg.item[2] == 1 and getItemNameById(cfg.item[1]) or getItemPluralNameById(cfg.item[1])) ..'}, vai atrás, e só volte com eles.', cid) end else selfSay('Você já faz parte da Akatsuki.', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) @OinomedRellik
-
OinomedRellik deu reputação a Sir Andrey em [PEDIDO] Não atacar o propio summonexatamente como ele falou, pq nesse caso o cid é o summon e sendo assim o registerCreatureEvent() tem q ser no summon, exemplo
no script do summon vc procura essa parte
creature = doSummonCreature(nome, getCreaturePosition(cid)) doConvinceCreature(cid, creature)
aí vc add embaixo disso, isto:
registerCreatureEvent(creature, "SummonAntKillPlayer") -
OinomedRellik deu reputação a Gaant em (Resolvido)NPC que teleportaAfs cara eu queria ganhar um rep +, mais c posto primeiro né, entãum ta...
eu ia entregar a file pronta...
E vc n mencionou como ele queria....
além de ter pego de um server e n ter posto o crédito...