From: <wel...@us...> - 2009-05-01 20:47:05
|
Revision: 3603 http://planeshift.svn.sourceforge.net/planeshift/?rev=3603&view=rev Author: weltall2 Date: 2009-05-01 20:47:03 +0000 (Fri, 01 May 2009) Log Message: ----------- Escaped some text being put into xml to allow the use of special characters in text like "something" Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-05-01 19:23:53 UTC (rev 3602) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-05-01 20:47:03 UTC (rev 3603) @@ -661,7 +661,7 @@ csString saySegment; resp.SubString(saySegment,start,end-start); // pull out the part before the [ ] printf("Say: %s\n",(const char *)saySegment); - opStr.AppendFmt("<say text=\"%s\"/>", saySegment.GetDataSafe() ); + opStr.AppendFmt("<say text=\"%s\"/>", EscpXML(saySegment.GetDataSafe()).GetDataSafe() ); } if (end == resp.Length()) // stop if at end of string already break; @@ -689,7 +689,7 @@ // If action does not start with npc's name, it is a 3rd person statement, not /me if (strncasecmp(actionSegment,npc_name,strlen(npc_name))) { - opStr.AppendFmt("<narrate text=\"%s\"/>", actionSegment.GetDataSafe() ); + opStr.AppendFmt("<narrate text=\"%s\"/>", EscpXML(actionSegment.GetDataSafe()).GetDataSafe() ); } else // now look for /me or /my because the npc name matches { @@ -697,12 +697,12 @@ if (resp[strlen(npc_name)] == '\'') // apostrophe after name means /my { actionSegment.DeleteAt(0,spc+1); - opStr.AppendFmt("<actionmy text=\"%s\"/>", actionSegment.GetDataSafe() ); + opStr.AppendFmt("<actionmy text=\"%s\"/>", EscpXML(actionSegment.GetDataSafe()).GetDataSafe() ); } else // this is a /me command { actionSegment.DeleteAt(0,spc+1); - opStr.AppendFmt("<action text=\"%s\"/>", actionSegment.GetDataSafe() ); + opStr.AppendFmt("<action text=\"%s\"/>", EscpXML(actionSegment.GetDataSafe()).GetDataSafe() ); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ko...@us...> - 2009-05-15 21:40:17
|
Revision: 3696 http://planeshift.svn.sourceforge.net/planeshift/?rev=3696&view=rev Author: kougaro Date: 2009-05-15 21:40:16 +0000 (Fri, 15 May 2009) Log Message: ----------- Comment out two printf, to make the server output more readable Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-05-15 21:09:05 UTC (rev 3695) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-05-15 21:40:16 UTC (rev 3696) @@ -620,7 +620,7 @@ opStr = "<response>"; csString resp(response_text); - printf("\nGot: %s\n",response_text); + // printf("\nGot: %s\n",response_text); while (end != resp.Length() ) { @@ -639,7 +639,7 @@ { csString saySegment; resp.SubString(saySegment,start,end-start); // pull out the part before the [ ] - printf("Say: %s\n",(const char *)saySegment); + // printf("Say: %s\n",(const char *)saySegment); opStr.AppendFmt("<say text=\"%s\"/>", EscpXML(saySegment.GetDataSafe()).GetDataSafe() ); } if (end == resp.Length()) // stop if at end of string already This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-16 20:12:19
|
Revision: 3702 http://planeshift.svn.sourceforge.net/planeshift/?rev=3702&view=rev Author: weltall2 Date: 2009-05-16 20:12:16 +0000 (Sat, 16 May 2009) Log Message: ----------- added support for sentence splitting with ! ? in quests Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-05-16 05:46:38 UTC (rev 3701) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-05-16 20:12:16 UTC (rev 3702) @@ -629,10 +629,10 @@ if (start == resp.Length()) break; - end = (int)min(resp.Find("[", start),resp.Find(". ", start)); // action delimiter or sentence delimiter whichever is first + end = (int)min(min(min(resp.Find("[", start),resp.Find(". ", start)),resp.Find("! ", start)),resp.Find("? ", start)); // action delimiter or sentence delimiter whichever is first if (end == SIZET_NOT_FOUND) end = resp.Length(); - if (end < resp.Length() && resp.GetAt(end)=='.') // include the period in this substring + if (end < resp.Length() && (resp.GetAt(end)=='.' || resp.GetAt(end) == '!' || resp.GetAt(end) == '?')) // include the period in this substring end++; if (end-start > 0) @@ -645,7 +645,7 @@ if (end == resp.Length()) // stop if at end of string already break; - if (end > 0 && resp.GetAt(end-1)=='.' && resp.GetAt(end) != '[') // skip action brackets if this was a sentence break + if (end > 0 && (resp.GetAt(end-1)=='.' || resp.GetAt(end-1)=='!' || resp.GetAt(end-1)=='?') && resp.GetAt(end) != '[') // skip action brackets if this was a sentence break { start = end; continue; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-16 21:25:42
|
Revision: 3704 http://planeshift.svn.sourceforge.net/planeshift/?rev=3704&view=rev Author: weltall2 Date: 2009-05-16 21:25:34 +0000 (Sat, 16 May 2009) Log Message: ----------- improved code Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-05-16 20:38:16 UTC (rev 3703) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-05-16 21:25:34 UTC (rev 3704) @@ -629,7 +629,7 @@ if (start == resp.Length()) break; - end = (int)min(min(min(resp.Find("[", start),resp.Find(". ", start)),resp.Find("! ", start)),resp.Find("? ", start)); // action delimiter or sentence delimiter whichever is first + end = resp.FindFirst("[.!?",start); // action delimiter or sentence delimiter whichever is first if (end == SIZET_NOT_FOUND) end = resp.Length(); if (end < resp.Length() && (resp.GetAt(end)=='.' || resp.GetAt(end) == '!' || resp.GetAt(end) == '?')) // include the period in this substring This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-20 21:41:33
|
Revision: 3749 http://planeshift.svn.sourceforge.net/planeshift/?rev=3749&view=rev Author: weltall2 Date: 2009-05-20 21:41:28 +0000 (Wed, 20 May 2009) Log Message: ----------- fixed an issue with ... in talk sequences Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-05-20 08:52:15 UTC (rev 3748) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-05-20 21:41:28 UTC (rev 3749) @@ -630,6 +630,10 @@ break; end = resp.FindFirst("[.!?",start); // action delimiter or sentence delimiter whichever is first + while(end != SIZET_NOT_FOUND && resp.GetAt(end) != '[' && resp.GetAt(end+1) != ' ') + { + end = resp.FindFirst("[.!?",end+1); //checks if we have a space after (to avoid problems with !!! ... ???) + } if (end == SIZET_NOT_FOUND) end = resp.Length(); if (end < resp.Length() && (resp.GetAt(end)=='.' || resp.GetAt(end) == '!' || resp.GetAt(end) == '?')) // include the period in this substring This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-21 19:07:15
|
Revision: 3754 http://planeshift.svn.sourceforge.net/planeshift/?rev=3754&view=rev Author: weltall2 Date: 2009-05-21 19:07:08 +0000 (Thu, 21 May 2009) Log Message: ----------- fixed count < n assertion Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-05-21 06:23:24 UTC (rev 3753) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-05-21 19:07:08 UTC (rev 3754) @@ -630,7 +630,7 @@ break; end = resp.FindFirst("[.!?",start); // action delimiter or sentence delimiter whichever is first - while(end != SIZET_NOT_FOUND && resp.GetAt(end) != '[' && resp.GetAt(end+1) != ' ') + while(end != SIZET_NOT_FOUND && end+1 < resp.Length() && resp.GetAt(end) != '[' && resp.GetAt(end+1) != ' ') { end = resp.FindFirst("[.!?",end+1); //checks if we have a space after (to avoid problems with !!! ... ???) } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-07-04 21:16:15
|
Revision: 3914 http://planeshift.svn.sourceforge.net/planeshift/?rev=3914&view=rev Author: weltall2 Date: 2009-07-04 21:16:14 +0000 (Sat, 04 Jul 2009) Log Message: ----------- removed a warning Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-07-04 21:15:07 UTC (rev 3913) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-07-04 21:16:14 UTC (rev 3914) @@ -1423,7 +1423,7 @@ csString resp = script[i]->GetResponseScript(); Error3("Error running script in %s operation for client %s.", resp.GetData(), player->GetClient() ? player->GetClient()->GetName() : "NPC"); - return SIZET_NOT_FOUND; + return (csTicks)SIZET_NOT_FOUND; } } return timeDelay; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-07-14 09:10:31
|
Revision: 4010 http://planeshift.svn.sourceforge.net/planeshift/?rev=4010&view=rev Author: weltall2 Date: 2009-07-14 09:10:28 +0000 (Tue, 14 Jul 2009) Log Message: ----------- added $npc substitution in voicefilepaths with the name of the npc speaking Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-07-13 17:30:57 UTC (rev 4009) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-07-14 09:10:28 UTC (rev 4010) @@ -1432,7 +1432,13 @@ } else if(voiceNumber >= 0) //if it's >= 0. we have to run a voice, else -1 and -2 means we have nothing to do { - psserver->GetChatManager()->SendMultipleAudioFileHashes(player->GetClient(), this->GetVoiceFile(voiceNumber)); + //substituites $npc with the npcname + csString voiceFile = this->GetVoiceFile(voiceNumber); + voiceFile.ReplaceAll("$npc", target->GetName()); + + //executes the voice file + psserver->GetChatManager()->SendMultipleAudioFileHashes(player->GetClient(), voiceFile); + voiceNumber = -2; //we use -2 to alert that we run an audio file already during the script. } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-07-24 10:53:56
|
Revision: 4115 http://planeshift.svn.sourceforge.net/planeshift/?rev=4115&view=rev Author: weltall2 Date: 2009-07-24 10:53:47 +0000 (Fri, 24 Jul 2009) Log Message: ----------- fixed a wrong name in the giveitem op Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-07-24 09:00:55 UTC (rev 4114) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-07-24 10:53:47 UTC (rev 4115) @@ -2072,7 +2072,7 @@ csString GiveItemResponseOp::GetResponseScript() { psString resp = GetName(); - resp.AppendFmt(" item_id=\"%s\"",itemstat->GetName()); + resp.AppendFmt(" item=\"%s\"",itemstat->GetName()); if (count != 1) { resp.AppendFmt(" count=\"%d\"",count); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Ven...@us...> - 2009-07-27 21:34:22
|
Revision: 4141 http://planeshift.svn.sourceforge.net/planeshift/?rev=4141&view=rev Author: Vengeance2001 Date: 2009-07-27 21:34:14 +0000 (Mon, 27 Jul 2009) Log Message: ----------- - Now text in brackets [ ] in quest scripts only has to match the first name of the NPC and not the whole name to be changed into a /me or /my command. This fixes a bug reported by Settings, whose number I've forgotten. Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-07-27 09:53:14 UTC (rev 4140) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-07-27 21:34:14 UTC (rev 4141) @@ -611,6 +611,14 @@ { NpcResponse *newresp = new NpcResponse; + // Need to chop the KA name up so that /narrate only has to match first name + csString npc_first_name(npc_name); + int space = npc_first_name.FindFirst(' '); + if (space != SIZET_NOT_FOUND) + { + npc_first_name = npc_first_name.Slice(0, space); + } + if (!new_id) new_id = dynamic_id++; @@ -672,14 +680,14 @@ csString actionSegment; resp.SubString(actionSegment,start+1,end-start-1); // If action does not start with npc's name, it is a 3rd person statement, not /me - if (strncasecmp(actionSegment,npc_name,strlen(npc_name))) + if (strncasecmp(actionSegment,npc_first_name,strlen(npc_first_name))) { opStr.AppendFmt("<narrate text=\"%s\"/>", EscpXML(actionSegment.GetDataSafe()).GetDataSafe() ); } else // now look for /me or /my because the npc name matches { size_t spc = actionSegment.FindFirst(" "); - if (resp[strlen(npc_name)] == '\'') // apostrophe after name means /my + if (resp[strlen(npc_name)] == '\'' || resp[npc_first_name.Length()] == '\'') // apostrophe after name means /my { actionSegment.DeleteAt(0,spc+1); opStr.AppendFmt("<actionmy text=\"%s\"/>", EscpXML(actionSegment.GetDataSafe()).GetDataSafe() ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-07-29 05:13:51
|
Revision: 4148 http://planeshift.svn.sourceforge.net/planeshift/?rev=4148&view=rev Author: weltall2 Date: 2009-07-29 05:13:43 +0000 (Wed, 29 Jul 2009) Log Message: ----------- Fixed a typo Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-07-29 05:13:06 UTC (rev 4147) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-07-29 05:13:43 UTC (rev 4148) @@ -2514,7 +2514,7 @@ } } - //check avilability (as per lockout). Note as gm we show quest even if in lockout as > gm get + //check availability (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; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-12-19 09:38:16
|
Revision: 4995 http://planeshift.svn.sourceforge.net/planeshift/?rev=4995&view=rev Author: weltall2 Date: 2009-12-19 09:38:02 +0000 (Sat, 19 Dec 2009) Log Message: ----------- PS#3717 - --console shows riddle solutions Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2009-12-19 08:40:21 UTC (rev 4994) +++ trunk/src/server/bulkobjects/dictionary.cpp 2009-12-19 09:38:02 UTC (rev 4995) @@ -2540,10 +2540,12 @@ csString menuText = triggers[i].menuText; npc->GetNPCDialogPtr()->SubstituteKeywords(client,menuText); + //only add the trigger if it isn't a question + csString trigger = (menuText.Find("?=") == SIZET_NOT_FOUND) ? triggers[i].trigger : "(question)"; menu.AddResponse((uint32_t) i, menuText, - triggers[i].trigger); + trigger); count++; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-01-18 08:07:48
|
Revision: 5337 http://planeshift.svn.sourceforge.net/planeshift/?rev=5337&view=rev Author: weltall2 Date: 2010-01-18 08:07:42 +0000 (Mon, 18 Jan 2010) Log Message: ----------- fixed crash when using menu in ka altough ka menuing doesn't really work so well (shows only one entry per ka script) Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2010-01-17 22:15:05 UTC (rev 5336) +++ trunk/src/server/bulkobjects/dictionary.cpp 2010-01-18 08:07:42 UTC (rev 5337) @@ -2499,7 +2499,7 @@ { csString prereq; - if(!triggers[i].quest->Active() && !IsTesting) + if(triggers[i].quest && !triggers[i].quest->Active() && !IsTesting) continue; if (triggers[i].prerequisite) @@ -2525,7 +2525,7 @@ //check availability (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, npc->GetPID())) + if(triggers[i].quest && !IsGm && !IsTesting && !client->GetCharacterData()->CheckQuestAvailable(triggers[i].quest, npc->GetPID())) continue; // Check to see about inserting a quest heading This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-05-01 05:33:20
|
Revision: 5841 http://planeshift.svn.sourceforge.net/planeshift/?rev=5841&view=rev Author: weltall2 Date: 2010-05-01 05:33:14 +0000 (Sat, 01 May 2010) Log Message: ----------- avoid strcmp when we can do the same with csstring Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2010-04-30 19:05:36 UTC (rev 5840) +++ trunk/src/server/bulkobjects/dictionary.cpp 2010-05-01 05:33:14 UTC (rev 5841) @@ -1144,9 +1144,9 @@ bool NpcTrigger::operator<=(const NpcTrigger& other) const { - if (strcmp(area,other.area)>0) + if (area > other.area) return false; - if (strcmp(trigger,other.trigger)>0) + if (trigger > other.trigger) return false; if (priorresponseID>other.priorresponseID) return false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-05-02 12:03:17
|
Revision: 5848 http://planeshift.svn.sourceforge.net/planeshift/?rev=5848&view=rev Author: weltall2 Date: 2010-05-02 12:03:11 +0000 (Sun, 02 May 2010) Log Message: ----------- removed superflous newlines Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2010-05-02 11:54:12 UTC (rev 5847) +++ trunk/src/server/bulkobjects/dictionary.cpp 2010-05-02 12:03:11 UTC (rev 5848) @@ -83,18 +83,18 @@ NPCDialogDict::~NPCDialogDict() { - csHash<NpcTerm*, csString>::GlobalIterator phraseIter(phrases.GetIterator()); - while(phraseIter.HasNext()) - delete phraseIter.Next(); - csHash<NpcTriggerGroupEntry*, csString>::GlobalIterator triggergroupIter(trigger_groups.GetIterator()); - while(triggergroupIter.HasNext()) - delete triggergroupIter.Next(); - NpcTriggerTree::Iterator triggerIter(triggers.GetIterator()); - while(triggerIter.HasNext()) - delete triggerIter.Next(); - csHash<NpcResponse*>::GlobalIterator responsesIter(responses.GetIterator()); - while(responsesIter.HasNext()) - delete responsesIter.Next(); + csHash<NpcTerm*, csString>::GlobalIterator phraseIter(phrases.GetIterator()); + while(phraseIter.HasNext()) + delete phraseIter.Next(); + csHash<NpcTriggerGroupEntry*, csString>::GlobalIterator triggergroupIter(trigger_groups.GetIterator()); + while(triggergroupIter.HasNext()) + delete triggergroupIter.Next(); + NpcTriggerTree::Iterator triggerIter(triggers.GetIterator()); + while(triggerIter.HasNext()) + delete triggerIter.Next(); + csHash<NpcResponse*>::GlobalIterator responsesIter(responses.GetIterator()); + while(responsesIter.HasNext()) + delete responsesIter.Next(); wnclose(); dict = NULL; } @@ -105,7 +105,7 @@ if (wninit() != 0) { Error1("*****************************\nWordNet failed to initialize.\n" - "******************************\n"); + "******************************"); } if (LoadDisallowedWords(db)) @@ -121,19 +121,19 @@ return true; } else - Error1("*********************************\nFailed to load Responses\n****************************\n"); + Error1("*********************************\nFailed to load Responses\n****************************"); } else - Error1("****************************\nFailed to load Triggers\n****************************\n"); + Error1("****************************\nFailed to load Triggers\n****************************"); } else - Error1("****************************\nFailed to load Trigger Groups\n************************\n"); + Error1("****************************\nFailed to load Trigger Groups\n************************"); } else - Error1("****************************\nFailed to load Synonyms\n****************************\n"); + Error1("****************************\nFailed to load Synonyms\n****************************"); } else - Error1("****************************\nFailed to load Disallowed words\n****************************\n"); + Error1("****************************\nFailed to load Disallowed words\n****************************"); return false; } @@ -280,13 +280,13 @@ trigger_groups_by_id.Put(newtge->id,newtge); AddWords(newtge->text); // Make sure these trigger words are in known word list. - Debug2(LOG_STARTUP,0,"Loaded trigger group entry <%s>\n",newtge->text.GetData() ); + Debug2(LOG_STARTUP,0,"Loaded trigger group entry <%s>",newtge->text.GetData() ); return id; } bool NPCDialogDict::LoadTriggerGroups(iDataConnection *db) { - Debug1(LOG_STARTUP,0,"Loading Trigger Groups...\n"); + Debug1(LOG_STARTUP,0,"Loading Trigger Groups..."); // First add all the root entries so we find the parents later. Result result(db->Select("select id," @@ -329,17 +329,17 @@ bool NPCDialogDict::FindKnowledgeArea(const csString& name) { - static csString fallback("not found"); + static csString fallback("not found"); - csString key(name); - key.Downcase(); // all KAs are supposed to be lowercase - csString temp = knowledgeAreas.Get(key,fallback); - return temp != fallback; + csString key(name); + key.Downcase(); // all KAs are supposed to be lowercase + csString temp = knowledgeAreas.Get(key,fallback); + return temp != fallback; } bool NPCDialogDict::LoadTriggers(iDataConnection *db) { - Debug1(LOG_STARTUP,0,"Loading Triggers...\n"); + Debug1(LOG_STARTUP,0,"Loading Triggers..."); Result result(db->Select("select * from npc_triggers") ); @@ -356,7 +356,7 @@ if (!newtrig->Load(result[i])) { - Error2("Could not load trigger %s!\n",result[i]["id"]); + Error2("Could not load trigger %s!",result[i]["id"]); delete newtrig; continue; } @@ -365,7 +365,7 @@ if(newtrig->trigger.Length() == 0) { - Error3("Found bad trigger %d of trigger length 0 in triggers, area %s\n", newtrig->id, newtrig->area.GetDataSafe()); + Error3("Found bad trigger %d of trigger length 0 in triggers, area %s", newtrig->id, newtrig->area.GetDataSafe()); delete newtrig; continue; } @@ -374,11 +374,11 @@ triggers.Insert(newtrig); - if (!FindKnowledgeArea(newtrig->area)) - { - printf("--------Adding KA: %s\n",newtrig->area.GetDataSafe()); - knowledgeAreas.PutUnique(newtrig->area,newtrig->area); - } + if (!FindKnowledgeArea(newtrig->area)) + { + printf("--------Adding KA: %s\n",newtrig->area.GetDataSafe()); + knowledgeAreas.PutUnique(newtrig->area,newtrig->area); + } } return true; } @@ -407,13 +407,13 @@ int trigger_id = result[i].GetInt("trigger_id"); if (trigger_id == 0) { - Error1("Response with null trigger.\n"); + Error1("Response with null trigger."); delete newresp; return false; } if (!AddTrigger(db,trigger_id,newresp->id)) { - Error2("Failed to load trigger for resp: %d\n",newresp->id); + Error2("Failed to load trigger for resp: %d",newresp->id); return false; } @@ -461,7 +461,7 @@ trig = triggers.Find(&key, NULL); if (trig) - { + { Debug3(LOG_NPC, client ? client->GetClientNum() : 0,"NPCDialogDict::FindResponse consider trig(%d): '%s'", trig->id,trig->trigger.GetDataSafe()); } @@ -536,7 +536,7 @@ if (!result.IsValid() || result.Count()!=1) { - Error2("Invalid trigger id %d in npc_triggers table.\n",triggerID); + Error2("Invalid trigger id %d in npc_triggers table.",triggerID); return false; } @@ -569,7 +569,7 @@ delete newtrig; } else - triggers.Insert(newtrig); + triggers.Insert(newtrig); return true; } @@ -581,7 +581,7 @@ if (!result.IsValid() || result.Count() != 1) { - Error2("Invalid response id %d specified for npc_responses table.\n",databaseID); + Error2("Invalid response id %d specified for npc_responses table.",databaseID); return; } @@ -608,7 +608,7 @@ const char *npc_name, int &new_id, psQuest * quest, - const char *audio_path) + const char *audio_path) { NpcResponse *newresp = new NpcResponse; @@ -707,7 +707,7 @@ newresp->her = pronoun_her; newresp->it = pronoun_it; newresp->them = pronoun_them; - newresp->voiceAudioPath[0] = audio_path; + newresp->voiceAudioPath[0] = audio_path; newresp->type = NpcResponse::VALID_RESPONSE; @@ -748,7 +748,7 @@ { csHash<NpcResponse *>::Iterator iter(responses.GetIterator(responseId)); while(iter.HasNext()) - delete iter.Next(); + delete iter.Next(); responses.DeleteAll(responseId); if(trigger) @@ -814,11 +814,11 @@ } triggers.Insert(newtrig); - if (!FindKnowledgeArea(newtrig->area)) - { - printf("--------Adding KA: %s\n",newtrig->area.GetDataSafe()); - knowledgeAreas.PutUnique(newtrig->area,newtrig->area); - } + if (!FindKnowledgeArea(newtrig->area)) + { + printf("--------Adding KA: %s\n",newtrig->area.GetDataSafe()); + knowledgeAreas.PutUnique(newtrig->area,newtrig->area); + } return newtrig; @@ -827,21 +827,21 @@ NpcDialogMenu *NPCDialogDict::FindMenu(const char *name) { - return initial_popup_menus.Get(csString(name),0); + return initial_popup_menus.Get(csString(name),0); } void NPCDialogDict::AddMenu(const char *name, NpcDialogMenu *menu) { - NpcDialogMenu *found = FindMenu(name); - if (found) // merge with existing - { + NpcDialogMenu *found = FindMenu(name); + if (found) // merge with existing + { found->Add(menu); - delete menu; // delete here if we don't keep it above - } - else // add a new menu - { - initial_popup_menus.PutUnique(csString(name),menu); - } + delete menu; // delete here if we don't keep it above + } + else // add a new menu + { + initial_popup_menus.PutUnique(csString(name),menu); + } } @@ -927,7 +927,7 @@ NpcTrigger * trig; while(trig_iter.HasNext()) { - trig = trig_iter.Next(); + trig = trig_iter.Next(); // filter on given area if (area!=NULL && strcasecmp(trig->area.GetDataSafe(),area)!=0) continue; @@ -955,7 +955,7 @@ NpcTrigger * trig; while(trig_iter.HasNext()) { - trig = trig_iter.Next(); + trig = trig_iter.Next(); PrintTrigger(trig); for (size_t i = 0; i < trig->responseIDlist.GetSize(); i++) { @@ -969,7 +969,7 @@ NpcResponse * resp; while(resp_iter.HasNext()) { - resp = resp_iter.Next(); + resp = resp_iter.Next(); PrintResponse(resp); } @@ -980,7 +980,7 @@ NpcTerm* term; while(term_iter.HasNext()) { - term = term_iter.Next(); + term = term_iter.Next(); term->Print(); } @@ -1105,9 +1105,9 @@ (!resp->quest || (resp->quest->Active() && client->GetCharacterData()->CheckQuestAvailable(resp->quest,npc->GetPID())))) //checks if the player can get the quest /*overrides the above while mantaining quest consistency in case of questtester */ ||(client->GetCharacterData()->GetActor() && client->GetCharacterData()->GetActor()->questtester && - (!resp->quest || !resp->quest->GetParentQuest()))) + (!resp->quest || !resp->quest->GetParentQuest()))) { - Debug2(LOG_QUESTS,client->GetClientNum(),"Pushing quest response: %d\n",resp->id); + Debug2(LOG_QUESTS,client->GetClientNum(),"Pushing quest response: %d",resp->id); // This is a available response that is connected to a available quest haveAvail = true; if (availableResponseList) @@ -1116,7 +1116,7 @@ } else { - Debug2(LOG_QUESTS, client ? client->GetClientNum() : 0,"Pushing non quest response: %d\n",resp->id); + Debug2(LOG_QUESTS, client ? client->GetClientNum() : 0,"Pushing non quest response: %d",resp->id); // This is a available responses that isn't connected to a quest haveAvail = true; if (availableResponseList) availableResponseList->Push(resp->id); @@ -1157,7 +1157,7 @@ NpcResponse::NpcResponse() { quest = NULL; - menu = NULL; + menu = NULL; active_quest = -1; } @@ -1427,9 +1427,9 @@ timeDelay = 0; // Say commands, etc. should be delayed by 2-3 seconds to simulate typing active_quest = -1; // not used by default - + int voiceNumber = -1; //default no voice ran yet. - + for (size_t i=0; i<script.GetSize(); i++) { if (!script[i]->Run(target,player,this,timeDelay,voiceNumber)) @@ -1930,7 +1930,7 @@ target->GetCharacterData()->GetCharName()); return false; } - timeDelay += 1000; + timeDelay += 1000; psserver->questmanager->Assign(quest[owner->GetActiveQuest()],target->GetClient(),who,timeDelay); return true; } @@ -2101,7 +2101,7 @@ if (!item) { - Error3("Couldn't give item %u to player %s!\n",itemstat->GetUID(), target->GetName()); + Error3("Couldn't give item %u to player %s!",itemstat->GetUID(), target->GetName()); return false; } @@ -2112,15 +2112,15 @@ csString itemName = item->GetQuantityName(); if (!character->Inventory().AddOrDrop(item)) - { - psSystemMessage recv(target->GetClient()->GetClientNum(),MSG_ERROR,"You received %s, but dropped it because you can't carry any more.", itemName.GetData()); - psserver->GetNetManager()->SendMessageDelayed(recv.msg, timeDelay); - } - else - { - psSystemMessage recv(target->GetClient()->GetClientNum(),MSG_INFO,"You have received %s.", itemName.GetData()); - psserver->GetNetManager()->SendMessageDelayed(recv.msg, timeDelay); - } + { + psSystemMessage recv(target->GetClient()->GetClientNum(),MSG_ERROR,"You received %s, but dropped it because you can't carry any more.", itemName.GetData()); + psserver->GetNetManager()->SendMessageDelayed(recv.msg, timeDelay); + } + else + { + psSystemMessage recv(target->GetClient()->GetClientNum(),MSG_INFO,"You have received %s.", itemName.GetData()); + psserver->GetNetManager()->SendMessageDelayed(recv.msg, timeDelay); + } return true; } @@ -2129,7 +2129,7 @@ faction = psserver->GetCacheManager()->GetFaction(node->GetAttributeValue("name")); if (!faction) { - Error2("Error: FactionOp faction(%s) not found\n",node->GetAttributeValue("name")); + Error2("Error: FactionOp faction(%s) not found",node->GetAttributeValue("name")); return false; } value = node->GetAttributeValueAsInt("value"); @@ -2445,53 +2445,53 @@ NpcDialogMenu::NpcDialogMenu() { - counter = 0; + counter = 0; } void NpcDialogMenu::AddTrigger(const csString &menuText, const csString &trigger, psQuest *quest, psQuestPrereqOp *script) { - NpcDialogMenu::DialogTrigger new_trigger; + NpcDialogMenu::DialogTrigger new_trigger; - new_trigger.menuText = menuText; - new_trigger.trigger = trigger; - new_trigger.quest = quest; + new_trigger.menuText = menuText; + new_trigger.trigger = trigger; + new_trigger.quest = quest; new_trigger.prerequisite = script; - new_trigger.triggerID = counter++; + new_trigger.triggerID = counter++; - this->triggers.Push( new_trigger ); + this->triggers.Push( new_trigger ); } void NpcDialogMenu::Add(NpcDialogMenu *add) { - if (!add) - return; + if (!add) + return; - for (size_t i=0; i < add->triggers.GetSize(); i++) - { - //printf("Adding '%s' to menu.\n", add->triggers[i].menuText.GetData() ); - AddTrigger(add->triggers[i].menuText, add->triggers[i].trigger, add->triggers[i].quest, add->triggers[i].prerequisite); - } - //printf("Added %lu triggers to menu.\n", (unsigned long) add->triggers.GetSize()); + for (size_t i=0; i < add->triggers.GetSize(); i++) + { + //printf("Adding '%s' to menu.\n", add->triggers[i].menuText.GetData() ); + AddTrigger(add->triggers[i].menuText, add->triggers[i].trigger, add->triggers[i].quest, add->triggers[i].prerequisite); + } + //printf("Added %lu triggers to menu.\n", (unsigned long) add->triggers.GetSize()); } void NpcDialogMenu::ShowMenu(Client *client,csTicks delay, gemNPC *npc) { - if( client == NULL ) - return; + if( client == NULL ) + return; - psDialogMenuMessage menu; + psDialogMenuMessage menu; csString currentQuest; - int count = 0; - + int count = 0; + bool IsTesting = client->GetCharacterData()->GetActor()->questtester; bool IsGm = client->IsGM(); - for (size_t i=0; i < counter; i++ ) - { + for (size_t i=0; i < counter; i++ ) + { csString prereq; - + if(triggers[i].quest && !triggers[i].quest->Active() && !IsTesting) continue; @@ -2515,8 +2515,8 @@ continue; } } - - //check availability (as per lockout). Note as gm we show quest even if in lockout as > gm get + + //check availability (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(triggers[i].quest && !IsGm && !IsTesting && !client->GetCharacterData()->CheckQuestAvailable(triggers[i].quest, npc->GetPID())) continue; @@ -2529,28 +2529,28 @@ temp += currentQuest; menu.AddResponse((uint32_t) i, temp, temptrig); } - + csString menuText = triggers[i].menuText; npc->GetNPCDialogPtr()->SubstituteKeywords(client,menuText); //only add the trigger if it isn't a question csString trigger = (menuText.Find("?=") == SIZET_NOT_FOUND) ? triggers[i].trigger : "(question)"; - - menu.AddResponse((uint32_t) i, + + menu.AddResponse((uint32_t) i, menuText, - trigger); + trigger); count++; - } + } - if (count) - { - menu.BuildMsg(client->GetClientNum()); - psserver->GetNetManager()->SendMessageDelayed(menu.msg, delay); - } - else - { - psserver->SendSystemError(client->GetClientNum(), "This NPC has no quest information for you."); - } + if (count) + { + menu.BuildMsg(client->GetClientNum()); + psserver->GetNetManager()->SendMessageDelayed(menu.msg, delay); + } + else + { + psserver->SendSystemError(client->GetClientNum(), "This NPC has no quest information for you."); + } } void NpcDialogMenu::SetPrerequisiteScript(psQuestPrereqOp *script) @@ -2567,7 +2567,7 @@ // Each item must have its own prequisite script so they can be different when menus are merged // even though they appear to all be set the same here. - for (size_t i=0; i < counter; i++ ) + for (size_t i=0; i < counter; i++ ) { triggers[i].prerequisite = script; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-06 19:35:16
|
Revision: 6865 http://planeshift.svn.sourceforge.net/planeshift/?rev=6865&view=rev Author: weltall2 Date: 2011-02-06 19:35:10 +0000 (Sun, 06 Feb 2011) Log Message: ----------- removed some server bootup spam Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2011-02-06 19:11:00 UTC (rev 6864) +++ trunk/src/server/bulkobjects/dictionary.cpp 2011-02-06 19:35:10 UTC (rev 6865) @@ -376,7 +376,7 @@ if (!FindKnowledgeArea(newtrig->area)) { - printf("--------Adding KA: %s\n",newtrig->area.GetDataSafe()); + Debug2(LOG_QUESTS, 0, "--------Adding KA: %s",newtrig->area.GetDataSafe()); knowledgeAreas.PutUnique(newtrig->area,newtrig->area); } } @@ -816,7 +816,7 @@ if (!FindKnowledgeArea(newtrig->area)) { - printf("--------Adding KA: %s\n",newtrig->area.GetDataSafe()); + Debug2(LOG_QUESTS, 0,"--------Adding KA: %s",newtrig->area.GetDataSafe()); knowledgeAreas.PutUnique(newtrig->area,newtrig->area); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-13 11:10:31
|
Revision: 6929 http://planeshift.svn.sourceforge.net/planeshift/?rev=6929&view=rev Author: weltall2 Date: 2011-02-13 11:10:25 +0000 (Sun, 13 Feb 2011) Log Message: ----------- removed extra ; Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2011-02-13 11:09:19 UTC (rev 6928) +++ trunk/src/server/bulkobjects/dictionary.cpp 2011-02-13 11:10:25 UTC (rev 6929) @@ -1140,7 +1140,7 @@ return (area==other.area && trigger==other.trigger && priorresponseID==other.priorresponseID); -}; +} bool NpcTrigger::operator<=(const NpcTrigger& other) const { @@ -1155,7 +1155,7 @@ return false; } return true; -}; +} NpcResponse::NpcResponse() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-03-03 19:52:34
|
Revision: 7030 http://planeshift.svn.sourceforge.net/planeshift/?rev=7030&view=rev Author: weltall2 Date: 2011-03-03 19:52:28 +0000 (Thu, 03 Mar 2011) Log Message: ----------- fixed another logic bug Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2011-03-03 19:50:58 UTC (rev 7029) +++ trunk/src/server/bulkobjects/dictionary.cpp 2011-03-03 19:52:28 UTC (rev 7030) @@ -475,7 +475,7 @@ csArray<int> availableResponseList; // Check if not all responses is blocked(Not available in quests, Prequests not fullfitted,...) - if (trig && !trig->HaveAvailableResponses(client,npc,this,&availableResponseList)) + if (!trig || !trig->HaveAvailableResponses(client,npc,this,&availableResponseList)) { Debug1(LOG_NPC, client ? client->GetClientNum() : 0,"NPCDialogDict::FindResponse no available responses found"); return NULL; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-04-24 08:44:55
|
Revision: 8238 http://planeshift.svn.sourceforge.net/planeshift/?rev=8238&view=rev Author: lpancallo Date: 2012-04-24 08:44:45 +0000 (Tue, 24 Apr 2012) Log Message: ----------- changed message to include free text. Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2012-04-24 08:07:38 UTC (rev 8237) +++ trunk/src/server/bulkobjects/dictionary.cpp 2012-04-24 08:44:45 UTC (rev 8238) @@ -2615,7 +2615,7 @@ } else { - psserver->SendSystemError(client->GetClientNum(), "This NPC has no quest information for you."); + psserver->SendSystemError(client->GetClientNum(), "This NPC has no quests for you. Use free text to speak with him"); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-04-24 14:44:45
|
Revision: 8242 http://planeshift.svn.sourceforge.net/planeshift/?rev=8242&view=rev Author: lpancallo Date: 2012-04-24 14:44:39 +0000 (Tue, 24 Apr 2012) Log Message: ----------- removed printf Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2012-04-24 14:43:47 UTC (rev 8241) +++ trunk/src/server/bulkobjects/dictionary.cpp 2012-04-24 14:44:39 UTC (rev 8242) @@ -1444,7 +1444,6 @@ for (size_t i=0; i<script.GetSize(); i++) { - printf("DEBUG: NpcResponse::ExecuteScript name: %s script: %s \n",script[i]->GetName(),script[i]->GetResponseScript().GetData()); if (!script[i]->Run(target,player,this,timeDelay,voiceNumber)) { csString resp = script[i]->GetResponseScript(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2012-06-04 07:25:25
|
Revision: 8351 http://planeshift.svn.sourceforge.net/planeshift/?rev=8351&view=rev Author: weltall2 Date: 2012-06-04 07:25:15 +0000 (Mon, 04 Jun 2012) Log Message: ----------- additional missing code for the unsetvariable Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2012-06-04 07:18:20 UTC (rev 8350) +++ trunk/src/server/bulkobjects/dictionary.cpp 2012-06-04 07:25:15 UTC (rev 8351) @@ -1362,6 +1362,10 @@ { op = new SetVariableResponseOp; } + else if( strcmp( node->GetValue(), "unsetvariable" ) == 0 ) + { + op = new UnSetVariableResponseOp; + } else if ( strcmp( node->GetValue(), "guild_award" ) == 0 ) { op = new GuildAwardResponseOp; @@ -2318,6 +2322,7 @@ variableValue = node->GetAttributeValue("value"); return true; } + csString SetVariableResponseOp::GetResponseScript() { psString resp = GetName(); @@ -2325,12 +2330,35 @@ resp.AppendFmt(" value=\"%s\"",variableValue.GetData()); return resp; } + bool SetVariableResponseOp::Run(gemNPC *who, gemActor *target,NpcResponse *owner,csTicks& timeDelay, int& voiceNumber) { psCharacter *c = target->GetCharacterData(); c->SetVariable(variableName,variableValue); return true; } + +bool UnSetVariableResponseOp::Load(iDocumentNode *node) +{ + variableName = node->GetAttributeValue("name"); + return true; +} + +csString UnSetVariableResponseOp::GetResponseScript() +{ + psString resp = GetName(); + resp.AppendFmt(" name=\"%s\"",variableName.GetData()); + return resp; +} + +bool UnSetVariableResponseOp::Run(gemNPC *who, gemActor *target,NpcResponse *owner,csTicks& timeDelay, int& voiceNumber) +{ + psCharacter *c = target->GetCharacterData(); + c->UnSetVariable(variableName); + return true; +} + + bool GuildAwardResponseOp::Load(iDocumentNode *node) { karma = node->GetAttributeValueAsInt("karma"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2012-08-03 04:20:40
|
Revision: 8412 http://planeshift.svn.sourceforge.net/planeshift/?rev=8412&view=rev Author: weltall2 Date: 2012-08-03 04:20:34 +0000 (Fri, 03 Aug 2012) Log Message: ----------- set also max item quality Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2012-08-02 23:24:03 UTC (rev 8411) +++ trunk/src/server/bulkobjects/dictionary.cpp 2012-08-03 04:20:34 UTC (rev 8412) @@ -2173,6 +2173,7 @@ if(quality >= 1) { item->SetItemQuality(quality); + item->SetMaxItemQuality(quality); } item->SetLoaded(); // Item is fully created This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2013-04-21 17:24:39
|
Revision: 8699 http://planeshift.svn.sourceforge.net/planeshift/?rev=8699&view=rev Author: weltall2 Date: 2013-04-21 17:24:32 +0000 (Sun, 21 Apr 2013) Log Message: ----------- moved the quest request test after the primary test, so it's kept also with quest tester Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2013-04-21 13:19:44 UTC (rev 8698) +++ trunk/src/server/bulkobjects/dictionary.cpp 2013-04-21 17:24:32 UTC (rev 8699) @@ -1124,17 +1124,21 @@ { // Check if all prerequisites are true, and available(no lockout) if ( ((!resp->prerequisite || client->GetCharacterData()->CheckResponsePrerequisite(resp) ) && //checks if prerequisites are in order - (!resp->quest || ((questID == -1 || resp->quest->GetID() == questID) && resp->quest->Active() && // checks if the quest is the wanted one. + (!resp->quest || (resp->quest->Active() && // checks if the quest is active. client->GetCharacterData()->GetQuestMgr().CheckQuestAvailable(resp->quest,npc->GetPID())))) //checks if the player can get the quest /*overrides the above while mantaining quest consistency in case of questtester */ ||(client->GetCharacterData()->GetActor() && client->GetCharacterData()->GetActor()->questtester && (!resp->quest || !resp->quest->GetParentQuest()))) { - Debug2(LOG_QUESTS,client->GetClientNum(),"Pushing quest response: %d",resp->id); - // This is a available response that is connected to a available quest - haveAvail = true; - if (availableResponseList) - availableResponseList->Push(resp->id); + // Check if the quest is the wanted one. It's checked here to avoid questtester to get in the middle. + if(!resp->quest || (questID == -1 || resp->quest->GetID() == questID)) + { + Debug2(LOG_QUESTS,client->GetClientNum(),"Pushing quest response: %d",resp->id); + // This is a available response that is connected to a available quest + haveAvail = true; + if (availableResponseList) + availableResponseList->Push(resp->id); + } } } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-11-23 05:54:01
|
Revision: 9023 http://sourceforge.net/p/planeshift/code/9023 Author: ralphcampbell Date: 2013-11-23 05:53:58 +0000 (Sat, 23 Nov 2013) Log Message: ----------- Fix 6023 - [Typo] Default no-quest message is incomplete Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2013-11-22 17:02:20 UTC (rev 9022) +++ trunk/src/server/bulkobjects/dictionary.cpp 2013-11-23 05:53:58 UTC (rev 9023) @@ -2743,7 +2743,7 @@ } else { - psserver->SendSystemError(client->GetClientNum(), "This NPC has no quests for you. Use free text to speak with him"); + psserver->SendSystemError(client->GetClientNum(), "This NPC has no quest for you, but might have other things to say."); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2014-01-08 22:21:53
|
Revision: 9210 http://sourceforge.net/p/planeshift/code/9210 Author: ralphcampbell Date: 2014-01-08 22:21:50 +0000 (Wed, 08 Jan 2014) Log Message: ----------- Don't downcase the skill name in the cache. Remember that Downcase() changes the string in place and doesn't return a copy of the string. Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.cpp Modified: trunk/src/server/bulkobjects/dictionary.cpp =================================================================== --- trunk/src/server/bulkobjects/dictionary.cpp 2014-01-08 13:10:56 UTC (rev 9209) +++ trunk/src/server/bulkobjects/dictionary.cpp 2014-01-08 22:21:50 UTC (rev 9210) @@ -820,7 +820,7 @@ NpcTrigger* newtrig = new NpcTrigger; newtrig->id = 0; - newtrig->area = temp_k_area.Downcase(); + newtrig->area = temp_k_area; newtrig->trigger = mytrigger; newtrig->priorresponseID = prior_response; CS_ASSERT(trigger_response != -1); @@ -1623,7 +1623,8 @@ if(character->GetProgressionPoints() <= 0) { csString str; - csString downcase = skill->name.Downcase(); + csString downcase = skill->name; + downcase.Downcase(); str.Format("You don't have any progression points to be trained in %s, Sorry",downcase.GetData()); who->Say(str,target,false,timeDelay); return false; @@ -1633,7 +1634,8 @@ if(skill->price > character->Money()) { csString str; - csString downcase = skill->name.Downcase(); + csString downcase = skill->name; + downcase.Downcase(); str.Format("Sorry, but I see that you don't have enough money to be trained in %s",downcase.GetData()); who->Say(str,target,false,timeDelay); return false; @@ -1642,7 +1644,8 @@ if(!character->CanTrain(skill->id)) { csString str; - csString downcase = skill->name.Downcase(); + csString downcase = skill->name; + downcase.Downcase(); str.Format("You can't train %s higher yet",downcase.GetData()); who->Say(str,target,false,timeDelay); return false; @@ -1679,7 +1682,8 @@ character->SetMoney(character->Money()-skill->price); character->Train(skill->id,1); - csString downcase = skill->name.Downcase(); + csString downcase = skill->name; + downcase.Downcase(); psserver->SendSystemInfo(target->GetClientNum(), "You've received some %s training", downcase.GetData()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |