mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2024-11-05 15:00:06 +00:00
dongresource
a55a34e09a
CNProtocol, CNShared, CNStructs and Defines are now in core/. CNLoginServer, CNShardServer and Monitor are now in servers/. core/Core.hpp wraps all the core headers except for CNShared.hpp. Defines.cpp has been renamed to Packets.cpp, and so has its corresponding namespace, but not the header file. This is in preparation for upcoming changes.
55 lines
1.3 KiB
C++
55 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "servers/CNShardServer.hpp"
|
|
#include "Player.hpp"
|
|
|
|
#include "JSON.hpp"
|
|
|
|
struct Reward {
|
|
int32_t id;
|
|
int32_t itemTypes[4];
|
|
int32_t itemIds[4];
|
|
int32_t money;
|
|
int32_t fusionmatter;
|
|
|
|
Reward(int32_t id, nlohmann::json types, nlohmann::json ids, int32_t m, int32_t fm) :
|
|
id(id), money(m), fusionmatter(fm) {
|
|
for (int i = 0; i < 4; i++) {
|
|
itemTypes[i] = types[i];
|
|
itemIds[i] = ids[i];
|
|
}
|
|
};
|
|
};
|
|
|
|
struct TaskData {
|
|
/*
|
|
* TODO: We'll probably want to keep only the data the server actually needs,
|
|
* but for now RE/development is much easier if we have everything at
|
|
* our fingertips.
|
|
*/
|
|
nlohmann::json task;
|
|
|
|
TaskData(nlohmann::json t) : task(t) {}
|
|
|
|
// convenience
|
|
auto operator[](std::string s) { return task[s]; }
|
|
};
|
|
|
|
namespace Missions {
|
|
extern std::map<int32_t, Reward*> Rewards;
|
|
extern std::map<int32_t, TaskData*> Tasks;
|
|
extern nlohmann::json AvatarGrowth[37];
|
|
void init();
|
|
|
|
bool startTask(Player* plr, int TaskID);
|
|
|
|
// checks if player doesn't have n/n quest items
|
|
void updateFusionMatter(CNSocket* sock, int fusion);
|
|
|
|
void mobKilled(CNSocket *sock, int mobid, int rolledQItem);
|
|
|
|
void quitTask(CNSocket* sock, int32_t taskNum, bool manual);
|
|
|
|
void failInstancedMissions(CNSocket* sock);
|
|
}
|