Ir para conteúdo
  • Cadastre-se

(Resolvido)[Pedido] No Vocation não ter acesso ao Market e nem receber parcel


Ir para solução Resolvido por luanluciano93,

Posts Recomendados

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 está bem explicado, se alguém puder fazer para mim...

 

//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...

 

Grato

DeCarvalho

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

Mas Rookgaard não tem depot, não tem como isso acontecer, ou você colocou?

 

Estou usando um mapa custom e adicionei lockers para jogadores sem vocação.. 

Link para o post
Compartilhar em outros sites

Sério, não tem alguém que poderia dar uma ajuda com isso? :/ disponibilizar alguma ideia viável.. ;\ Eu memso não sei fazer ;\

Link para o post
Compartilhar em outros sites

Creio que só pela source. Mas de qualquer forma, acho mais viavel tirar o depot dos no vocation.

 

Visto que o market e o mail tem ids.. teria como fazer um bloqueio de não usar assim como é feito com outros items.. se eu soubesse ao menos como fazer a checagem de id eu tentaria fazer..

 

Mas eu não sei onde coloca a tag e nem como começar.. 

Link para o post
Compartilhar em outros sites

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...

Link para o post
Compartilhar em outros sites
  • Solução

Eu não manjo nada de C++, mas não custa tenta .. 

Procura essa função no arquivo player.cpp.

Creio que se add uma condição nessa linha: 

depotLocker->internalAddThing(Item::CreateItem(ITEM_MARKET));

Uma condição que verifique se o player tem vocação, tipo assim: 

	if (vocation->getId() != VOCATION_NONE) {
		depotLocker->internalAddThing(Item::CreateItem(ITEM_MARKET));
	}

É uma suposição que dê certo, como eu disse, eu não manjo nada de C++, se quiser testar ... 

Se puder ajudar, @Lordfire

Link para o post
Compartilhar em outros sites

Eu não manjo nada de C++, mas não custa tenta .. 

Procura essa função no arquivo player.cpp.

Creio que se add uma condição nessa linha: 

depotLocker->internalAddThing(Item::CreateItem(ITEM_MARKET));

Uma condição que verifique se o player tem vocação, tipo assim: 

	if (vocation->getId() != VOCATION_NONE) {
		depotLocker->internalAddThing(Item::CreateItem(ITEM_MARKET));
	}

É uma suposição que dê certo, como eu disse, eu não manjo nada de C++, se quiser testar ... 

Se puder ajudar, @Lordfire

 

No momento isso é algo que eu n posso testar pois estou sem computador.. meus monitores queimaram e estou usando o notebook da minha namorada ai eu fico só no basico mesmo.. Mas ja fiz a compra e semana que vem devo estar com novos monitores.. de qualquer maneira agradeço e vou deixar separado para assim que chegarem eu testar..

 

No entando.. por lógica acho que seria possível bloquear sem alterar a source, baseio-me no sistema de vip.. e em tantos outros.. onde se você for então pode usar tal coisa, se não, recebe uma msg..

 

Eu mesmo, de forma 'capenga' fiz algumas coisas simples como 'se for vip', 'se tiver level', 'se não tiver vocação', mas tudo baseado em outros codigos.. pois são de facil entendimento e alteração/implementação..

 

Eu só n sei como fazer pois não tenho uma base.. Eu precisaria pelo menos saber como começar e onde colocar a tag relacionada.. pois tanto o market quanto o mail são items

 

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

 

Eu não conheço as funções/parametros para saber como estar criando essa verificação.. pensei em fazer um onLogin e sair catando pedaos de scripts por aí para tentar entender.. mas não cheguei a achar um script que eu pudesse usar o if player:getVocation() == 0 then pelo menos imagino que seria assim que eu bloquearia o uso do item em questão.. 

 

Depois eu poderia pensar em como fazer o sql deletar os dados do player_depot caso houvesse algo la dentro e o player fosse sem vocação, pois a intenção é realmente n]ao deixar nada.. nem mesmo que depois ele tenha vocação..

 

Ja que acho mais dificil eu fazer um onAddItem e se o item for parcel verificar a label, caso o nome seja de um jogador sem vocação ele retorne para quem enviou..

 

Mas tendo pelo menos esse bloqueio ja adiantaria muito..e novamente.. ja que ninguém quer fazer, eu entendo pois ninguém é obrigado.. mas pelo menos alguém que me desse um rumo ... 

 

Se eu tivesse com meu pc em ordem testaria o que disse, mas por outro lado, acho mais interessante o .lua pois assim eu até poderia fazer outros tipos de bloqueios de items.. seria algo mais genérico..

De qualquer forma muito obrigado pela ajuda.. :)

Link para o post
Compartilhar em outros sites

Eu não manjo nada de C++, mas não custa tenta .. 

Procura essa função no arquivo player.cpp.

Creio que se add uma condição nessa linha: 

depotLocker->internalAddThing(Item::CreateItem(ITEM_MARKET));

Uma condição que verifique se o player tem vocação, tipo assim: 

	if (vocation->getId() != VOCATION_NONE) {
		depotLocker->internalAddThing(Item::CreateItem(ITEM_MARKET));
	}

É uma suposição que dê certo, como eu disse, eu não manjo nada de C++, se quiser testar ... 

Se puder ajudar, @Lordfire

 

 

Resolvi instalar o vs aqui para testar e funcionou, muito obrigado pela dica.. pode dar esse como resolvido.. vou tentar fazer a verificação de caso chegar mail ele retornar baseado em uns scripts que tenho aqui, caso não consiga eu crio um outro topico.. mas o problema principal referente a esse foi resolvido..

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;
}

Muito obrigado novamente

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo