Ir para conteúdo
  • 0

Descrição Da Quest Não Aparece No Log!


othereality

Pergunta

Galera eu sei mexer no quest.xml mas por algum motivo a descrição que eu coloco nos níveis das missões não estão aparecendo.

Olhem meu quests.xml:

 

 

<?xml version="1.0" encoding="UTF-8"?>
<quests>
<quest name="Lost stone of Soya" startstorageid="23046" startstoragevalue="1">
<mission name="Pegue uma bag" storageid="23046" startvalue="1" endvalue="2">
<missionstate id="1" description="Find the stone."/>
<missionstate id="2" description="you have found the stone."/>
</mission>
</quest>
</quests>

 

edit:

 

Aproveitando o mesmo tópico, alguém sabe se é script ou edição de source pro GOD mexer os items de longe?

Editado por OtheReality
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Essa quest era para o player dropar sua primeira Bag para resolver o problema do meu outro pedido do first items. kkkk

 

quando o player entra no jogo pela primeira vez ele já ganha o storage:

 

 

 

local storage = 23045

local storagequest = 23046

function onLogin(cid)

if getPlayerStorageValue(cid, storage) == -1 then

setPlayerStorageValue(cid, storage, 1)

setPlayerStorageValue(cid, storagequest, 1)

end

return true

end

 

Ta certinho aparece até o nome da missão mas a descrição não... =/

 

E quanto as sources eu tenho algumas alterações:

 

autostack

Sumom não ganha xp

todos os players caminham sempre na mesma speed.

 

Mas oque isso importa?

Link para o comentário
Compartilhar em outros sites

  • 0

Para que a função do Quest Log funcione você precisa ter essa Função adicionada em seu Distro,

 

Vai em quests.cpp e procura por isso aki

std::string Mission::getDescription(Player* player) 

 

Depois substitua por isso aqui

 

std::string Mission::getDescription(Player* player)
{
   std::string value;
   int32_t find_storage;
   player->getStorage(storageId, value);
   if(state.size())
   {
    std::string ret = state;
    while((find_storage=ret.find("|STORAGE:"))>-1)
    {
		  int32_t parsing_storage = find_storage+9;
		  std::string temp;
		  while((int) ret[parsing_storage] != (int)'|')
		  {
			   temp += ret[parsing_storage];
			   parsing_storage++;
		  }
		  parsing_storage -=find_storage-1;
		  player->getStorage(atoi(temp.c_str()), temp);
		  ret.replace(find_storage, parsing_storage, temp);
    }
    replaceString(ret, "|STATE|", value);
    return ret;
   }
   if(atoi(value.c_str()) >= endValue)
   {
    std::string ret = states.rbegin()->second;
    while((find_storage=ret.find("|STORAGE:"))>-1)
    {
		  int32_t parsing_storage = find_storage+9;
		  std::string temp;
		  while((int) ret[parsing_storage] != (int)'|')
		  {
			   temp += ret[parsing_storage];
			   parsing_storage++;
		  }
		  parsing_storage -=find_storage-1;
		  player->getStorage(atoi(temp.c_str()), temp);
		  ret.replace(find_storage, parsing_storage, temp);
    }
    replaceString(ret, "|STATE|", value);
    return ret;
   }
   for(int32_t i = endValue; i >= startValue; --i)
   {
    player->getStorage(storageId, value);
    if(atoi(value.c_str()) != i)
	    continue;
    std::string ret = states[i - startValue];
    while((find_storage=ret.find("|STORAGE:"))>-1)
    {
		  int32_t parsing_storage = find_storage+9;
		  std::string temp;
		  while((int) ret[parsing_storage] != (int)'|')
		  {
			   temp += ret[parsing_storage];
			   parsing_storage++;
		  }
		  parsing_storage -=find_storage-1;
		  player->getStorage(atoi(temp.c_str()), temp);
		  ret.replace(find_storage, parsing_storage, temp);
    }
    replaceString(ret, "|STATE|", value);
    return ret;
   }
   return "Couldn't retrieve any mission description, please report to a gamemaster.";
} 

 

No quests.xml fica mais ou menos assim

 

<mission name="The head of Kiper" storageid="1001" startvalue="1" endvalue="3">
<missionstate id="0" description="Kill Rotworms to summon a Kiper!! You've killed already |STORAGE:1002|/50 Rotworms and |STORAGE:1500|/2 Carrion Rotworms."/>
<missionstate id="1" description="Give his head to Talaturen!"/>
<missionstate id="2" description="Take the medal you got from Talaturen to Ruly!"/>
</mission>

Link para o comentário
Compartilhar em outros sites

  • 0

Tente isso

 

 

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<quests>

<quest name="Lost stone of Soya" startstorageid="23046" startstoragevalue="1">

 

<mission name="Pegue uma bag" storageid="23046" startvalue="0" endvalue="1">

</mission>

 

<missionstate id="1" description="Find the stone."/>

</mission>

 

<missionstate id="2" description="you have found the stone."/>

</mission>

</quest>

</quests>

Link para o comentário
Compartilhar em outros sites

  • 0

Pensei em outro muamba pra arrumar isso, quando o player morre ele nasce com uma bag, eu poderia fazer o player morrer quando escolhe vocation e ai ele já nascer com a bag.

Mas isso e muito é chinelo, só se não der outro modo.

-----------------------------------------------------------

Porque voce não remove a bag no onLogin()?

Como assim remover onLogin() ?

Se o player nem começa com uma.

-----------------------------------------------------------

Para que a função do Quest Log funcione você precisa ter essa Função adicionada em seu Distro,

é claro que eu já tenho isso no distro,

se não a quest nem apareceria né?

-----------------------------------------------------------

Tente isso

Cara se ta loco?

fechando mission que nem abriu ai..

kkkk

Link para o comentário
Compartilhar em outros sites

  • 0

Quando player começa o jogo a bag do first items cai no chão.

Eu tentei fazer um quest bem onde o player começa que essa uma bag mas cai no chão também.

 

Então eu pensei em fazer uma quest de questlog que o objetivo fosse matar um Orc pegar uma bag e eu criei um movements OnEquip da Bag que seta a storage 23046 em 2 pra terminar a quest.

 

Mas tive problemas nas duas tentativas.

 

 

EDIT:

Galera eu tava jogando no OT e resolvi terminar a quest mesmo sem aparecer a descrição, então percebi que a aparece a descrição da segunda parte normalmente.

dai tentei substituir

 

startvalue="1"

por

 

startvalue="0"

E as duas descrições apareceram!

 

 

Resolvido podem fechar o tópico.

Editado por OtheReality
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...