From: <wel...@us...> - 2009-07-27 05:56:01
|
Revision: 4138 http://planeshift.svn.sourceforge.net/planeshift/?rev=4138&view=rev Author: weltall2 Date: 2009-07-27 05:55:53 +0000 (Mon, 27 Jul 2009) Log Message: ----------- don't show entries if the quest is disabled (and we aren't quest testers) and if we aren't gm or quest tester and we are in lockout Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp trunk/src/server/chatmanager.cpp trunk/src/server/gem.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-07-26 23:58:38 UTC (rev 4137) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-07-27 05:55:53 UTC (rev 4138) @@ -2465,7 +2465,7 @@ //printf("Added %lu triggers to menu.\n", (unsigned long) add->triggers.GetSize()); } -void NpcDialogMenu::ShowMenu(Client *client,csTicks delay) +void NpcDialogMenu::ShowMenu(Client *client,csTicks delay, PID npcPID) { if( client == NULL ) return; @@ -2474,10 +2474,16 @@ csString currentQuest; int count = 0; + + bool IsTesting = client->GetCharacterData()->GetActor()->questtester; + bool IsGm = client->IsGM(); for (size_t i=0; i < counter; i++ ) { csString prereq; + + if(!triggers[i].quest->Active() && !IsTesting) + continue; if (triggers[i].prerequisite) prereq = triggers[i].prerequisite->GetScript(); @@ -2490,8 +2496,8 @@ //{ // printf("Item %lu has no prereqs.\n", (unsigned long) i); //} - - if (triggers[i].prerequisite) + + if (triggers[i].prerequisite && !IsTesting) { if (!triggers[i].prerequisite->Check(client->GetCharacterData())) { @@ -2499,6 +2505,11 @@ continue; } } + + //check avilability (as per lockout). Note as gm we show quest even if in lockout as > gm get + //an error message in system even if they can't get it because testermode is off + if(!IsGm && !IsTesting && !client->GetCharacterData()->CheckQuestAvailable(triggers[i].quest, npcPID)) + continue; // Check to see about inserting a quest heading if (!(currentQuest == (triggers[i].quest ? triggers[i].quest->GetName() : "(Unknown)"))) Modified: trunk/src/server/chatmanager.cpp =================================================================== --- trunk/src/server/chatmanager.cpp 2009-07-26 23:58:38 UTC (rev 4137) +++ trunk/src/server/chatmanager.cpp 2009-07-27 05:55:53 UTC (rev 4138) @@ -230,7 +230,7 @@ { csTicks delay = resp->ExecuteScript(client->GetActor(), targetnpc); if (delay != SIZET_NOT_FOUND && resp->menu ) - resp->menu->ShowMenu(client, delay); + resp->menu->ShowMenu(client, delay, targetnpc->GetPID()); } break; } Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2009-07-26 23:58:38 UTC (rev 4137) +++ trunk/src/server/gem.cpp 2009-07-27 05:55:53 UTC (rev 4138) @@ -4024,7 +4024,7 @@ menu.Add(npcmenu); if (menu.triggers.GetSize()) - menu.ShowMenu(client,0); + menu.ShowMenu(client,0, GetPID()); else psserver->SendSystemError(client->GetClientNum(), "This NPC has nothing to say to you."); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |