mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 14:41:28 +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;
|
uint8 has_rewards;
|
||||||
uint32 coin_reward;
|
uint32 coin_reward;
|
||||||
uint32 xp_reward;
|
uint32 xp_reward;
|
||||||
uint32 unknown3; // don't see it affecting display, faction maybe
|
uint32 faction_reward;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct TaskDescriptionTrailer_Struct {
|
struct TaskDescriptionTrailer_Struct {
|
||||||
|
|||||||
@ -17,3 +17,5 @@ ALTER TABLE `activities` DROP COLUMN `text1`;
|
|||||||
ALTER TABLE `activities` DROP COLUMN `text2`;
|
ALTER TABLE `activities` DROP COLUMN `text2`;
|
||||||
ALTER TABLE `activities` DROP COLUMN `text3`;
|
ALTER TABLE `activities` DROP COLUMN `text3`;
|
||||||
ALTER TABLE `activities` DROP COLUMN `zoneid`;
|
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");
|
Log(Logs::Detail, Logs::Tasks, "TaskManager::LoadTasks LoadTaskSets failed");
|
||||||
|
|
||||||
query = StringFormat("SELECT `id`, `type`, `duration`, `duration_code`, `title`, `description`, "
|
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",
|
"`minlevel`, `maxlevel`, `repeatable` FROM `tasks` WHERE `id` < %i",
|
||||||
MAXTASKS);
|
MAXTASKS);
|
||||||
} else
|
} else
|
||||||
query = StringFormat("SELECT `id`, `type`, `duration`, `duration_code`, `title`, `description`, "
|
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",
|
"`minlevel`, `maxlevel`, `repeatable` FROM `tasks` WHERE `id` = %i",
|
||||||
singleTask);
|
singleTask);
|
||||||
|
|
||||||
@ -155,9 +155,10 @@ bool TaskManager::LoadTasks(int singleTask)
|
|||||||
Tasks[taskID]->CashReward = atoi(row[8]);
|
Tasks[taskID]->CashReward = atoi(row[8]);
|
||||||
Tasks[taskID]->XPReward = atoi(row[9]);
|
Tasks[taskID]->XPReward = atoi(row[9]);
|
||||||
Tasks[taskID]->RewardMethod = (TaskMethodType)atoi(row[10]);
|
Tasks[taskID]->RewardMethod = (TaskMethodType)atoi(row[10]);
|
||||||
Tasks[taskID]->MinLevel = atoi(row[11]);
|
Tasks[taskID]->faction_reward = atoi(row[11]);
|
||||||
Tasks[taskID]->MaxLevel = atoi(row[12]);
|
Tasks[taskID]->MinLevel = atoi(row[12]);
|
||||||
Tasks[taskID]->Repeatable = atoi(row[13]);
|
Tasks[taskID]->MaxLevel = atoi(row[13]);
|
||||||
|
Tasks[taskID]->Repeatable = atoi(row[14]);
|
||||||
Tasks[taskID]->ActivityCount = 0;
|
Tasks[taskID]->ActivityCount = 0;
|
||||||
Tasks[taskID]->SequenceMode = ActivitiesSequential;
|
Tasks[taskID]->SequenceMode = ActivitiesSequential;
|
||||||
Tasks[taskID]->LastStep = 0;
|
Tasks[taskID]->LastStep = 0;
|
||||||
@ -2015,6 +2016,11 @@ void ClientTaskState::RewardTask(Client *c, TaskInformation *Task) {
|
|||||||
break;
|
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) {
|
if(Task->CashReward) {
|
||||||
int Plat, Gold, Silver, Copper;
|
int Plat, Gold, Silver, Copper;
|
||||||
|
|
||||||
@ -2975,7 +2981,7 @@ void TaskManager::SendActiveTaskDescription(Client *c, int TaskID, ClientTaskInf
|
|||||||
|
|
||||||
tdd2->coin_reward = Tasks[TaskID]->CashReward;
|
tdd2->coin_reward = Tasks[TaskID]->CashReward;
|
||||||
tdd2->xp_reward = Tasks[TaskID]->XPReward ? 1 : 0; // just booled
|
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);
|
Ptr = (char *) tdd2 + sizeof(TaskDescriptionData2_Struct);
|
||||||
|
|
||||||
|
|||||||
@ -145,6 +145,7 @@ struct TaskInformation {
|
|||||||
int RewardID;
|
int RewardID;
|
||||||
int CashReward; // Expressed in copper
|
int CashReward; // Expressed in copper
|
||||||
int XPReward;
|
int XPReward;
|
||||||
|
int faction_reward; // just a npc_faction_id
|
||||||
TaskMethodType RewardMethod;
|
TaskMethodType RewardMethod;
|
||||||
int ActivityCount;
|
int ActivityCount;
|
||||||
SequenceType SequenceMode;
|
SequenceType SequenceMode;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user