Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Boa pessoal, uso o evolurions 0.6.0 otserv 7.92

Minha dúvida é: quero adicionar ruby coin (conhecido como gold nugget) no meu ot, ja tenho as scripts em actions e sim funciona, mas quando vou comprar item em npc tenho que desfazer para crystal, tentei alterar na source mas quando compilo ele da o troco errado, alguem poderia me ajudar?

obs: o type worth não está adicionado.

aqui está minha source!

Mesmo que eu adicione

 

case ITEM_COINS_RUBY, etc... o troco do npc fica completamente bugado!

duvida1.png.3360b60bda01b029d7dc703de6048424.pngduvida2.png.0188306aedba364fc927edebf94dec73.png

 

Desde de ja muito obrigado pessoal!!!

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

velhinho vc prefere que eu mande pra vc só as sources ou o otserv completo?

https://www.4shared.com/rar/PUVy0L3Uca/ULTIMO_UPLOAD_MIX_FULL_EDITAVE.html?

 

Bom, já adiantando eu mandei o download da minha pasta do ot que eu estou trabalhando, da pra vc ver qualquer coisa, se quiser também podemos modificar juntos o ot pra ficar legal e criar coisas novas e tal... qqr coisa manda seu whats no pv ae vlww

Link para o post
Compartilhar em outros sites

Está tudo nas mãos dele basta ele olhar pro lugar certo, 7.92 é muito antigo ainda mais as source do Xidazou

 

Em Item.cpp procure por "case ITEM_COINS_CRYSTAL:"

 

Vai tá assim:

int Item::getWorth() const
{
	switch(getID()){
	case ITEM_COINS_GOLD:
		return getItemCount();
	case ITEM_COINS_PLATINUM:
		return getItemCount() * 100;
	case ITEM_COINS_CRYSTAL:
		return getItemCount() * 10000;
	default:
		return 0;
	}
}

 

Substitua por:

int Item::getWorth() const
{
	switch(getID()){
	case ITEM_COINS_GOLD:
		return getItemCount();
	case ITEM_COINS_PLATINUM:
		return getItemCount() * 100;
	case ITEM_COINS_CRYSTAL:
		return getItemCount() * 10000;
	case ITEM_COINS_RUBY:
		return getItemCount() * 1000000;
	default:
		return 0;
	}
}

 

Em const79.h procure por "enum item_t {"

Vai tá assim:

enum item_t {
	ITEM_FISHING_ROD      = 2580,
	ITEM_SHOVEL           = 2554,
	ITEM_ROPE             = 2120,
	ITEM_MACHETE          = 2420,
	ITEM_SCYTHE           = 2550,
	ITEM_COINS_GOLD       = 2148,
	ITEM_COINS_PLATINUM   = 2152,
	ITEM_COINS_CRYSTAL    = 2160,

Abaixo de "ITEM_COINS_CRYSTAL    = 2160,"

Adicione:

ITEM_COINS_RUBY       = 13685,

 

E por fim vamos em game.cpp e procure por "/* Remove a monetary value from an item*/"

Vai está assim:

/* Remove a monetary value from an item*/
			int remaind = item->getWorth() - money;
			int crys = remaind / 10000;
			remaind = remaind - crys * 10000;
			int plat = remaind / 100;
			remaind = remaind - plat * 100;
			int gold = remaind;

Substitua por:

/* Remove a monetary value from an item*/
			int remaind = item->getWorth() - money;
			int rubys = remaind / 1000000;
			remaind = remaind - rubys * 1000000;
			int crys = remaind / 10000;
			remaind = remaind - crys * 10000;
			int plat = remaind / 100;
			remaind = remaind - plat * 100;
			int gold = remaind;

Olhando um pouco mais abaixo você verá isso:

			if(crys != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_CRYSTAL, crys);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}

Depois é só adicionar isso acima de "if(crys != 0){"

			if(rubys != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_RUBY, rubys);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}

e irá ficar assim:

 

			if(rubys != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_RUBY, rubys);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}

			if(crys != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_CRYSTAL, crys);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}
			
			if(plat != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_PLATINUM, plat);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}
			
			if(gold != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_GOLD, gold);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}

Pronto. Compile sua source e vá comprar seus itens.

Amostra.thumb.png.d674fb58cc19a0112ca3158652b1d4f5.png

Editado por Roy (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 28/01/2018 em 12:39, Roy disse:

Está tudo nas mãos dele basta ele olhar pro lugar certo, 7.92 é muito antigo ainda mais as source do Xidazou

 

Em Item.cpp procure por "case ITEM_COINS_CRYSTAL:"

 

Vai tá assim:


int Item::getWorth() const
{
	switch(getID()){
	case ITEM_COINS_GOLD:
		return getItemCount();
	case ITEM_COINS_PLATINUM:
		return getItemCount() * 100;
	case ITEM_COINS_CRYSTAL:
		return getItemCount() * 10000;
	default:
		return 0;
	}
}

 

Substitua por:


int Item::getWorth() const
{
	switch(getID()){
	case ITEM_COINS_GOLD:
		return getItemCount();
	case ITEM_COINS_PLATINUM:
		return getItemCount() * 100;
	case ITEM_COINS_CRYSTAL:
		return getItemCount() * 10000;
	case ITEM_COINS_RUBY:
		return getItemCount() * 1000000;
	default:
		return 0;
	}
}

 

Em const79.h procure por "enum item_t {"

Vai tá assim:


enum item_t {
	ITEM_FISHING_ROD      = 2580,
	ITEM_SHOVEL           = 2554,
	ITEM_ROPE             = 2120,
	ITEM_MACHETE          = 2420,
	ITEM_SCYTHE           = 2550,
	ITEM_COINS_GOLD       = 2148,
	ITEM_COINS_PLATINUM   = 2152,
	ITEM_COINS_CRYSTAL    = 2160,

Abaixo de "ITEM_COINS_CRYSTAL    = 2160,"

Adicione:


ITEM_COINS_RUBY       = 13685,

 

E por fim vamos em game.cpp e procure por "/* Remove a monetary value from an item*/"

Vai está assim:


/* Remove a monetary value from an item*/
			int remaind = item->getWorth() - money;
			int crys = remaind / 10000;
			remaind = remaind - crys * 10000;
			int plat = remaind / 100;
			remaind = remaind - plat * 100;
			int gold = remaind;

Substitua por:


/* Remove a monetary value from an item*/
			int remaind = item->getWorth() - money;
			int rubys = remaind / 1000000;
			remaind = remaind - rubys * 1000000;
			int crys = remaind / 10000;
			remaind = remaind - crys * 10000;
			int plat = remaind / 100;
			remaind = remaind - plat * 100;
			int gold = remaind;

Olhando um pouco mais abaixo você verá isso:


			if(crys != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_CRYSTAL, crys);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}

Depois é só adicionar isso acima de "if(crys != 0){"


			if(rubys != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_RUBY, rubys);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}

e irá ficar assim:

 


			if(rubys != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_RUBY, rubys);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}

			if(crys != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_CRYSTAL, crys);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}
			
			if(plat != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_PLATINUM, plat);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}
			
			if(gold != 0){
				Item* remaindItem = Item::CreateItem(ITEM_COINS_GOLD, gold);

				ReturnValue ret = internalAddItem(cylinder, remaindItem, INDEX_WHEREEVER, flags);
				if(ret != RET_NOERROR){
					internalAddItem(cylinder->getTile(), remaindItem, INDEX_WHEREEVER, FLAG_NOLIMIT);
				}
			}

Pronto. Compile sua source e vá comprar seus itens.

Amostra.thumb.png.d674fb58cc19a0112ca3158652b1d4f5.png

 

 

CARA TE AMO AJUDOU PAKAS MANO REP++

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.

  • Conteúdo Similar

    • Por Muvuka
      Alguem tem anti-nuker igual a esse 
       

       
    • Por Muvuka
      [SQLite] -=[TFS]=- 0.4 8.60 Alguem faz apk mobile pra mim ip: dexsoft.ddns.net
       
      pra mim
       
      https://www.mediafire.com/file/5klqnyy6k7jda0u/OTClientV8.rar/file
       
      TA TUDO AI
    • Por yuriowns
      Salve rapazes, estou precisando de um client próprio para o meu servidor 7.4, preciso que algum programador experiente e com referências faça um client do jeito que eu procuro. Responda aqui para fazermos um orçamento, obrigado!

      Não sei se estou no lugar certo, se não me desculpem e peço que movam por gentileza!
    • Por paulo thush
      Pessoal to com um grande problema, estou com um servidor TFS 1.4x 10.98, recentemente começou dar um problema, sempre quando falava "trade" com o npc dava um erros, com qual quer npc, o erro e o seguinte.
       
       
      me falaram que o problema e nas sourcer que precisava mudar umas coisas me passaram um link no github esse aqui 
      https://github.com/otland/forgottenserver/pull/3996/files
       
      porem eu vi vídeos no youtube ensinando a compilar, já vi muitos tópicos como compilar a sourcer, ai quando vou compilar da esse erro
      já tentei instalar, desinstala muitas coisas, alterar também não vai, minha sourcer e essa 
      https://github.com/otland/forgottenserver
       
       
      Alguém poderia me ajuda com esse erro, ou ate compilar 100% as sourcer. os Tópicos que eu tentei para compilar e esse daqui, se não poder o link me desculpe.
      https://forums.otserv.com.br/index.php?/forums/topic/169234-windowsvc2019-compilando-sources-tfs-14-vcpkg/
       
      alguém me da uma luz por favor kkk
    • Por Ryzek
      Uso tfs 0.4 trunk3884 bem simples.
      Queria acrescentar magic effects para 255 pois o meu só vai até 69. Encontrei um tópico que falava sobre porém parece ter sido removido, não consigo acessar!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo