public string GetCommand(int entry, QuestMethod method, int level, int minLevel,
QuestSort sort, QuestType type, int players, int[] factId, int[] factRep,
int nextQuest, int xpId, int rewReqMoney, int rewMoneyMaxLvl, int rewSpell,
int rewSpellCast, int rewHonor, float rewHonorBonus, int srcItemId,
QuestFlag flags, int titleId, int reqPlayerKills, int bonusTalents,
int bonusArenaPoints, int bonusUnk, int[] rewItemId, int[] rewItemCnt,
int[] rewChoiceItemId, int[] rewChoiceItemCnt, int[] rewFactionId,
int[] rewFactionIdx, int[] rewRepOverride, int pointMap, float pointX,
float pointY, int pointOpt, string title, string objectives, string details,
string endText, string returnText, KeyValuePair<int, bool>[] reqId, int[] reqCnt,
int[] srcId, int[] srcCnt, int[] reqItemId, int[] reqItemCnt,
string[] objectiveText)
{
var builder = new CommandBuilder("quest_template");
builder.AddColumnValue("entry", entry);
builder.AddColumnValue("Method", (int)method);
builder.AddColumnValue("ZoneOrSort", (int)sort);
builder.AddColumnValue("SkillOrClass", 0);
builder.AddColumnValue("MinLevel", minLevel);
builder.AddColumnValue("QuestLevel", level);
builder.AddColumnValue("Type", (int)type);
builder.AddColumnValue("RequiredRaces", 0);
builder.AddColumnValue("RequiredSkillValue", 0);
builder.AddColumnValue("RepObjectiveFaction", factId[0]);
builder.AddColumnValue("RepObjectiveValue", factRep[0]);
if (SQLOutput.Format == SqlFormat.Trinity)
{
builder.AddColumnValue("RepObjectiveFaction2", factId[1]);
builder.AddColumnValue("RepObjectiveValue2", factRep[1]);
}
builder.AddColumnValue("RequiredMinRepFaction", 0);
builder.AddColumnValue("RequiredMinRepValue", 0);
builder.AddColumnValue("RequiredMaxRepFaction", 0);
builder.AddColumnValue("RequiredMaxRepValue", 0);
builder.AddColumnValue("SuggestedPlayers", players);
builder.AddColumnValue("LimitTime", 0);
builder.AddColumnValue("QuestFlags", (int)flags);
builder.AddColumnValue("SpecialFlags", 0);
builder.AddColumnValue("CharTitleId", titleId);
builder.AddColumnValue("PlayersSlain", reqPlayerKills);
builder.AddColumnValue("BonusTalents", bonusTalents);
if (SQLOutput.Format == SqlFormat.Trinity)
builder.AddColumnValue("BonusArenaPoints", bonusArenaPoints);
builder.AddColumnValue("PrevQuestId", 0);
builder.AddColumnValue("NextQuestId", 0);
builder.AddColumnValue("ExclusiveGroup", 0);
builder.AddColumnValue("NextQuestInChain", nextQuest);
builder.AddColumnValue("RewXPId", xpId);
builder.AddColumnValue("SrcItemId", srcItemId);
builder.AddColumnValue("SrcItemCount", 0);
builder.AddColumnValue("SrcSpell", 0);
builder.AddColumnValue("Title", title);
builder.AddColumnValue("Details", details);
builder.AddColumnValue("Objectives", objectives);
builder.AddColumnValue("OfferRewardText", string.Empty);
builder.AddColumnValue("RequestItemsText", string.Empty);
builder.AddColumnValue("EndText", endText);
builder.AddColumnValue("CompletedText", returnText);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("ObjectiveText" + (i + 1), objectiveText[i]);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("ReqItemId" + (i + 1), reqItemId[i]);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("ReqItemCount" + (i + 1), reqItemCnt[i]);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("ReqSourceId" + (i + 1), srcId[i]);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("ReqSourceCount" + (i + 1), srcCnt[i]);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("ReqCreatureOrGOId" + (i + 1), reqId[i].Value ?
-reqId[i].Key : reqId[i].Key);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("ReqCreatureOrGOCount" + (i + 1), reqCnt[i]);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("ReqSpellCast" + (i + 1), 0);
for (var i = 0; i < 6; i++)
builder.AddColumnValue("RewChoiceItemId" + (i + 1), rewChoiceItemId[i]);
for (var i = 0; i < 6; i++)
builder.AddColumnValue("RewChoiceItemCount" + (i + 1), rewChoiceItemCnt[i]);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("RewItemId" + (i + 1), rewItemId[i]);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("RewItemCount" + (i + 1), rewItemCnt[i]);
for (var i = 0; i < 5; i++)
builder.AddColumnValue("RewRepFaction" + (i + 1), rewFactionId[i]);
for (var i = 0; i < 5; i++)
builder.AddColumnValue("RewRepValueId" + (i + 1), rewRepOverride[i]);
for (var i = 0; i < 5; i++)
builder.AddColumnValue("RewRepValue" + (i + 1), 0);
builder.AddColumnValue("RewHonorAddition", rewHonor);
builder.AddColumnValue("RewHonorMultiplier", rewHonorBonus);
if (SQLOutput.Format == SqlFormat.Trinity)
builder.AddColumnValue("unk0", bonusUnk);
builder.AddColumnValue("RewOrReqMoney", rewReqMoney);
builder.AddColumnValue("RewMoneyMaxLevel", rewMoneyMaxLvl);
builder.AddColumnValue("RewSpell", rewSpell);
builder.AddColumnValue("RewSpellCast", rewSpellCast);
builder.AddColumnValue("RewMailTemplateId", 0);
builder.AddColumnValue("RewMailDelaySecs", 0);
builder.AddColumnValue("PointMapId", pointMap);
builder.AddColumnValue("PointX", pointX);
builder.AddColumnValue("PointY", pointY);
builder.AddColumnValue("PointOpt", pointOpt);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("DetailsEmote" + (i + 1), 0);
builder.AddColumnValue("IncompleteEmote", 0);
builder.AddColumnValue("CompleteEmote", 0);
for (var i = 0; i < 4; i++)
builder.AddColumnValue("OfferRewardEmote" + (i + 1), 0);
builder.AddColumnValue("StartScript", 0);
builder.AddColumnValue("CompleteScript", 0);
return builder.BuildInsert(true);
}