antiblock
Elveron
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
  • 0
avklbacterias

tem como?

Question

boa noite!

 

tem como puxar um item com o bonus que voce quer nele ?

 

ou so tem como faazer isso pelo o navecat?

Share this post


Link to post
Share on other sites

4 answers to this question

  • 0

Boa noite, 

 

Directamente por o jogo não.

 

Só por PHP ou Navicat mesmo.

Share this post


Link to post
Share on other sites
antiblock
Elveron
  • 0

Dá diretamente no jogo com um comando gm tipo este:

 

Adicionar no cmd_gm.cpp:

#include <iostream>
#include <vector>
#include <string>

void split(const std::string& s, char delim, std::vector<std::string>& v) {
	int i = 0;
	int pos = s.find(delim);
	while (pos != std::string::npos)
	{
		v.push_back(s.substr(i, pos-i));
		i = ++pos;
		pos = s.find(delim, pos);
		if (pos == std::string::npos) v.push_back(s.substr(i, s.length()));
	}
}

int countChars(char* s, char c)
{
	return *s == '\0' ? 0 : countChars( s + 1, c ) + (*s == c);
}
ACMD(do_create_item)
{
	char item[256];
	char bonus[1024];
	two_arguments(argument, item, sizeof(item), bonus, sizeof(bonus));
	if (!*item || !*bonus)
	{
		ch->ChatPacket(CHAT_TYPE_INFO, "Usage: /create_item <value_item> <b1:v1,b2:v2,b3:v3,b4:v4,b5:v5,b6:v6,b7:v7>");
		ch->ChatPacket(CHAT_TYPE_INFO, "");
		ch->ChatPacket(CHAT_TYPE_INFO, "[b] = Bonus vnum");
		ch->ChatPacket(CHAT_TYPE_INFO, "[v] = Bonus value");
		ch->ChatPacket(CHAT_TYPE_INFO, "");
		ch->ChatPacket(CHAT_TYPE_INFO, "Created by RaFFa.");
		return;
	}
	if (bonus[(strlen(bonus)-1)] == ',') {
		ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> [Err1] Syntax Error.");
		return;
	}
	if (bonus[(strlen(bonus)-1)] == ':') {
		ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> [Err2] Syntax Error.");
		return;
	}
	if (strstr(bonus, ":") == NULL) {
		ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> [Err3] Syntax Error.");
		return;
	}
	if (strstr(bonus, ",") == NULL) {
		ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> Adding 1 bonus...");
		int vnum=0;
		str_to_number(vnum, item);
		LPITEM i = ITEM_MANAGER::instance().CreateItem(vnum);
		if (!i) {
			ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> This item-vnum not exists.");
			return;
		}
		int bonus_vnum=0;
		int bonus_value=0;
		std::vector<std::string> bonus2;
		split(std::string(bonus), ':', bonus2);
		str_to_number(bonus_vnum, std::string(bonus2[0]).c_str());
		str_to_number(bonus_value, std::string(bonus2[1]).c_str());
		i->SetForceAttribute(0, bonus_vnum, bonus_value);
		i->SetSocket(0, 1);
		int inventario = ch->GetEmptyInventory(i->GetSize());
		if (inventario != -1) {
			i->AddToCharacter(ch, TItemPos(INVENTORY, inventario));
			ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> Item created successfully.");
		}else{
			M2_DESTROY_ITEM(i);
			ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> You haven't enough space in inventory.");
		}
	}else{
		std::vector<std::string> bonus1;
		split(std::string(bonus), ',', bonus1);
		if (bonus1.size()>0) {
			ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> Adding %d bonus...", (int)bonus1.size());
			if (countChars(bonus, ':') != (int)bonus1.size()) {
				ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> [Err4] Syntax Error.");
				return;				
			}
			int vnum=0;
			str_to_number(vnum, item);
			LPITEM i = ITEM_MANAGER::instance().CreateItem(vnum);
			if (!i) {
				ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> This item-vnum not exists.");
				return;
			}
			int b_size=bonus1.size();
			if (bonus1.size()>6) b_size=7;
			int bonus_vnum=0;
			int bonus_value=0;
			for (int n=0; n<b_size; n++) {
				std::vector<std::string> bonus2;
				split(std::string(bonus1[n]), ':', bonus2);
				str_to_number(bonus_vnum, std::string(bonus2[0]).c_str());
				str_to_number(bonus_value, std::string(bonus2[1]).c_str());
				i->SetForceAttribute(n, bonus_vnum, bonus_value);
			}
			i->SetSocket(0, 1);
			int inventario = ch->GetEmptyInventory(i->GetSize());
			if (inventario != -1) {
				i->AddToCharacter(ch, TItemPos(INVENTORY, inventario));
				ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> Item created successfully!");
			}else{
				M2_DESTROY_ITEM(i);
				ch->ChatPacket(CHAT_TYPE_INFO, "<CreateItem> You haven't enough space in inventory.");
			}
		}
	}
}

 

 

Share this post


Link to post
Share on other sites
  • 0

Respondendo a tua pergunta, sim é possível, podes fazer isso de varias maneiras, por comando gm como o exemplo acima, através de uma pagina web e ainda deixo uma outra sugestão que é fazer isso por quest, solução simples.

Share this post


Link to post
Share on other sites
  • 0
Em 12/04/2019 em 03:39, avklbacterias disse:

boa noite!

 

tem como puxar um item com o bonus que voce quer nele ?

 

ou so tem como faazer isso pelo o navecat?

Precisas de ajuda com o servidor?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now