Ir para conteúdo

ThupaThuplex

Campones
  • Total de itens

    5
  • Registro em

  • Última visita

Posts postados por ThupaThuplex

  1. Olá para todos, eu uso o sistema AGS:

     

    Eu uso o executável(Otserv) OTX 9.8, 

    gostaria de ter um Npc que só teletransporta players que tenham Guild, e que a Guild tenha completado certa Task do sistema AGS.

     

    Exemplo: Um player sem Guild chega no Npc, e o Npc diz que só pode teletransportar(deixar viajar) apenas quem tem Guild.

     

    Exemplo 2: Um player com Guild chega no Npc, e o Npc diz que só pode teletransportar(deixar viajar) apenas membro de Guild que tenha completado certa Task.

     

    Resumindo: O Npc só deixa viajar quem tem Guild, e que a Guild tenha completado certa Task.

    Se o player(membro de Guild) não tiver Guild ou a Guild ainda não tenha feito certa Task, o membro da Guild não vai conseguir viajar.

     

    Estarei no aguarde de qualquer ajuda ou dúvida sobre o meu pedido.

    Obrigado desde já.

     

     

  2. 3 horas atrás, gabriel28 disse:

    @ThupaThuplex
    Se cada uma der uma storage diferente, o player poderá trocar de vocação.
    E você arrumou o 'fromvoc' de cada promotion em vocations.xml?
    Poe exemplo, usando o nome que você deu.
    O fromvoc de Blade Knight e Templar Knight devem ser 4, já que ambos são uma promoção da vocação Knight.
    Dai seguindo essa lógica você faz pras outras. 
    Se continuar o erro, provavelmente terá que modificar o script, pra ao invés de setar uma vocação, setar um nível de promotion.
    Faça o que eu disse primeiro, se continuar voltando a vocação, me diz que eu arrumo.

    No meu vocations.xml está tudo seguindo a ordem do "fromvoc", porém mesmo assim ao "Deslogar" e depois "Logar",

    o player volta a sua Vocação Inicial e não pode mais fazer a troca de Vocação, pois o Npc reconhece que ele já fez a troca.

    Preciso que ele apenas mantenha a Nova Vocação que foi trocada, fora isso está tudo certo...

  3. 1 hora atrás, Qwizer disse:

    vou fazer aqui pra voce

    Valeu, no Aguarde =)

    33 minutos atrás, gabriel28 disse:

    @ThupaThuplex
    Fiz minha versão:
     

      Mostrar conteúdo oculto
    
    
    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
    
    local storage = 1111514 --storage da quest
    local voc1 = {1}
    local voc2 = {2}
    local voc3 = {3}
    local voc4 = {4}
    
    
    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, "promotion") then
    		if getPlayerStorageValue(cid, storage) == -1 then
    			if isInArray(voc1, getPlayerVocation(cid)) then
    				selfSay("Então você quer ser promovido? Bem, que promotion você deseja, {A} ou {B}?", cid) --Opções para Sorc
    				talkState[talkUser] = 1
    			elseif isInArray(voc2, getPlayerVocation(cid)) then
    				selfSay("Então você quer ser promovido? Bem, que promotion você deseja, {C} ou {D}?", cid) --Opções para Druid
    				talkState[talkUser] = 2
    			elseif isInArray(voc3, getPlayerVocation(cid)) then
    				selfSay("Então você quer ser promovido? Bem, que promotion você deseja, {E} ou {F}?", cid) --Opções para Pally
    				talkState[talkUser] = 3
    			elseif isInArray(voc4, getPlayerVocation(cid)) then
    				selfSay("Então você quer ser promovido? Bem, que promotion você deseja, {G} ou {H}?", cid) --Opções para Kina
    				talkState[talkUser] = 4
    			end
          	else
          		selfSay("Você já pegou a promotion.", cid)
    		npcHandler:addFocus(cid)	
    		end	
    	end
    	
    	if msgcontains(msg, "A") and talkState[talkUser] == 1 then
    		selfSay("ai está, você agora é a promotion A", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "B") and talkState[talkUser] == 1 then
    		selfSay("ai está, você agora é a promotion B", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "C") and talkState[talkUser] == 2 then
    		selfSay("ai está, você agora é a promotion C", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "D") and talkState[talkUser] == 2 then
    		selfSay("ai está, você agora é a promotion D", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "E") and talkState[talkUser] == 3 then
    		selfSay("ai está, você agora é a promotion E", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "F") and talkState[talkUser] == 3 then
    		selfSay("ai está, você agora é a promotion F", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "G") and talkState[talkUser] == 4 then
    		selfSay("ai está, você agora é a promotion G", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "H") and talkState[talkUser] == 4 then
    		selfSay("ai está, você agora é a promotion H", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
        return true
    end
    
    npcHandler:setCallback(CALLBACK_GREET, greetCallback)
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())

     


    Em 'doPlayerSetVocation(cid, X)' no script, troque o X pela id da vocation.
    Edit: Acrescentei uma mensagem, que eu tinha esquecido, pra caso o player já tenha pego uma promotion.

    Obrigado mesmo antes de Testar.

    Agradeço pela atenção.

    #Testando^^

    58 minutos atrás, gabriel28 disse:

    @ThupaThuplex
    Fiz minha versão:
     

      Mostrar conteúdo oculto
    
    
    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
    
    local storage = 1111514 --storage da quest
    local voc1 = {1}
    local voc2 = {2}
    local voc3 = {3}
    local voc4 = {4}
    
    
    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, "promotion") then
    		if getPlayerStorageValue(cid, storage) == -1 then
    			if isInArray(voc1, getPlayerVocation(cid)) then
    				selfSay("Então você quer ser promovido? Bem, que promotion você deseja, {A} ou {B}?", cid) --Opções para Sorc
    				talkState[talkUser] = 1
    			elseif isInArray(voc2, getPlayerVocation(cid)) then
    				selfSay("Então você quer ser promovido? Bem, que promotion você deseja, {C} ou {D}?", cid) --Opções para Druid
    				talkState[talkUser] = 2
    			elseif isInArray(voc3, getPlayerVocation(cid)) then
    				selfSay("Então você quer ser promovido? Bem, que promotion você deseja, {E} ou {F}?", cid) --Opções para Pally
    				talkState[talkUser] = 3
    			elseif isInArray(voc4, getPlayerVocation(cid)) then
    				selfSay("Então você quer ser promovido? Bem, que promotion você deseja, {G} ou {H}?", cid) --Opções para Kina
    				talkState[talkUser] = 4
    			end
          	else
          		selfSay("Você já pegou a promotion.", cid)
    		npcHandler:addFocus(cid)	
    		end	
    	end
    	
    	if msgcontains(msg, "A") and talkState[talkUser] == 1 then
    		selfSay("ai está, você agora é a promotion A", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "B") and talkState[talkUser] == 1 then
    		selfSay("ai está, você agora é a promotion B", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "C") and talkState[talkUser] == 2 then
    		selfSay("ai está, você agora é a promotion C", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "D") and talkState[talkUser] == 2 then
    		selfSay("ai está, você agora é a promotion D", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "E") and talkState[talkUser] == 3 then
    		selfSay("ai está, você agora é a promotion E", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "F") and talkState[talkUser] == 3 then
    		selfSay("ai está, você agora é a promotion F", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "G") and talkState[talkUser] == 4 then
    		selfSay("ai está, você agora é a promotion G", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
    	
    	if msgcontains(msg, "H") and talkState[talkUser] == 4 then
    		selfSay("ai está, você agora é a promotion H", cid)
    		doPlayerSetVocation(cid, X)
    		setPlayerStorageValue(cid, storage, 1)
    	end
        return true
    end
    
    npcHandler:setCallback(CALLBACK_GREET, greetCallback)
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())

     


    Em 'doPlayerSetVocation(cid, X)' no script, troque o X pela id da vocation.
    Edit: Acrescentei uma mensagem, que eu tinha esquecido, pra caso o player já tenha pego uma promotion.

    Eu testei e está funcionando 100%.

    Muito Obrigado.

    Queria saber se não seria possível adicionar no Script, com level para mudar a Vocação e

    se cada vocação que fosse trocada ganhasse um StoreValue diferente..

    De Qualquer forma muito obrigado.

    1 hora atrás, ThupaThuplex disse:

    Valeu, no Aguarde =)

    Obrigado mesmo antes de Testar.

    Agradeço pela atenção.

    #Testando^^

    Eu testei e está funcionando 100%.

    Muito Obrigado.

    Queria saber se não seria possível adicionar no Script, com level para mudar a Vocação e

    se cada vocação que fosse trocada ganhasse um StoreValue diferente..

    De Qualquer forma muito obrigado.

    Quando o Player desloga, volta na Vocação que ele estava... =/

  4. Preciso muito de um Npc Script para a versão 8.6 que funciona da seguinte maneira:

    Quando o player alcançar o level 20, e for por exemplo Knight, o Player conversará com o Npc

    e terá duas opções de vocações diferentes para escolher, ele poderá ser Blade ou Templar por exemplo.

    Se ele for Sorcerer terá outras duas Vocações para escolher, e assim por diante.

    Lembrando que o Player só pode fazer a mudança de Vocação apenas uma vez.

    Ficarei muito Grato pela ajuda e Atenção de Todos.

    Obrigado e Até mais!

     

     

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...