Beispiel #1
0
void IChatHandler::_sCmd_Stat(IWorldPlayer *_player, const char *_message)
{
	FDASSERT(_player);
	FDASSERT(_message);

	s32 t_amount = 0;

	sscanf(_message, "%s %d", m_buffer, &t_amount);

	E_STAT t_stat = DST_NONE;

	if (xstricmp("STR", m_buffer) == 0)
	{
		t_stat = DST_STR;
	}
	else if (xstricmp("STA", m_buffer) == 0)
	{
		t_stat = DST_STA;
	}
	else if (xstricmp("DEX", m_buffer) == 0)
	{
		t_stat = DST_DEX;
	}
	else if (xstricmp("INT", m_buffer) == 0)
	{
		t_stat = DST_INT;
	}
	else
	{
		t_stat = stat(xtoi(m_buffer));
	}

	switch (t_stat)
	{
	case DST_STR:
		_player->getCharacter()->addStr(t_amount);
		break;

	case DST_STA:
		_player->getCharacter()->addSta(t_amount);
		break;

	case DST_DEX:
		_player->getCharacter()->addDex(t_amount);
		break;

	case DST_INT:
		_player->getCharacter()->addInt(t_amount);
		break;

	default:
		_player->greenText("Invalid stat type");
		return;
	}

	_player->getObject()->onBaseStatChanged();

	_player->getObject()->sendToLocalArea(IPacketCreator::statInfos(_player->getObject()));
}
Beispiel #2
0
int cvfs_cmp_file_name(char *pat, char *str)
{
    char    pat_file[_MAX_FNAME];
    char    pat_ext[_MAX_EXT];
    char    str_file[_MAX_FNAME];
    char    str_ext[_MAX_EXT];

    _splitpath(pat,NULL, NULL, pat_file, pat_ext);
    _splitpath(str,NULL, NULL, str_file, str_ext);

    if (!*pat_ext) strcpy(pat_ext, ".");
    if (!*str_ext) strcpy(str_ext, ".");

    return (xstricmp(pat_file, str_file) && xstricmp(pat_ext, str_ext));
}
Beispiel #3
0
static int CheckExt(char *filename)
{
	int i;
	char *ext = GetExt(filename);
	for (i = 0; nez_extlist[i]; i++) if (!xstricmp(ext, nez_extlist[i])) return 1;
	return 0;
}
Beispiel #4
0
	bool CFileReader::readBool()
	{
		readNext(m_buffer_2, BUF_2_SIZE);
		if (xtoi(m_buffer_2) ||
			xstricmp("true", m_buffer_2) == 0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
bool IPacketReceiver::_login(IWorldPlayer *_player)
{
	static const u32 T_BUF_SIZE = 256;
	static char ts_buf_charname[T_BUF_SIZE];
	static char ts_buf_accname[T_BUF_SIZE];
	static char ts_buf_password[T_BUF_SIZE];

	FDASSERT(_player);

	CByteArray &t_packet = _player->getClient()->incoming();

	//not used
	t_packet.getInt();
	t_packet.getInt();
	t_packet.getInt();
	t_packet.getInt();
	t_packet.getInt();
	t_packet.getInt();
	t_packet.getInt();
	t_packet.getByte();

	//char name
	if (!t_packet.getString(ts_buf_charname, T_BUF_SIZE))
		return false;

	//account name
	if (!t_packet.getString(ts_buf_accname, T_BUF_SIZE))
		return false;

	//pw
	if (!t_packet.getString(ts_buf_password, T_BUF_SIZE))
		return false;

	//check account
	AccountPtr t_account = m_server->getAccountManager()->getAccount_W(ts_buf_accname);

	if (t_account &&
		xstricmp(t_account->getPassword(), ts_buf_password) == 0)
	{
		_player->setAccount(t_account);

		//check character
		CharacterPtr t_char = m_server->getCharacterManager()->getCharacter_W(ts_buf_charname);

		//char exists?
		if (t_char)
		{
			_player->setCharacter(t_char);

			_player->getCharacter()->setOnline(true);

			m_server->getCharacterManager()->saveCharacter_onlineStatus_W(_player->getCharacter());
		}
		//wrong char name
		else
		{
			return false;
		}
	}

	//wrong id or wrong password
	else
	{
		return false;
	}

	t_packet.getInt();
	t_packet.getInt();

	Log::write(LOG_GAME, "Nouveau Joueur");

	m_server->enterWorld(_player);

	return !t_packet.end();
}
Beispiel #6
0
void IChatHandler::chat(IWorldPlayer *_player, const char *_message)
{
	FDASSERT(m_pserver);
	FDASSERT(_player);
	FDASSERT(_message);

	if (!*_message)
		return;

	switch (*_message++)
	{
	case '/': //Flyff commands
		{
			sscanf(_message, "%s%n", m_command, &m_command_size);
			_message += m_command_size;

			//Shout
			if (xstricmp("s", m_command) == 0)
			{
				_fCmd_Shout(_player, _message);
			}

			//Say
			else if (xstricmp("say", m_command) == 0)
			{
				_fCmd_Say(_player, _message);
			}

			//Whisper
			else if (xstricmp("w", m_command) == 0)
			{
				_fCmd_Whisper(_player, _message);
			}

			//PartyInvite
			else if (xstricmp("partyinvite", m_command) == 0)
			{
				_fCmd_PartyInvite(_player, _message);
			}

			//Teleport
			else if (xstricmp("teleport", m_command) == 0)
			{
				_fCmd_Teleport(_player, _message);
			}

			return;
		}

	case '#': //blackorion commands
		{
			sscanf(_message, "%s%n", m_command, &m_command_size);
			_message += m_command_size;

			bool t_usable = true;

			for (u32 i = 0; i < m_cmdHandles.size(); ++i)
			{
				if (_command(*m_cmdHandles[i].Command, m_command, _player, t_usable) &&
					t_usable)
				{
					(this->*m_cmdHandles[i].Function)(_player, _message);
					return;
				}
			}

			_player->greenText("Unknown command");

			/*IWorldCommandSettings &t_sett = m_pserver->m_settings.Commands;

			bool t_canUse = false;

			//Info
			if (_command(t_sett.Info, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_info(_player, _message);
				}
			}

			//Coin
			else if (_command(t_sett.Coin, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_coin(_player, _message);
				}
			}

			//Dice
			else if (_command(t_sett.Dice, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_dice(_player, _message);
				}
			}

			//Penya
			else if (_command(t_sett.Penya, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_penya(_player, _message);
				}
			}

			//Level
			else if (_command(t_sett.Level, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_level(_player, _message);
				}
			}

			//AccessLevel
			else if (_command(t_sett.AccessLevel, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_accessLevel(_player, _message);
				}
			}

			//ClearInv
			else if (_command(t_sett.ClearInv, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_clearInv(_player, _message);
				}
			}

			//DropInv
			else if (_command(t_sett.DropInv, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_dropInv(_player, _message);
				}
			}

			//Shout
			else if (_command(t_sett.Shout, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_shout(_player, _message);
				}
			}

			//Item
			else if (_command(t_sett.Item, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_item(_player, _message);
				}
			}

			//Stat
			else if (_command(t_sett.Stat, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_stat(_player, _message);
				}
			}

			//Notice
			else if (_command(t_sett.Notice, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_notice(_player, _message);
				}
			}

			//Pos
			else if (_command(t_sett.Pos, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_pos(_player, _message);
				}
			}

			//Name
			else if (_command(t_sett.Name, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_name(_player, _message);
				}
			}

			//Exp
			else if (_command(t_sett.Exp, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_exp(_player, _message);
				}
			}

			//AddExp
			else if (_command(t_sett.AddExp, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_addExp(_player, _message);
				}
			}

			//Kill
			else if (_command(t_sett.Kill, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_kill(_player, _message);
				}
			}

			//Job
			else if (_command(t_sett.Job, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_job(_player, _message);
				}
			}

			//Points
			else if (_command(t_sett.Points, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_points(_player, _message);
				}
			}

			//GetPoints
			else if (_command(t_sett.GetPoints, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_getPoints(_player, _message);
				}
			}

			//PlayerInfo
			else if (_command(t_sett.PlayerInfo, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_playerInfo(_player, _message);
				}
			}

			//Immortal
			else if (_command(t_sett.Immortal, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_immortal(_player, _message);
				}
			}

			//OneHit
			else if (_command(t_sett.OneHit, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_oneHit(_player, _message);
				}
			}

			//God
			else if (_command(t_sett.God, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_god(_player, _message);
				}
			}

			//SetAccessLevel
			else if (_command(t_sett.SetAccessLevel, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_setAccessLevel(_player, _message);
				}
			}

			//Mob
			else if (_command(t_sett.Mob, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_mob(_player, _message);
				}
			}

			//CreateSpawn
			else if (_command(t_sett.CreateSpawn, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_createSpawn(_player, _message);
				}
			}

			//CreateItemList
			else if (_command(t_sett.CreateItemList, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_createItemList(_player, _message);
				}
			}

			//Place
			else if (_command(t_sett.Place, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_place(_player, _message);
				}
			}

			//Ban
			else if (_command(t_sett.Ban, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_ban(_player, _message);
				}
			}

			//PvpPoints
			else if (_command(t_sett.PvpPoints, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_pvpPoints(_player, _message);
				}
			}

			//PkPoints
			else if (_command(t_sett.PkPoints, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_pkPoints(_player, _message);
				}
			}

			//Disposition
			else if (_command(t_sett.Disposition, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_disposition(_player, _message);
				}
			}

			//Weather
			else if (_command(t_sett.Weather, m_command, _player, t_canUse))
			{
				if (t_canUse)
				{
					_sCmd_weather(_player, _message);
				}
			}

			else
			{
				_player->greenText("Unknown command"));
			}*/

			return;
		}

	case '.': //Custom commands
		{
			ICommandScriptEnv::instance()->command(_player->getObject(), _message);
			return;
		}
	};

	//... normal chat
	*_message--;

	_player->getObject()->getWorld()->sendToLocalArea(_player->getObject(),
		IPacketCreator::chat(_player->getObject()->getId(), _message));
}
Beispiel #7
0
void IChatHandler::_sCmd_Place(IWorldPlayer *_player, const char *_message)
{
	FDASSERT(_player);
	FDASSERT(_message);

	sscanf(_message, "%s", m_buffer);

	CPoint t_pos;
	IWorld *t_world = 0;

	/*
	Charerstellung = 6973 100 3328
	CW                 = 3889.79 59 3926.37
	Arena (Glaub Welt 204) = 540 138.51 485
	Flaris(Aus der Arena) = 6935.36 100.06 3247.69
	Flaris (Blink)     = 7161 100 3264
	Flaris (TownBlink) = 6968.38 100 3328.86
	Saint Morning   = 8321 100 3720
	SM Town         = 8470.57 100 3635.78
	SM Arena( Aus der Arena) = 8441.85 100 3622.26
	Arena (Tod) = 538.78 138.23 474.75
	Darkon = 3896 59 4378
	DarkonTown = 3808.40 59 4455.15
	Darkon(Aus der Arena) = 3808.40 59 4455.15
	*/

	if (xstricmp("flaris", m_buffer) == 0 ||
		xstricmp("fl", m_buffer) == 0)
	{
		t_pos.X = 6960;
		t_pos.Y = 100;
		t_pos.Z = 3221;

		t_world = m_pserver->getWorld(1);
	}
	else if (xstricmp("creation", m_buffer) == 0)
	{
		t_pos.X = 6973;
		t_pos.Y = 100;
		t_pos.Z = 3328;

		t_world = m_pserver->getWorld(1);
	}
	else if (xstricmp("flbw", m_buffer) == 0)
	{
		t_pos.X = 6968.38f;
		t_pos.Y = 100;
		t_pos.Z = 3328.86f;

		t_world = m_pserver->getWorld(1);
	}
	else if (xstricmp("madren", m_buffer) == 0)
	{
		t_pos.X = 7338;
		t_pos.Y = 116;
		t_pos.Z = 3656;

		t_world = m_pserver->getWorld(1);
	}
	else if (xstricmp("mas", m_buffer) == 0)
	{
		t_pos.X = 7618;
		t_pos.Y = 155;
		t_pos.Z = 4275;

		t_world = m_pserver->getWorld(1);
	}
	else if (
		xstricmp("sm", m_buffer) == 0 ||
		xstricmp("saint", m_buffer) == 0)
	{
		t_pos.X = 8321;
		t_pos.Y = 100;
		t_pos.Z = 3720;

		t_world = m_pserver->getWorld(1);
	}
	else if (
		xstricmp("darken", m_buffer) == 0 ||
		xstricmp("darkon", m_buffer) == 0)
	{
		t_pos.X = 3808.40f;
		t_pos.Y = 59;
		t_pos.Z = 4455.15f;

		t_world = m_pserver->getWorld(1);
	}
	else if (
		xstricmp("mine", m_buffer) == 0 ||
		xstricmp("dekane", m_buffer) == 0)
	{
		t_pos.X = 5072;
		t_pos.Y = 55;
		t_pos.Z = 3964;

		t_world = m_pserver->getWorld(1);
	}
	else if (xstricmp("cw", m_buffer) == 0)
	{
		t_pos.X = 3890;
		t_pos.Y = 59;
		t_pos.Z = 3925;

		t_world = m_pserver->getWorld(1);
	}
	else if (
		xstricmp("desert", m_buffer) == 0 ||
		xstricmp("gm", m_buffer) == 0)
	{
		t_pos.X = 8217;
		t_pos.Y = 100;
		t_pos.Z = 5656;

		t_world = m_pserver->getWorld(1);
	}
	else if (xstricmp("chaner", m_buffer) == 0)
	{
		t_pos.X = 7295;
		t_pos.Y = 124;
		t_pos.Z = 3693;

		t_world = m_pserver->getWorld(1);
	}
	else if (xstricmp("babari", m_buffer) == 0)
	{
		t_pos.X = 6965;
		t_pos.Y = 100;
		t_pos.Z = 3170;

		t_world = m_pserver->getWorld(1);
	}
	else if (xstricmp("glaphan", m_buffer) == 0)
	{
		t_pos.X = 3345;
		t_pos.Y = 94;
		t_pos.Z = 2550;

		t_world = m_pserver->getWorld(1);
	}
	else if (xstricmp("azria", m_buffer) == 0)
	{
		t_pos.X = 1271;
		t_pos.Y = 113;
		t_pos.Z = 1324;

		t_world = m_pserver->getWorld(2);
	}
	else if (xstricmp("volcano", m_buffer) == 0)
	{
		t_pos.X = 1413;
		t_pos.Y = 86;
		t_pos.Z = 528;

		t_world = m_pserver->getWorld(203);
	}
	else
	{
		_player->greenText("Unknown position");
		return;
	}

	_player->getObject()->teleport(t_pos, t_world);
}