Ir para conteúdo
  • 0

No Vocation Não Acessar Market e Não receber Parcel


DeCarvalho

Pergunta

Bem, gostaria de saber se alguém poderia fazer para mim um script que bloqueie um char sem vocação de ter acesso ao market, levando em conta que o 'market' é um item, o mesmo pode ter acesso bloqueado. (market aquela caixinha que fica dentro do locker)

 

Com relação a receber parcel, (usando uma dica mas que não sei fazer) poderia ser usado um onAddItem e se o item for parcel chegando no mailbox, fazer uma checagem para saber se o player é sem vocação, se sim, retornar a parcel para a origem.

 

Na pior das hipóteses bloquear o acesso de player sem vocação ao mercado e ao correio, deixando acesso somente ao depot para poder guardar items.. pior pois a pessoa que tentasse mandar um item de mainland para um noob char iria perder o item.

 

Enfim, Acho que esta bem explicado, se alguém puder fazer..

 

Eu uso TFS 1.2

 

// Bem, alguém então poderia informar como eu posso fazer para começar?

 

como setar a tag, e em qual sessão action/movements/etc e qual função/parametro usar..

 

o resto eu vou tentando naquela de tentativa e erro.. apesar de achar que não seja tão dificil fazer um script que verifique se o player tem vocação e dependendo do retorno se ele pode ou não ter acesso a um 2 ou 3 ids..

 

meu problema para fazer só realmente é que não sei a função, onThink onUse onSeiLaOQue e não sei onde colocar...

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

13 respostass a esta questão

Posts Recomendados

  • 0

Vou tentar fazer pra você, só espera eu chegar em casa, umas 19:00 :)

 

Vou estar por aqui, agradeço a intenção de ajudar, se conseguir melhor ainda.. :D darei varios reps :D

 

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

  • 0

Beleza, ontem não fiz porque tava quebrando cabeça com um sistema que to produzindo pro meu projeto, já já vocês vão conhecer... Mas em relação ao tópico, hoje eu faço sim, sem falta! :)

 

#Edit: Então, pra fazer esse script, precisar acessar o DataBase do servidor, e com isso eu não sei mexer... O que dá pra fazer, é igual ao tibia global, o player pisa num tile de pressão (aqueles que abaixam) e então adicionar o item "Market" no iventário, assim que ele sair, o item some, se quiser, dá pra fazer assim...

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

  • 0

Beleza, ontem não fiz porque tava quebrando cabeça com um sistema que to produzindo pro meu projeto, já já vocês vão conhecer... Mas em relação ao tópico, hoje eu faço sim, sem falta! :)

 

#Edit: Então, pra fazer esse script, precisar acessar o DataBase do servidor, e com isso eu não sei mexer... O que dá pra fazer, é igual ao tibia global, o player pisa num tile de pressão (aqueles que abaixam) e então adicionar o item "Market" no iventário, assim que ele sair, o item some, se quiser, dá pra fazer assim...

 

Então não colocarei o locker na area.. com esse script do tile de pressão eu colocar onde desejar esse tile, assim que o char pisa no local no inventário (seria na bp?) aparece o depot(só o depot, não quero mail nem market), guarda o que quer, retira e ao sair do tile o depot some.. mas as informações dos items continuam lá. certo?

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

  • 0

 

Não,no caso adicionaria somente o tal do Market na BP, caso o player tenha uma vocation, caso contrário, assim que ele pisar, não acontece nada... O Market seria o "depot" dentro do Locker?

 

Entendo, desculpe a minha ignorância na pergunta.. mas não tem uma maneira de fazer a verificaçãod e player sem vocação e não liberar acesso ao item?

 

se a vocação for = 0 ele envia uma msg dizendo que não pode usar o item

 

22:53 You see your inbox (Vol:30).
Item ID: 14404
Position: 382, 163, 7
22:53 You see the market.
Item ID: 14405
Position: 382, 163, 7
.. tipo o meu npc de banco, se tentarem transferir para um jogador sem vocação ele informa que não é possível..
Não seria mais simples bloquear o uso do item.id se a vocação for igual 0?
O char acessa o locker normalmente, o depot, inbox e o market estarão la dentro, mas se ele não tiver vocação ele simplesmente não vai acessar.. nesse caso nem precisa de mexer com db, creio eu..
[edit] tendo esse sistema eu posso pedir para alguém só trabalhar na verificação da db em cima de item recebido no correio retornando para quem enviou. Mas o mais importante é fazer que o mesmo não tenha acesso..

// Alguma novidade? alguém?

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

  • 0

E aí mano, conseguiu?

 

Nada.. como não gosto de ficar cobrando, visto que é um favor, uma ajuda , etc , enfim...

 

Mas caso alguém saiba como fazer, ou ao menos mostrar como se inicia.. talvez eu consiga fazer o resto pesquisando.. pelo menos o onUse para que eu tente bloquear os items caso seja sem vocação...

 

Qualquer ajuda é bem vinda.. não precisa ser um Scripting God Master Phod@o Of Universe para ajudar :D

// Bem, alguém então poderia informar como eu posso fazer para começar?

 

como setar a tag, e em qual sessão action/movements/etc e qual função/parametro usar..

 

o resto eu vou tentando naquela de tentativa e erro.. apesar de achar que não seja tão dificil fazer um script que verifique se o player tem vocação e dependendo do retorno se ele pode ou não ter acesso a um 2 ou 3 ids..

 

meu problema para fazer só realmente é que não sei a função, onThink onUse onSeiLaOQue e não sei onde colocar...

 

06/08 // Passando para ver se alguém ajuda :)

08/08 // bem.. aqui novamente na esperança de alguém ajudar com isso :)

 

se a vocação for = 0 ele envia uma msg dizendo que não pode usar o item

22:53 You see your inbox (Vol:30).
Item ID: 14404
Position: 382, 163, 7
22:53 You see the market.
Item ID: 14405
Position: 382, 163, 7
Editado por DeCarvalho
Link para o comentário
Compartilhar em outros sites

  • 0

Resolvido e o crédito pela ajuda é do luan que informou que talvez poderia ser resolvido usando if (vocation->getId() != VOCATION_NONE) {} no local informado.. no arquivo player.cpp

DepotLocker* Player::getDepotLocker(uint32_t depotId)
{
auto it = depotLockerMap.find(depotId);
if (it != depotLockerMap.end()) {
inbox->setParent(it->second);
return it->second;
}

DepotLocker* depotLocker = new DepotLocker(ITEM_LOCKER1);
depotLocker->setDepotId(depotId);
if (vocation->getId() != VOCATION_NONE) {
depotLocker->internalAddThing(Item::CreateItem(ITEM_MARKET));
depotLocker->internalAddThing(inbox);
}
depotLocker->internalAddThing(getDepotChest(depotId, true));
depotLockerMap[depotId] = depotLocker;
return depotLocker;
}

Não sei se posso marcar minha resposta como melhor resposta visto que estou deixando a resposta para o problema aqui, mas vou marcar pois está resolvido o problema de no vocation não acessar depot nem market..

 

Mas estou marcando para a moderação saber que foi resolvido e mover par a area correta, caso seja contra alguma regra.. gostaria de ser informado.. ou outra forma de informar que foi resolvido :)

 

jLxoG6O.gif

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

×
×
  • Criar Novo...