Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Ola galera queria uma ajuda de vocês estou criando no meu OT uma porta tipo a 999 do global, mas queria colocar algo significativo para quem for o primeiro a conseguir chegar ao level algo realmente que faca o player gostar e os outros quando ver também se dedicar a conseguir o certo level...

 

Então oque pensei e que queria colocar um item X em um bau e através desse item o player que estiver ele possa falar como se fosse o /b do GOD 

**OBS: Seria outro comando /player100 xxxxx , queria que em vez da mensagem fosse vermelha colocasse verde para não confundir com o ADM GM GOD falando, que e existisse um exaut/delay para o players que tiver o item não spamar as mensagem e por ultimo se tivesse tipo um tanto de mensagem que pode-se mandar tipo 100 mensagem e depois através de um NPC ou comando algo assim pudesse carregar o item atravez de COIS 

Isso e opcional se der para fazer colocar seria bacana se não agradeço tudo bem, OBG

Editado por F0RG1 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Esta é uma mensagem automática! Este tópico foi movido para a área correta.
Pedimos que você leia as regras do fórum.

Spoiler

This is an automated message! This topic has been moved to the correct area.
Please read the forum rules.

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

Data/talkactions/scripts

PlayerBroadcast.lua

Spoiler

local config = {
	itemID = 9999, -- id do item necessario
	cor = "green", -- cor da mensagem de acordo com o constant.lua da lib
	tempo = 1, -- tempo de delay em minutos
	storage = 84454, -- storage para armazenar o delay do player
	storage2 = 84455, -- storage que determina quantos usos do item o player ainda tem
}


function onSay(cid, words, param, channel)
	if(param == '') then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
		return true
	end
	if getPlayerItemCount(cid, config.itemID) < 1 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode usar o comando sem ter ".. getItemNameById(config.itemID) ..".")
		return true
	end
	if getPlayerItemCount(cid, config.itemID) >= 1 and getPlayerStorageValue(cid, config.storage2) <= 0 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Acabou sua permissão para usar ".. getItemNameById(config.itemID) ..", compre mais no NPC.")
		return true
	end
	
	if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 and getPlayerStorageValue(cid, config.storage2) >= 1 then
		setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60))
		setPlayerStorageValue(cid, config.storage2, (getPlayerStorageValue(cid, config.storage2)) - 1)
		doBroadcastMessage(""..getCreatureName(cid)..": "..param.."", config.cor)
		return true
	else
		doPlayerSendCancel(cid, "Espere " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " segundos para falar novamente.")
		return true
	end
end

 

data/talkactions

talkactions.xml

	<talkaction words="/player100" event="script" value="PlayerBroadcast.lua"/>

data/npc

Rechargebroad.xml

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Recharger" script="Rechargerbroad.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="510" head="115" body="148" legs="39" feet="41"/>

	<parameters>
		<parameter key="message_greet" value="Ola jogador, deseja {recarregar}?"/>

	</parameters>

</npc>

 

data/npc/scripts

Rechargerbroad.lua

Spoiler

local config = {
	itemprice = 2160, -- id do dinheiro necessário para recarregar
	price = 50, -- quantos 'itemprice' será necessário para recarregar
	itemID = 9999, -- id do item
	usos = 100, -- quantos usos do comando o player vai comprar
	storage = 84455, -- storage que salva quantos usos do item o player vai ganhar ( mesmo do storage2 da talkaction)
}

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() 
	doCreatureSetLookDirection(getNpcId(), (2))
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, 'recarregar') or msgcontains(msg, 'yes')) then
		selfSay('Voce deseja recarregar seu '.. getItemNameById(config.itemID) ..' por '.. price ..' '.. itemprice ..'?', cid)
		talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if getPlayerStorageValue(cid, config.storage) <= 0 then
			if(getPlayerItemCount(cid, config.itemID) >= 1) then
				if(doPlayerRemoveItem(cid, config.itemprice, config.price) == TRUE) then
					setPlayerStorageValue(cid, config.storage, config.usos)
					selfSay('Pronto, agora você pode usar por mais '.. config.usos ..' vezes!', cid)
				else
					selfSay('Desculpe, mas voce nao tem dinheiro.', cid)
				end
			else
				selfSay('Desculpe, mas voce nao possui '.. getItemNameById(config.itemID) ..'', cid)
			end
		else
			elfSay('Desculpe, mas voce ainda pode usar o comando '.. getPlayerStorageValue(cid, config.storage) ..' vezes.', cid)
		end
		talkState[talkUser] = 0
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
		talkState[talkUser] = 0
		selfSay('Ok, obrigado.', cid)
	end
	
	
	return true
end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Criei sem testar, qualquer coisa só falar.

Editado por luangop
correções (veja o histórico de edições)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

@luangop  O único erro que to tento e com o NPC eu add no mapa com o RME ai abro o servidor mas ai quando chego perto com o personagem da ERRO no client do tibia e fecha sozinho tento entra e fica dando erro e fechando, fora isso ta tudo certinho nem um erro na distro obrigado desde já mesmo.. 

a versao do tibia e 8.6 nao sei se muda alguma coisa

Editado por F0RG1 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Recharger" script="Rechargerbroad.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="510" head="115" body="148" legs="39" feet="41"/>

	<parameters>
		<parameter key="message_greet" value="Ola jogador, deseja {recarregar}?"/>

	</parameters>

</npc>

 

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

Deu certo cara, agora aconteceu outra coisa quando falo com o NPC 

Hi

ele diz - Recharger: Ola [ADM] Bru, deseja recarregar?

 ai eu digo yes entao  ele não diz nada ele nao interagem ....

sei que to incomodando você mas se puder ver isso para mim ficarei mt agradecido

Editado por F0RG1 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
16 horas atrás, F0RG1 disse:

Deu certo cara, agora aconteceu outra coisa quando falo com o NPC 

Hi

ele diz - Recharger: Ola [ADM] Bru, deseja recarregar?

 ai eu digo yes entao  ele não diz nada ele nao interagem ....

sei que to incomodando você mas se puder ver isso para mim ficarei mt agradecido

E não aparece nenhum erro na distro?

Tente assim:
 

local config = {
	itemprice = 2160, -- id do dinheiro necessário para recarregar
	price = 50, -- quantos 'itemprice' será necessário para recarregar
	itemID = 9999, -- id do item
	usos = 100, -- quantos usos do comando o player vai comprar
	storage = 84454, -- storage que salva quantos usos do item o player vai ganhar ( mesmo do storage2 da talkaction)
}

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() 
	doCreatureSetLookDirection(getNpcId(), (2))
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, 'recarregar') or msgcontains(msg, 'yes')) then
		selfSay('Voce deseja recarregar seu '.. getItemNameById(config.itemID) ..' por '.. price ..' '.. itemprice ..'?', cid)
		talkState[talkUser] = 1
	elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
		if getPlayerStorageValue(cid, config.storage) <= 0 then
			if(getPlayerItemCount(cid, config.itemID) >= 1) then
				if(doPlayerRemoveItem(cid, config.itemprice, config.price) == TRUE) then
					setPlayerStorageValue(cid, config.storage, config.usos)
					selfSay('Pronto, agora você pode usar por mais '.. config.usos ..' vezes!', cid)
				else
					selfSay('Desculpe, mas voce nao tem dinheiro.', cid)
				end
			else
				selfSay('Desculpe, mas voce nao possui '.. getItemNameById(config.itemID) ..'', cid)
			end
		else
			elfSay('Desculpe, mas voce ainda pode usar o comando '.. getPlayerStorageValue(cid, config.storage) ..' vezes.', cid)
		end
		talkState[talkUser] = 0
	elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
		talkState[talkUser] = 0
		selfSay('Ok, obrigado.', cid)
	end
	
	
	return true
end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Não incomoda não, eu não manjo nada de npc, estou fazendo na sorte então isso é um aprendizado para mim rsrs

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

 

@luangop man eu consegui aqui arrumar o npc OBG mesmo

se der altera ali no storage = 84454 para storage2 = 84455 rs

ai ta fufando depois que altera isso!

vlws 

 

o unico erro que ta dando erro no npc quando vai verificar quantos vezes ainda tem para carregar 

getPlayerStorageValue(cid, config.storage) 

 

mas ta funfando tudo so isso mesmo que nao ta funfando...

 

 

 

Link para o post
Compartilhar em outros sites
7 horas atrás, F0RG1 disse:

 

@luangop man eu consegui aqui arrumar o npc OBG mesmo

se der altera ali no storage = 84454 para storage2 = 84455 rs

ai ta fufando depois que altera isso!

vlws 

 

o unico erro que ta dando erro no npc quando vai verificar quantos vezes ainda tem para carregar 

getPlayerStorageValue(cid, config.storage) 

 

mas ta funfando tudo so isso mesmo que nao ta funfando...

 

 

 

Editei tudo na minha primeira resposta lá, desculpe a demora.

E como já falei acima, não manjo nada de NPC, fiz na sorte então se saiu algo que presta já estou no lucro kkk

Seria bem mais fácil fazer por talkaction, porém por NPC adiciona mais RPG ao jogo.

Editado por luangop
a (veja o histórico de edições)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por prot def
      Versão Beta já disponível no site: http://otshinobi.servegame.com/ 
      Servidor Online, aproveite e crie sua conta e baixe o client para Pc ou Android, todos os dados do seu personagem permanecerão intactos na versão definitiva que será lançada em breve!









      Já disponível em: Client 8.54 (Old) / New Client e Client Mobile para Android
      Temos 27 Vocações disponíveis
      Personagens FREE: Naruto, Sasuke, Sakura, Kakashi, Rock Lee, Shikamaru, Neji, Tenten, Hinata, Killer Bee, Gaara, Kiba, Temari, Kankuro, Shisui e Jiraiya.
      Personagens Shop Free (compre com Gold dentro do game): Obito, Tsunade, Kisame e Itachi.
      Personagens Shop VIP: Itachi (Shop), Obito (Shop) Minato (Shop) Madara (Shop) Tsunade (Shop) Hashirama (Shop) Nidaime (Tobirama) (Shop) Nagato (Shop) Raikage (Shop) Kisame (Shop)  (Você pode donatar pelo LivePix)
      Personagens Especiais obtidos através de eventos dentro do game: Orochimaru e Yamato.
      Transformações, jutsus e habilidades exclusivas para cada vocação
      Upe se divertindo pelo mapa, rate de experiência desafiante, ganhe jutsus e transformações exclusivas ao upar 
      Mapa exclusivo que terá atualizações periódicas:
      -> vilas disponíveis até o momento: Vila da Folha, Vila da Areia, Vila da Névoa, Vila da Pedra, Vila da Nuvem Vila da Chuva (Konoha, Kirigakure, Sunagakure, Iwagakure, Kumogakure, Amegakure) e País das Ondas.
      -> Area Vip: Várias Hunts para upar e farmar (Zetsu Covil, Member Akatsuki Covil, Northwest Island, Hunt Nagato, Hunt Samurais, Paper Island, Orochimaru Island) e Vila Shinobi Exclusiva para usuários Vip
      Sistema de graduação ninja: genin, chunin, jounin e anbu - Evolua seu ranking shinobi, apenas os merecedores se tornarão Kage.
      Exame Chunin completo, reviva o nostálgico arco do anime para se tornar Chunin
      Crie sua própria guild ou entre em uma existente
      Organização Akatsuki - torne-se membro da maior organização criminosa do mundo ninja
      Rank level (Figure entre os melhores jogadores do jogo)
      Reviva as sagas de Naruto Clássico e Naruto Shippuden
      Sistema de guilds - crie ou entre em uma guild e divirta-se com seus amigos
      Mundo PVP
      Eventos PVP
      Eventos de invasão, proteja a vila da destruição: Invasões em Konoha (Pain e Orochimaru) e Invasão de Deidara e Sasori em Sunagakure
      Compra e venda de casas para usuários Vip
      Npc Shop e NPC Shop Event - compre sua VIP ACCOUNT E VOCAÇÃO VIP ''totalmente'' GRÁTIS utilizando a moeda do jogo (GOLD).
      Npc Minoru - leva você diretamente para outras vilas e várias hunts do mapa. Area Free: Konoha, Kirigakure, Sunagakure, Iwagakure, Kumogakure, Amegakure, Valley of the End, South Forest, South Island, West Desert. Area VIP: Zetsu Covil, Member Akatsuki Covil, Northwest Island, Hunt Nagato, Hunt Samurais, Paper Island, Orochimaru Island, Vila Shinobi area com casas exclusivas para compra.
      Reviva vários arcos do Anime: Lute contra diversos personagens do anime com habilidades únicas
      Sistema Chakra Bijuu - torne-se jinchuuriki das bestas de cauda e utilize seu poder em batalha
      Diversas armas e equipamentos do anime
      Tasks da Tsunade - derrote os shinobi mais poderosos do mundo ninja e ganhe recompensas em Gold: 
      deidara da pedra 
      hidan das fonte
      itachi da folha 
      kabuto da folha
      kakuzo da cachoeira 
      kisame da nevoa
      konan da chuva
      madara da folha
      nagato da chuva
      orochimaru da folha
      pain da chuva
      sasori da areia
      tobi da folha
      Vários Npcs de Tasks espalhados pelo mapa: derrote inimigos e traga itens em troca de experiência e recompensas.
      Quests: Temos várias Quests Disponíveis e várias outras em desenvolvimento:
      ->Quest Nto Points FREE - Ganhe Nto Points para comprar itens vip com o Npc Shop (compre Premium Account, Vocações e itens)
      -> Shukaku Quest - Quest realizada em quatro pessoas 
      -> Sambi Quest - Quest realizada em duas pessoas 
      -> Akatsuki Ring Quest 
      -> Kurama Quest
      -> Quest Templo do Fogo
      -> Minato Quest
      -> Itachi Quest 
      -> Sasuke Boss Quest 
      -> Hidan Quest
      -> Kakuzo Quest 
      -> Sasori Quest 
      ->Pain Quest
      ->Tobirama Quest
      Jogo utiliza base parecida com o ntoultimate dos velhos tempos.
      Jogue e ajude a manter o servidor aberto até o lançamento da versão final
      Crie sua conta e baixe o jogo no site oficial: otshinobi.servegame.com 
      DIVIRTA-SE!
      DISPONÍVEL TAMBÉM CLIENT MOBILE!

    • Por cloudrun2023
      CloudRun - Sua Melhor Escolha para Hospedagem de OTServer!
      Você está procurando a solução definitiva para hospedar seu OTServer com desempenho imbatível e segurança inigualável? Não procure mais! Apresentamos a CloudRun, sua parceira confiável em serviços de hospedagem na nuvem.
       
      Recursos Exclusivos - Proteção DDoS Avançada:
      Mantenha seu OTServer online e seguro com nossa robusta proteção DDoS, garantindo uma experiência de jogo ininterrupta para seus jogadores.
       
      Servidores Ryzen 7 Poderosos: Desfrute do poder de processamento superior dos servidores Ryzen 7 para garantir um desempenho excepcional do seu OTServer. Velocidade e estabilidade garantidas!
       
      Armazenamento NVMe de Alta Velocidade:
      Reduza o tempo de carregamento do jogo com nosso armazenamento NVMe ultrarrápido. Seus jogadores vão adorar a rapidez com que podem explorar o mundo do seu OTServer.
       
      Uplink de até 1GB:
      Oferecemos uma conexão de alta velocidade com até 1GB de largura de banda, garantindo uma experiência de jogo suave e livre de lag para todos os seus jogadores, mesmo nos momentos de pico.
       
      Suporte 24 Horas:
      Estamos sempre aqui para você! Nossa equipe de suporte está disponível 24 horas por dia, 7 dias por semana, para resolver qualquer problema ou responder a qualquer pergunta que você possa ter. Sua satisfação é a nossa prioridade.
       
      Fácil e Rápido de Começar:
      Configurar seu OTServer na CloudRun é simples e rápido. Concentre-se no desenvolvimento do seu jogo enquanto cuidamos da hospedagem.
       
      Entre em Contato Agora!
      Website: https://central.cloudrun.com.br/index.php?rp=/store/cloud-ryzen-brasil
      Email: [email protected]
      Telefone: (47) 99902-5147

      Não comprometa a qualidade da hospedagem do seu OTServer. Escolha a CloudRun e ofereça aos seus jogadores a melhor experiência de jogo possível. Visite nosso site hoje mesmo para conhecer nossos planos e começar!
       
      https://central.cloudrun.com.br/index.php?rp=/store/cloud-ryzen-brasil
       
      CloudRun - Onde a Velocidade Encontra a Confiabilidade!
       

    • Por FeeTads
      SALVE rapaziada do TK, esses dias vim pensando em novos scripts pro meu OT, e em um deles eu precisava que determinada area não contasse frag pro player que matasse outros, PORÉM eu precisava que os players que morressem nessa area ainda assim tivessem as penalidades da sua morte, procurei por ai, achei alguns scripts que apenas tiravam o SKULL e não realmente o FRAG do player.

      **script atualizado 22/10/2023** - melhorado e otimizado, levei o script pra puxar as infos por .lua / creatureScripts

      vou disponibilizar o code aqui, e o que fazer pra determinada area não contar frag.

      SOURCE OTX 2 / TFS 0.x, Funciona em TFS 1.x mudando as tags e ajeitando as sintaxes.

      vá em creatureevent.cpp

      procure por:
      else if(type == "preparedeath") _type = CREATURE_EVENT_PREPAREDEATH;
      Adiciona abaixo:
      else if(type == "nocountfrag") _type = CREATURE_EVENT_NOCOUNTFRAG;

      procure por:
      case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath";  
      Adicione abaixo: 
      case CREATURE_EVENT_NOCOUNTFRAG: return "noCountFragArea";

      procure por:
      case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList";
      Adicione abaixo:
      case CREATURE_EVENT_NOCOUNTFRAG: return "cid, target";

      agora no mesmo arquivo, vá até o final do arquivo e adicione essa função:
      uint32_t CreatureEvent::executeNoCountFragArea(Creature* creature, Creature* target) { //noCountFragArea(cid, target) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::ostringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; scriptstream << "local target = " << env->addThing(target) << std::endl; if(m_scriptData) scriptstream << *m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ std::ostringstream desc; desc << creature->getName(); env->setEvent(desc.str()); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); lua_pushnumber(L, env->addThing(target)); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::clog << "[Error - CreatureEvent::noCountFragArea] Call stack overflow." << std::endl; return 0; } }

      agora vá em creatureevent.h

      procure por:
      CREATURE_EVENT_PREPAREDEATH
      adicione abaixo:
      CREATURE_EVENT_NOCOUNTFRAG

      procure por:
      uint32_t executePrepareDeath(Creature* creature, DeathList deathList);
      Adicione abaixo:
      uint32_t executeNoCountFragArea(Creature* creature, Creature* target);

      agora vá em player.cpp

      procure por:
      bool Player::onKilledCreature(Creature* target, DeathEntry& entry)
      abaixo de:
      War_t enemy; if(targetPlayer->getEnemy(this, enemy)) { if(entry.isLast()) IOGuild::getInstance()->updateWar(enemy); entry.setWar(enemy); }
      Adicione o seguinte código:
      if (targetPlayer){ CreatureEventList killEvents = getCreatureEvents(CREATURE_EVENT_NOCOUNTFRAG); for (const auto &event : killEvents) { if (!event->executeNoCountFragArea(this, target)) { return true; } } }

      //

      Feito isso, tudo completo na sua source, agora é necessário adicionar o creaturescript dentro do servidor

      vá até creaturescripts/scripts
      crie um arquivo chamado, "noCountFragInArea.lua"
      e dentro dele cole o código:
       
      --[[ script feito por feetads / TibiaKing ]]-- --[[ discord: feetads / FeeTads#0246 ]]-- -- Add positions here for which you do not want to count frags local areas = { [1] = {from = {x = 91, y = 122, z = 7}, to = {x = 98, y = 127, z = 7}}, -- from = area superior esquerda / to = area inferior direita (formando um quadrado) } local onlyKillerInArea = false -- only killer need to be in area? function noCountFragArea(cid, target) if not isCreature(cid) or not isCreature(target) then return true end local posKiller = getPlayerPosition(cid) local posTarget = getPlayerPosition(target) for i = 1, #areas do local area = areas[i] if isInArea(posKiller, area.from, area.to) then if onlyKillerInArea then return false elseif isInArea(posTarget, area.from, area.to) then return false end end end return true end
      agora em creaturescripts.xml
      <event type="nocountfrag" name="fragarea" event="script" value="noCountFragInArea.lua"/>
      agora em creaturescripts/scripts/login.lua
       procure por OU semelhante a esse:
      registerCreatureEvent(cid, "AdvanceSave")
      e abaixo adicione:
      registerCreatureEvent(cid, "fragarea")

      //


      Agora tudo certo, quando quiser adiciona uma area que não pega frag, vá até o script e apenas coloque a area, igual o demonstrado no script

      Exemplo:
      local areas = { [1] = {from = {x = 91, y = 122, z = 7}, to = {x = 98, y = 127, z = 7}}, [2] = {from = {x = 1000, y = 1000, z = 7}, to = {x = 1100, y = 1100, z = 7}}, }
      assim somente colocando a area no script e abrindo o server ou dando /reload, já funcionará a area como não pegar frag.
      Esse sistema pode ser bom pra areas de pvp ativo, onde você ainda quer que o player que morrer perca os atributos, como se fosse uma morte normal, porém não conta frag pra quem matar.
      Bom pra sistemas tipo castle 48h (guild war), onde há diversas mortes e risco de pegar red, atrapalhando a war.

      Façam bom proveito dos scripts, e deixem os créditos no script rsrs

      **Eu fiz as alterações e o simples código por isso vim disponibilizar, créditos meus**
    • Por Glacial
      Boa tarde galera, tudo bem?
       
      Meu nome é Gustavo/Glacial, gostaria de compartilhar com a comunidade meu projeto solo no RME 3.5 /Client 10.98 do Tibia.
      Glacial City, com houses, hunts, lojas, quests, bosses e depot.

      Os teleportes já estão redirecionados, falta apenas itens nos baús das quests.
       
      Espero que curtam e podem baixar pra colocar no ot de vocês!
       
      Atualização versão 2.0:
      - Houses na cidade
      - Hive Lair (Lady Bug)
      - Silencer & Frazzle/Guzzlemaw Hunt
      - Drakens + Demons Hunt (área maior)
       
      Links MediaFire e VirusTotal:
      Download Mapas: https://www.mediafire.com/folder/hz0q694t9nk86/Mapas_Glacial
      versão 1.0 Virus Total: https://www.virustotal.com/gui/file/b4e94903752e24aba63b291f9929f15f6bd7f4feb44d5a1f42ec3d755ee7977e?nocache=1
      versão 2.0 Virus Total: https://www.virustotal.com/gui/file/d88ae087e966bed6e2f2348f31246c1858831c1fb13d4e8613ba98f6ede37503?nocache=1
       
      Segue fotos em anexo.
       

       

       

       
       
       

       

       

    • Por Pifafa
      Tibinha - YurOts
      Olá hoje trago a vocês meu projeto, tenho como objetivo atingir 50 jogadores (um sonho talvez que quase já se realizou) 
      www.tibinha.online



      Obrigado por ver meu projeto, caso tenha interesse entre nele e converse comigo, estou disponível para tira duvidas e ajudar a todos aqui!
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo