Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Uso TFS 0.4, e em meu servidor tenho sistema de reputação por storage, e tem um rank de acordo com o valor da storage, por exempo se o valor da storage XXXX = 1000 ele é Heroi, se o valor for = -1000 ele é um Criminoso.

 

Estou querendo fazer npc que teria quest para cada rank de reputação, para isso eu poderia fazer um npc que após ele falar missão, verifica a storage e se for valor adequado continua a quest, do contrario encerra ali. 

 

Mas meu servidor estou focando em ter um local (continente) totalmente focado no RPG e Historia, por isso gostaria que o NPC fizesse uma verificação de storage a partir da hora que o Player fala "Hi", assim se for a requerida ele executa uma fala do contrario executa outra.

 

Se precisar mexer nas sources  tenho elas e um pouco de conhecimento se me indicarem o local.

Agradeço dês de ja.

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

  • Respostas 5
  • Visualizações 762
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Remove alguma mensagem que estiver no xml. No arquivo lua fica algo assim:   local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParam

Postado
  • Autor

Ainda não criei os NPCs em questão, mas pode utilizar a partir desse

 

Spoiler

local DESTINO = {x = 2241, y = 2374, z = 7} -- POSIÇÃO DE DESTINO
 
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:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
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, "ancient paradise") then
		if getPlayerStorageValue(cid, 100101) >= 2 then
		selfSay("Você ja obteve a aprovação, porque está ocupando meu tempo?", cid)
		talkState[talkUser] = nil
		npcHandler:onCreatureDisappear(cid)
		else
		doNPCTalkALot(cid, getNpcCid(), 1000, {"Jovem Heroi, Ancient Paradise acreditamos que seja um continente imensuravel, e sua localização foi descoberta por navegadores, e essa ilha a nomeamos como Small Paradise, a primeira ilha antes de chegar em Ancient Paradise Island.", "Eu estou encarregado de aprovar novos aventureiro nessa ilha, se passar pelo meu {teste} podera ir sem mais restrições para Ancient Paradise e também desfrutar dos misterios dessa Small Paradise."})
		talkState[talkUser] = 1
		end
	elseif msgcontains(msg, "teste") and talkState[talkUser] == 1 then
		talkState[talkUser] = 2
		doNPCTalkALot(cid, getNpcCid(), 1000, {"Veja bem, meu teste é muito simples, essa Smalll Paradise está repleta de monstros um tanto curioso, então por isso resolvemos usar ela para fazer esse teste.", "Você vai precisar escontrar um báu deixado por mim em uma determinada parte da ilha, após encontra recebera um presente por sua conquista, e também te darei acesso imediato a Ancient Paradise, deseja {tentar} obeter aprovação agora?"})

	elseif msgcontains(msg, "tentar") and talkState[talkUser] == 2 then
		talkState[talkUser] = 3
		selfSay("Você realmente deseja tentar obter aprovação, recomendo altamente ir em grupo, e achar o caminho de volta pode ser muito dificil se não conseguir?", cid)

	elseif msgcontains(msg, "yes") or msgcontains(msg, "sim") then
		if talkState[talkUser] == 3 then
		if getPlayerLevel(cid) >= 400 then
		doNPCTalkALot(cid, getNpcCid(), 2000, {"Para obter sua aprovação encontre o báu que deixei na ilha, se conseguir te teleportarei novamente e recebera acesso a Ancient Paradise, e poderá explorar o restante dessa Small Paradise.", "Jovem herói, não que eu teja olhando para baixo em você, mas você não me parece que possa passar a aprovação com apenas isso... Por isso vou te dar um aviso e também conta como ajuda já que vai saber o que enfrentar, va em grupo e cuidado com os dragões.","Tome esse {machete} também vai precisar. Mais informações checa seu {Quest Log}."})
		local bp = doPlayerAddItem(cid, 1987, 1)
		doAddContainerItem(bp, 2420, 1)
		setPlayerStorageValue(cid,100101,1)
		doSendMagicEffect(getThingPos(cid), 10)
		npcHandler:releaseFocus(cid)
		doTeleportThing(cid, DESTINO)
		doSendMagicEffect(DESTINO, 10)
		talkState[talkUser] = nil
		else
		selfSay("Me desculpe, mas você não tem level necessario para obter aprovação. Volte quando atingir level 400 e não esqueça de vim em grupo, sozinho sera muito difícil.", cid)
		npcHandler:onCreatureDisappear(cid)
		talkState[talkUser] = nil
		end
		end
	end
	return true
	end


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

 

 

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Postado

Remove alguma mensagem que estiver no xml. No arquivo lua fica algo assim:

 

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:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
function onCreatureSay(cid, type, msg)	
	npcHandler:setMessage(MESSAGE_FAREWELL, "Byee..")
	if (getPlayerStorageValue(cid,12345) == 3) then
		npcHandler:setMessage(MESSAGE_GREET, "Sua storage eh 3.")
	elseif (getPlayerStorageValue(cid,12345) == 4) then
		npcHandler:setMessage(MESSAGE_GREET, "Sua storage eh 4.")
		elseif (getPlayerStorageValue(cid,12345) < 4) then
		npcHandler:setMessage(MESSAGE_GREET, "Sua storage eh menor que 4.")
	end
	npcHandler:onCreatureSay(cid, type, msg)		
end

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return FALSE
	end
	end


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

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo