mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
Add task faction reward
This just reuses NPC faction ID stuff since it does everything we want and isn't actually tied to NPCs :P
This commit is contained in:
parent
3969ac346d
commit
2d456ba8c9
@ -3851,7 +3851,7 @@ struct TaskDescriptionData2_Struct {
|
||||
uint8 has_rewards;
|
||||
uint32 coin_reward;
|
||||
uint32 xp_reward;
|
||||
uint32 unknown3; // don't see it affecting display, faction maybe
|
||||
uint32 faction_reward;
|
||||
};
|
||||
|
||||
struct TaskDescriptionTrailer_Struct {
|
||||
|
||||
@ -17,3 +17,5 @@ ALTER TABLE `activities` DROP COLUMN `text1`;
|
||||
ALTER TABLE `activities` DROP COLUMN `text2`;
|
||||
ALTER TABLE `activities` DROP COLUMN `text3`;
|
||||
ALTER TABLE `activities` DROP COLUMN `zoneid`;
|
||||
ALTER TABLE `tasks` DROP COLUMN `startzone`;
|
||||
ALTER TABLE `tasks` ADD `faction_reward` INT(10) NOT NULL DEFAULT '0';
|
||||
|
||||
@ -117,12 +117,12 @@ bool TaskManager::LoadTasks(int singleTask)
|
||||
Log(Logs::Detail, Logs::Tasks, "TaskManager::LoadTasks LoadTaskSets failed");
|
||||
|
||||
query = StringFormat("SELECT `id`, `type`, `duration`, `duration_code`, `title`, `description`, "
|
||||
"`reward`, `rewardid`, `cashreward`, `xpreward`, `rewardmethod`, "
|
||||
"`reward`, `rewardid`, `cashreward`, `xpreward`, `rewardmethod`, `faction_reward`,"
|
||||
"`minlevel`, `maxlevel`, `repeatable` FROM `tasks` WHERE `id` < %i",
|
||||
MAXTASKS);
|
||||
} else
|
||||
query = StringFormat("SELECT `id`, `type`, `duration`, `duration_code`, `title`, `description`, "
|
||||
"`reward`, `rewardid`, `cashreward`, `xpreward`, `rewardmethod`, "
|
||||
"`reward`, `rewardid`, `cashreward`, `xpreward`, `rewardmethod`, `faction_reward`,"
|
||||
"`minlevel`, `maxlevel`, `repeatable` FROM `tasks` WHERE `id` = %i",
|
||||
singleTask);
|
||||
|
||||
@ -155,9 +155,10 @@ bool TaskManager::LoadTasks(int singleTask)
|
||||
Tasks[taskID]->CashReward = atoi(row[8]);
|
||||
Tasks[taskID]->XPReward = atoi(row[9]);
|
||||
Tasks[taskID]->RewardMethod = (TaskMethodType)atoi(row[10]);
|
||||
Tasks[taskID]->MinLevel = atoi(row[11]);
|
||||
Tasks[taskID]->MaxLevel = atoi(row[12]);
|
||||
Tasks[taskID]->Repeatable = atoi(row[13]);
|
||||
Tasks[taskID]->faction_reward = atoi(row[11]);
|
||||
Tasks[taskID]->MinLevel = atoi(row[12]);
|
||||
Tasks[taskID]->MaxLevel = atoi(row[13]);
|
||||
Tasks[taskID]->Repeatable = atoi(row[14]);
|
||||
Tasks[taskID]->ActivityCount = 0;
|
||||
Tasks[taskID]->SequenceMode = ActivitiesSequential;
|
||||
Tasks[taskID]->LastStep = 0;
|
||||
@ -2015,6 +2016,11 @@ void ClientTaskState::RewardTask(Client *c, TaskInformation *Task) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// just use normal NPC faction ID stuff
|
||||
if (Task->faction_reward)
|
||||
c->SetFactionLevel(c->CharacterID(), Task->faction_reward, c->GetBaseClass(), c->GetBaseRace(), c->GetDeity());
|
||||
|
||||
if(Task->CashReward) {
|
||||
int Plat, Gold, Silver, Copper;
|
||||
|
||||
@ -2975,7 +2981,7 @@ void TaskManager::SendActiveTaskDescription(Client *c, int TaskID, ClientTaskInf
|
||||
|
||||
tdd2->coin_reward = Tasks[TaskID]->CashReward;
|
||||
tdd2->xp_reward = Tasks[TaskID]->XPReward ? 1 : 0; // just booled
|
||||
tdd2->unknown3 = 0; // STRONGLY suspect this is faction reward, also just booled to hide details?
|
||||
tdd2->faction_reward = Tasks[TaskID]->faction_reward ? 1 : 0; // faction booled
|
||||
|
||||
Ptr = (char *) tdd2 + sizeof(TaskDescriptionData2_Struct);
|
||||
|
||||
|
||||
@ -145,6 +145,7 @@ struct TaskInformation {
|
||||
int RewardID;
|
||||
int CashReward; // Expressed in copper
|
||||
int XPReward;
|
||||
int faction_reward; // just a npc_faction_id
|
||||
TaskMethodType RewardMethod;
|
||||
int ActivityCount;
|
||||
SequenceType SequenceMode;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user