
Tudo que L3K0T postou
- Ots 8.60 exclusivos, novidades sobre bots, anti-MapTracker e muitos sistemas de eventos para seu Otserv!
-
comando de adm serve pokemon
Este tópico foi movido para a seção de Suporte Otserv Alternativo
-
Regeneração de Mana nos Trainers
Este tópico foi movido para a seção de Suporte Otserv.
- Deixando as Sprites mais Rápida no OTclient
-
Deixando as Sprites mais Rápida no OTclient
tem que compilar o cliente como manda, segue o tutorial certinho fazendo favor. ATENÇÃO USE SOMENTE EM CASO DE ERROS DO OTCLIENT, CASO NÃO LER SEU CLIENTE; ache function load() local version = g_game.getClientVersion() em baixo coloca g_game.enableFeature(GameSpritesU32) COMPILA O CLIENTE MODO ESTENDIDO
-
setCreatureName(cid, name, description)
local pos = {x = 10, y = 10, z = 7} local teste = doSummonCreature("Rat",pos) setCreatureName(pos, "Fake Rat", "a fake rat") ou local pos = {x = 10, y = 10, z = 7} local teste = doCreateMonster("Rat",pos) setCreatureName(pos, "Fake Rat", "a fake rat") já tentou assim?? tbm tente recompilar no modo Rebuilder
- setCreatureName(cid, name, description)
- setCreatureName(cid, name, description)
- setCreatureName(cid, name, description)
- setCreatureName(cid, name, description)
-
setCreatureName(cid, name, description)
local pos = {x = 10, y = 10, z = 7} local teste = doSummonCreature("Rat",pos) setCreatureName(pos, "Fake Rat", "a fake rat") ou local pos = {x = 10, y = 10, z = 7} local teste = doCreateMonster("Rat",pos) setCreatureName(pos, "Fake Rat", "a fake rat") pode ser que isso é diferente na sua LuaScriptInterface: para LuaInterface: altere todos
-
[Resolvido] [Error - NpcEvents::onCreatureSay] NPC Name: Argus - Call stack overflow
<?xml version="1.0" encoding="UTF-8"?> <npc name="Argus" script="data/npc/scripts/argus.lua" floorchange="0" walkinterval="900" speed="50"> <health now="1000" max="1000"/> <look type="153" head="114" body="113" legs="113" feet="113" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hi |PLAYERNAME|. Eu posso te ajudar a passar voce quer saber como ? {yes}."/> <parameter key="message_decline" value="Is |TOTALCOST| gold coins too much for you? Get out of here!"/> </parameters> </npc> local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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) local monstro = getPlayerStorageValue(cid,12351) if (not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, "yes") and monstro < 200 then npcHandler:say("Mate 200 destes monstros que vc podera passar por aqui.",cid) return true end if msgcontains(msg, "yes") and monstro > 199 then npcHandler:say("Obrigado, eu odeio aqueles monstros, agora vc pode passar!",cid) setPlayerStorageValue(cid,12352,1) end return true end
-
Teleporte Summon tfs 0.3.6
/*if(!summons.empty() && (!g_config.getBool(ConfigManager::TELEPORT_SUMMONS) || (g_config.getBool(ConfigManager::TELEPORT_PLAYER_SUMMONS) && !getPlayer()))) { std::list<Creature*>::iterator cit; std::list<Creature*> despawnList; for(cit = summons.begin(); cit != summons.end(); ++cit) { const Position pos = (*cit)->getPosition(); if((std::abs(pos.z - newPos.z) > 2) || (std::max(std::abs(( newPos.x) - pos.x), std::abs((newPos.y - 1) - pos.y)) > 30)) despawnList.push_back(*cit); } for(cit = despawnList.begin(); cit != despawnList.end(); ++cit) g_game.removeCreature((*cit), true); }*/
-
(Resolvido)Teleportando summon para perto.
eu uso assim https://tibiaking.com/forums/topic/71188-teleporte-summon-tfs-036
-
Tempo de PZ
você poderia fazer por storage o tempo, assim que ele pegar o pk tbm pegar a storage com tempo, a mesma coisa no pz
-
NPC Cassino
Tópico aprovado e agradecemos pela contribuição.
-
[Source] Trocar nome das Skills
Tópico aprovado, agradecemos pela contribuição e continue assim
- [OTClient] Sistema de Dialogo Otpokemon
-
Doação Sprite Target
sim, se estiver source
-
Doação Sprite Target
vc precisa ter esse sistema no otclient
-
Doação Sprite Target
Sprite Doações olá galera hoje vim colaborar com vocês, hoje fiz umas sprites de target e estou doando pra vocês, é para otclient com sistema de target animada como nos prints abaixo;; PNG:: OBD 8.54 v2:: effect_653.obd effect_654.obd effect_655.obd effect_656.obd effect_657.obd effect_657.obd effect_658.obd effect_659.obd espero que gostem
-
Fade Tile OTCliente 0.6.6
que bom que deu certo é sim ja coloquei os créditos, obg tinha esquecido
-
Health Bar para OTC 0.6.6 e 0.6.7
Tutorial 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+
-
New Target OTC 0.6.6 e 0.6.7 - 2020
Olá galera, hoje vim trazer um tutorial bem completinho para vocês do sistema de "Target Animada pela source do OTC" renovada para otcliente 0.6.6 e 0.6.7 e espero que gostem Imagens do Target Azul;; Imagens do Target Vermelho;; VIÍDEO:;; TUTORIAL 1° Vai na pasta do seu otcliente e ache a pasta da source dele otclient-0.6.6\src\client dentro dela abre o arquivo creature.cpp e procure;; void Creature::draw(const Point& dest, float scaleFactor, bool animate, LightView *lightView) { if(!canBeSeen()) return; Point animationOffset = animate ? m_walkOffset : Point(0,0); if(m_showTimedSquare && animate) { g_painter->setColor(m_timedSquareColor); g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(28, 28)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1)); g_painter->setColor(Color::white); } if(m_showStaticSquare && animate) { g_painter->setColor(m_staticSquareColor); g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1)); g_painter->setColor(Color::white); } internalDrawOutfit(dest + animationOffset * scaleFactor, scaleFactor, animate, animate, m_direction); m_footStepDrawn = true; if(lightView) { Light light = rawGetThingType()->getLight(); if(m_light.intensity != light.intensity || m_light.color != light.color) light = m_light; // local player always have a minimum light in complete darkness if(isLocalPlayer() && (g_map.getLight().intensity < 64 || m_position.z > Otc::SEA_FLOOR)) { light.intensity = std::max<uint8>(light.intensity, 3); if(light.color == 0 || light.color > 215) light.color = 215; } if(light.intensity > 0) lightView->addLightSource(dest + (animationOffset + Point(16,16)) * scaleFactor, scaleFactor, light); } } altere para;; void Creature::draw(const Point& dest, float scaleFactor, bool animate, LightView *lightView) { if(!canBeSeen()) return; Point animationOffset = animate ? m_walkOffset : Point(0,0); /* if(m_showTimedSquare && animate) { g_painter->setColor(m_timedSquareColor); g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(28, 28)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1)); g_painter->setColor(Color::white); } if(m_showStaticSquare && animate) { g_painter->setColor(m_staticSquareColor); g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1)); g_painter->setColor(Color::white); } */ if(m_showTimedSquare && animate) { /*ImagePtr L3K0Tt = Image::load("data/images/target.png"); //se preferir usar por imagem TexturePtr L3K0T = TexturePtr(new Texture(L3K0Tt, false)); g_painter->drawTexturedRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(L3K0T->getHeight(), L3K0T->getWidth())*scaleFactor), L3K0T);*/ EffectPtr efeitoL3K0T = EffectPtr(new Effect()); efeitoL3K0T->setId(653); //id da sprite do efeito g_painter->setColor(m_timedSquareColor); Rect rect = Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor); g_painter->drawTexturedRect(rect, efeitoL3K0T->getThingType()->getTexture(0)); g_painter->setColor(Color::white); g_painter->setColor(Color::white); // by L3K0T g_painter->setOpacity(0.9); } if(m_showStaticSquare && animate) { /*ImagePtr L3K0Tt = Image::load("data/images/target.png"); //se preferir usar por imagem TexturePtr L3K0T = TexturePtr(new Texture(L3K0Tt, false)); g_painter->drawTexturedRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(L3K0T->getHeight(), L3K0T->getWidth())*scaleFactor), L3K0T);*/ EffectPtr efeitoL3K0T = EffectPtr(new Effect()); efeitoL3K0T->setId(653); //id da sprite do efeito g_painter->setColor(m_staticSquareColor); Rect rect = Rect(dest + (animationOffset - getDisplacement())*scaleFactor, Size(Otc::TILE_PIXELS, Otc::TILE_PIXELS)*scaleFactor); g_painter->drawTexturedRect(rect, efeitoL3K0T->getThingType()->getTexture(0)); g_painter->setColor(Color::white); //1 para não piscar e fixar no vermelho } internalDrawOutfit(dest + animationOffset * scaleFactor, scaleFactor, animate, animate, m_direction); m_footStepDrawn = true; if(lightView) { Light light = rawGetThingType()->getLight(); if(m_light.intensity != light.intensity || m_light.color != light.color) light = m_light; // local player always have a minimum light in complete darkness if(isLocalPlayer() && (g_map.getLight().intensity < 64 || m_position.z > Otc::SEA_FLOOR)) { light.intensity = std::max<uint8>(light.intensity, 3); if(light.color == 0 || light.color > 215) light.color = 215; } if(light.intensity > 0) lightView->addLightSource(dest + (animationOffset + Point(16,16)) * scaleFactor, scaleFactor, light); } } salve. 2° agora volte na pasta da source do otclient e abra o arquivo thingtype.h e procure por;; const TexturePtr& getTexture(int animationPhase); altere para /*const TexturePtr& getTexture(int animationPhase);*/ depois ache;; std::vector<int> getSprites() { return m_spritesIndex; } abaixo cole;; const TexturePtr& getTexture(int animationPhase); dps é só abrir o object guilder e importar o efeito do target;; >>>>> effect_653.obd tem outras sprite doadas por mim segue o link Depois de recortar é só por o efeito no otc e colocar o ID da sprite ali aonde tá o numero 653 no código. Ajudei?? REP+ Créditos:; -Eu por alterar outras coisas que faltou. -Jair Kevick (código base)
-
Fade Tile OTCliente 0.6.6
compilar de forma limpa usando opção REBUILDE