From: <Kha...@us...> - 2009-03-21 00:58:56
|
Revision: 3260 http://planeshift.svn.sourceforge.net/planeshift/?rev=3260&view=rev Author: KhakiLord Date: 2009-03-21 00:58:46 +0000 (Sat, 21 Mar 2009) Log Message: ----------- Increased NPC position resolution by increasing DR updates from once per 2.5 seconds to once per 1.5 seconds. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2009-03-21 00:57:24 UTC (rev 3259) +++ trunk/src/server/npcmanager.cpp 2009-03-21 00:58:46 UTC (rev 3260) @@ -2080,7 +2080,7 @@ { static int counter=0; - if (!(counter%5)) + if (!(counter%3)) npcmgr->UpdateWorldPositions(); npcmgr->SendAllCommands(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Kha...@us...> - 2009-03-29 14:43:28
|
Revision: 3349 http://planeshift.svn.sourceforge.net/planeshift/?rev=3349&view=rev Author: KhakiLord Date: 2009-03-29 14:43:26 +0000 (Sun, 29 Mar 2009) Log Message: ----------- The superclient can now login even if it is already logged in. Existing logins are overridden. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2009-03-29 12:29:06 UTC (rev 3348) +++ trunk/src/server/npcmanager.cpp 2009-03-29 14:43:26 UTC (rev 3349) @@ -507,19 +507,7 @@ Notify2(LOG_SUPERCLIENT, "Check Superclient Login for: '%s'\n", (const char*)msg.sUser); psAccountInfo *acctinfo=CacheManager::GetSingleton().GetAccountInfoByUsername((const char *)msg.sUser); - if (clients->FindAccount(acctinfo->accountid, client->GetClientNum())) // username already logged in - { - // invalid - // psserver->RemovePlayer(me->clientnum,"You are already logged on to this server. If you were disconnected, please wait 30 seconds and try again."); - psDisconnectMessage disconnectMsg(client->GetClientNum(), 0, "Already logged in."); - psserver->GetEventManager()->Broadcast(disconnectMsg.msg, NetBase::BC_FINALPACKET); - Error2("User '%s' authentication request rejected: User already logged in.\n", - (const char *)msg.sUser); - - return; - } - csString password = csMD5::Encode(msg.sPassword).HexString(); if (acctinfo==NULL || strcmp(acctinfo->password,(const char *)password)) // authentication error @@ -554,7 +542,20 @@ delete acctinfo; return; } + + Client* existingClient = clients->FindAccount(acctinfo->accountid, client->GetClientNum()); + if(existingClient)// username already logged in + { + // invalid + // psserver->RemovePlayer(me->clientnum,"You are already logged on to this server. If you were disconnected, please wait 30 seconds and try again."); + // Diconnect existing superclient + + Error2("Superclient '%s' already logged in. Logging out existing client\n", + (const char *)msg.sUser); + psserver->RemovePlayer(existingClient->GetClientNum(),"Existing connection overridden by new login."); + } + // *********Successful superclient login here!********** time_t curtime = time(NULL); @@ -582,7 +583,7 @@ delete acctinfo; - status.Format("%s, %u, Superclient logged in", (const char*) msg.sUser, me->clientnum); + status.Format("%s, %u, %s, Superclient logged in", (const char*) msg.sUser, me->clientnum, addr); psserver->GetLogCSV()->Write(CSV_AUTHENT, status); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Kha...@us...> - 2009-05-10 15:37:07
|
Revision: 3659 http://planeshift.svn.sourceforge.net/planeshift/?rev=3659&view=rev Author: Khakilord Date: 2009-05-10 15:37:06 +0000 (Sun, 10 May 2009) Log Message: ----------- Reduced NPC command sending interval. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2009-05-10 15:27:39 UTC (rev 3658) +++ trunk/src/server/npcmanager.cpp 2009-05-10 15:37:06 UTC (rev 3659) @@ -84,7 +84,7 @@ virtual void Trigger(); ///< Abstract event processing function }; -#define NPC_TICK_INTERVAL 500 //msec +const int NPC_TICK_INTERVAL = 300; //msec /** * This class is the relationship of Owner to Pet ( which includes Familiars ). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-07-29 13:11:16
|
Revision: 4154 http://planeshift.svn.sourceforge.net/planeshift/?rev=4154&view=rev Author: weltall2 Date: 2009-07-29 13:11:08 +0000 (Wed, 29 Jul 2009) Log Message: ----------- Fixed PS#3008 - Pet summon time not correct patch by Tucos Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2009-07-29 06:52:20 UTC (rev 4153) +++ trunk/src/server/npcmanager.cpp 2009-07-29 13:11:08 UTC (rev 4154) @@ -100,6 +100,7 @@ NPCManager *manager; double elapsedTime; ///< create time csString curDate; + csString curTime; PetOwnerSession() { @@ -142,7 +143,6 @@ curDate = last_login.Truncate( 10 ); // YYYY-MM-DD CPrintf(CON_DEBUG,"Last Logged Date : %s\n", curDate.GetData() ); - csString curTime ; pet->GetLastLoginTime().SubString(curTime, 11 ); CPrintf(CON_DEBUG,"Last Logged time : %s\n", curTime.GetData() ); @@ -258,19 +258,29 @@ bool CheckSession() { double maxTime = GetMaxPetTime(); - csString thisDate; - time_t curr=time(0); - tm* gmtm = gmtime(&curr); + time_t old; + time(&old); + tm* tm_old = localtime(&old); - thisDate.Format("%d-%02d-%02d", - gmtm->tm_year+1900, - gmtm->tm_mon+1, - gmtm->tm_mday); + int year; + sscanf(curDate, "%d-%d-%d", &year, &tm_old->tm_mon, &tm_old->tm_mday); + year = year - 1900; + tm_old->tm_year = year; - if ( !curDate.Compare( thisDate ) ) + sscanf(curTime, "%d:%d:%d", &tm_old->tm_hour, &tm_old->tm_min, &tm_old->tm_sec); + old = mktime(tm_old); + + time_t curr; + time(&curr); + tm* tm_curr = localtime(&curr); + + int secsdiff = difftime(curr, old); + if (secsdiff >= 240*60) { - curDate = thisDate; + year = tm_curr->tm_year+1900; + curDate.Format("%d-%d-%d", year, tm_curr->tm_mon, tm_curr->tm_mday); + curTime.Format("%d:%d:%d", tm_curr->tm_hour, tm_curr->tm_min, tm_curr->tm_sec); elapsedTime = 0; } @@ -1513,7 +1523,7 @@ } else { - psserver->SendSystemInfo(me->clientnum,"You are too weak to call your familiar to you any more today."); + psserver->SendSystemInfo(me->clientnum,"The power of the ring of familiar is currently depleted, it will take more time to summon a pet again."); } } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ken...@us...> - 2009-10-30 08:31:44
|
Revision: 4701 http://planeshift.svn.sourceforge.net/planeshift/?rev=4701&view=rev Author: kennygraunke Date: 2009-10-30 08:31:38 +0000 (Fri, 30 Oct 2009) Log Message: ----------- Remove useless manager pointer. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2009-10-30 06:40:29 UTC (rev 4700) +++ trunk/src/server/npcmanager.cpp 2009-10-30 08:31:38 UTC (rev 4701) @@ -97,23 +97,19 @@ PID petID; ///< Character ID of the pet bool isActive; gemActor *owner; - NPCManager *manager; double elapsedTime; ///< create time csString curDate; csString curTime; PetOwnerSession() { - manager = NULL; owner = NULL; elapsedTime = 0.0f; isActive = false; }; - PetOwnerSession( NPCManager *mgr, gemActor *owner, psCharacter* pet) + PetOwnerSession(gemActor* owner, psCharacter* pet) { - manager = mgr; - if ( owner ) { this->ownerID = owner->GetCharacterData()->GetPID(); @@ -2040,7 +2036,7 @@ { if ( owner && petData ) { - PetOwnerSession *session = new PetOwnerSession( this, owner, petData ); + PetOwnerSession* session = new PetOwnerSession(owner, petData); if ( session ) { OwnerPetList.Put( session->petID, session ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-11-13 14:54:51
|
Revision: 4736 http://planeshift.svn.sourceforge.net/planeshift/?rev=4736&view=rev Author: weltall2 Date: 2009-11-13 14:54:42 +0000 (Fri, 13 Nov 2009) Log Message: ----------- fixed crash on pet creation Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2009-11-13 13:37:07 UTC (rev 4735) +++ trunk/src/server/npcmanager.cpp 2009-11-13 14:54:42 UTC (rev 4736) @@ -253,6 +253,8 @@ /// used to verify the session should still be valid bool CheckSession() { + //TODO: this needs some checking and improvement (or rewriting), + // all those string scanfs doesn't seem very safe double maxTime = GetMaxPetTime(); time_t old; @@ -260,19 +262,21 @@ tm* tm_old = localtime(&old); int year; - sscanf(curDate, "%d-%d-%d", &year, &tm_old->tm_mon, &tm_old->tm_mday); - year = year - 1900; - tm_old->tm_year = year; - sscanf(curTime, "%d:%d:%d", &tm_old->tm_hour, &tm_old->tm_min, &tm_old->tm_sec); - old = mktime(tm_old); + if(!curDate.IsEmpty() && !curTime.IsEmpty()) + { + sscanf(curDate, "%d-%d-%d", &year, &tm_old->tm_mon, &tm_old->tm_mday); + year = year - 1900; + tm_old->tm_year = year; + sscanf(curTime, "%d:%d:%d", &tm_old->tm_hour, &tm_old->tm_min, &tm_old->tm_sec); + old = mktime(tm_old); + } time_t curr; time(&curr); tm* tm_curr = localtime(&curr); - int secsdiff = difftime(curr, old); - if (secsdiff >= 240*60) + if (curDate.IsEmpty() || curTime.IsEmpty() || difftime(curr, old) >= 240*60) { year = tm_curr->tm_year+1900; curDate.Format("%d-%d-%d", year, tm_curr->tm_mon, tm_curr->tm_mday); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-11-13 20:55:53
|
Revision: 4737 http://planeshift.svn.sourceforge.net/planeshift/?rev=4737&view=rev Author: weltall2 Date: 2009-11-13 20:55:40 +0000 (Fri, 13 Nov 2009) Log Message: ----------- checking sscanf return Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2009-11-13 14:54:42 UTC (rev 4736) +++ trunk/src/server/npcmanager.cpp 2009-11-13 20:55:40 UTC (rev 4737) @@ -262,21 +262,29 @@ tm* tm_old = localtime(&old); int year; + //if the data is invalid ignore checking it and start from scratch + bool ignoreOldDate = (curDate.IsEmpty() || curTime.IsEmpty()); - if(!curDate.IsEmpty() && !curTime.IsEmpty()) + if(!ignoreOldDate) { - sscanf(curDate, "%d-%d-%d", &year, &tm_old->tm_mon, &tm_old->tm_mday); - year = year - 1900; - tm_old->tm_year = year; - - sscanf(curTime, "%d:%d:%d", &tm_old->tm_hour, &tm_old->tm_min, &tm_old->tm_sec); - old = mktime(tm_old); + int result = sscanf(curDate, "%d-%d-%d", &year, &tm_old->tm_mon, &tm_old->tm_mday); + int result2 = sscanf(curTime, "%d:%d:%d", &tm_old->tm_hour, &tm_old->tm_min, &tm_old->tm_sec); + if(result != 3 || result2 != 3) + { + ignoreOldDate = true; + } + else + { + year = year - 1900; + tm_old->tm_year = year; + old = mktime(tm_old); + } } time_t curr; time(&curr); tm* tm_curr = localtime(&curr); - if (curDate.IsEmpty() || curTime.IsEmpty() || difftime(curr, old) >= 240*60) + if (ignoreOldDate || difftime(curr, old) >= 240*60) { year = tm_curr->tm_year+1900; curDate.Format("%d-%d-%d", year, tm_curr->tm_mon, tm_curr->tm_mday); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-02-14 09:46:30
|
Revision: 5543 http://planeshift.svn.sourceforge.net/planeshift/?rev=5543&view=rev Author: weltall2 Date: 2010-02-14 09:46:24 +0000 (Sun, 14 Feb 2010) Log Message: ----------- fixed PS#3721 - pet name adds "familiar" Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2010-02-14 08:13:57 UTC (rev 5542) +++ trunk/src/server/npcmanager.cpp 2010-02-14 09:46:24 UTC (rev 5543) @@ -1688,6 +1688,8 @@ } else { + //we need this to be initialized or we won't be able to set it correctly + lastName = ""; lastName.Clear(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-03-19 11:25:08
|
Revision: 5708 http://planeshift.svn.sourceforge.net/planeshift/?rev=5708&view=rev Author: weltall2 Date: 2010-03-19 11:25:00 +0000 (Fri, 19 Mar 2010) Log Message: ----------- removed additional hardcoding Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2010-03-19 11:22:14 UTC (rev 5707) +++ trunk/src/server/npcmanager.cpp 2010-03-19 11:25:00 UTC (rev 5708) @@ -2274,7 +2274,7 @@ int realID = -1; bool found = false; - for (int skillID = 0; skillID < (int)PSSKILL_COUNT; skillID++) + for (int skillID = 0; skillID < CacheManager::GetSingloton().GetSkillAmount(); skillID++) { psSkillInfo * info = CacheManager::GetSingleton().GetSkillByID(skillID); if (!info) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-01-01 00:20:51
|
Revision: 6680 http://planeshift.svn.sourceforge.net/planeshift/?rev=6680&view=rev Author: weltall2 Date: 2011-01-01 00:20:44 +0000 (Sat, 01 Jan 2011) Log Message: ----------- set pets to autofollow on summon patch by mikesflowers Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2010-12-31 23:18:07 UTC (rev 6679) +++ trunk/src/server/npcmanager.cpp 2011-01-01 00:20:44 UTC (rev 6680) @@ -1574,6 +1574,13 @@ // Send OwnerActionLogon Perception pet->SetOwner( owner->GetActor() ); owner->GetCharacterData()->Skills().AddSkillPractice(petSkill, 1); + // Have the pet auto follow when summoned + // If no target target owner + if (!pet->GetTarget()) + { + pet->SetTarget( owner->GetActor() ); + } + QueueOwnerCmdPerception( owner->GetActor(), pet, psPETCommandMessage::CMD_FOLLOW ); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-08 09:43:40
|
Revision: 6897 http://planeshift.svn.sourceforge.net/planeshift/?rev=6897&view=rev Author: weltall2 Date: 2011-02-08 09:43:34 +0000 (Tue, 08 Feb 2011) Log Message: ----------- reduce code duplication Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2011-02-08 09:37:12 UTC (rev 6896) +++ trunk/src/server/npcmanager.cpp 2011-02-08 09:43:34 UTC (rev 6897) @@ -1380,7 +1380,7 @@ //TODO: Add a range check MathEnvironment env; - env.Define("Skill", owner->GetCharacterData()->GetSkillRank(petSkill->getValueAsInt()).Current()); + env.Define("Skill", owner->GetCharacterData()->GetSkillRank(GetPetSkill()).Current()); petRangeScript->Evaluate(&env); MathVar *varMaxRange = env.Lookup("MaxRange"); float max_range = varMaxRange->GetValue(); @@ -1404,7 +1404,7 @@ bool NPCManager::WillPetReact(int clientnum, Client * owner, gemNPC * pet, const char * type, int level) { MathEnvironment env; - env.Define("Skill", owner->GetCharacterData()->GetSkillRank(petSkill->getValueAsInt()).Current()); + env.Define("Skill", owner->GetCharacterData()->GetSkillRank(GetPetSkill()).Current()); env.Define("Level", level); petReactScript->Evaluate(&env); MathVar *varReact = env.Lookup("React"); @@ -1506,7 +1506,7 @@ pet->SetTarget( owner->GetActor() ); } QueueOwnerCmdPerception( owner->GetActor(), pet, psPETCommandMessage::CMD_FOLLOW ); - owner->GetCharacterData()->Skills().AddSkillPractice(petSkill->getValueAsInt(), 1); + owner->GetCharacterData()->Skills().AddSkillPractice(GetPetSkill(), 1); } } else @@ -1521,7 +1521,7 @@ if (CanPetHearYou(me->clientnum, owner, pet, typeStr) && WillPetReact(me->clientnum, owner, pet, typeStr, 1)) { QueueOwnerCmdPerception( owner->GetActor(), pet, psPETCommandMessage::CMD_STAY ); - owner->GetCharacterData()->Skills().AddSkillPractice(petSkill->getValueAsInt(), 1); + owner->GetCharacterData()->Skills().AddSkillPractice(GetPetSkill(), 1); } } else @@ -1642,7 +1642,7 @@ owner->SetFamiliar( pet ); // Send OwnerActionLogon Perception pet->SetOwner( owner->GetActor() ); - owner->GetCharacterData()->Skills().AddSkillPractice(petSkill->getValueAsInt(), 1); + owner->GetCharacterData()->Skills().AddSkillPractice(GetPetSkill(), 1); // Have the pet auto follow when summoned // If no target target owner if (!pet->GetTarget()) @@ -1706,7 +1706,7 @@ stance.stance_id = words.GetInt( 0 ); } QueueOwnerCmdPerception( owner->GetActor(), pet, psPETCommandMessage::CMD_ATTACK ); - owner->GetCharacterData()->Skills().AddSkillPractice(petSkill->getValueAsInt(), 1); + owner->GetCharacterData()->Skills().AddSkillPractice(GetPetSkill(), 1); } } else @@ -1727,7 +1727,7 @@ if (CanPetHearYou(me->clientnum, owner, pet, typeStr) && WillPetReact(me->clientnum, owner, pet, typeStr, 4)) { QueueOwnerCmdPerception( owner->GetActor(), pet, psPETCommandMessage::CMD_STOPATTACK ); - owner->GetCharacterData()->Skills().AddSkillPractice(petSkill->getValueAsInt(), 1); + owner->GetCharacterData()->Skills().AddSkillPractice(GetPetSkill(), 1); } } else 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:59:23
|
Revision: 7031 http://planeshift.svn.sourceforge.net/planeshift/?rev=7031&view=rev Author: weltall2 Date: 2011-03-03 19:59:17 +0000 (Thu, 03 Mar 2011) Log Message: ----------- fixed null pointer deference Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2011-03-03 19:52:28 UTC (rev 7030) +++ trunk/src/server/npcmanager.cpp 2011-03-03 19:59:17 UTC (rev 7031) @@ -2351,9 +2351,10 @@ csString escpxml = EscpXML( info->description ); buff.Format( "<DESCRIPTION DESC=\"%s\" CAT=\"%d\"/>", escpxml.GetData(), info->category); } + //TODO: this code needs some checking. before it attempted to get info->category. which would be a null pointer deference. else { - buff.Format( "<DESCRIPTION DESC=\"\" CAT=\"%d\"/>", info->category ); + buff.Format( "<DESCRIPTION DESC=\"\" CAT=\"\"/>"); } psCharacter* chr = client->GetFamiliar()->GetCharacterData(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-05-27 18:38:17
|
Revision: 7330 http://planeshift.svn.sourceforge.net/planeshift/?rev=7330&view=rev Author: weltall2 Date: 2011-05-27 18:38:10 +0000 (Fri, 27 May 2011) Log Message: ----------- avoid doing double checks if there is a login error Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2011-05-27 17:39:58 UTC (rev 7329) +++ trunk/src/server/npcmanager.cpp 2011-05-27 18:38:10 UTC (rev 7330) @@ -619,23 +619,23 @@ csString password = csMD5::Encode(msg.sPassword).HexString(); - if (acctinfo==NULL || strcmp(acctinfo->password,(const char *)password)) // authentication error + //check authentication errors + if (acctinfo==NULL) { - if (acctinfo==NULL) - { - psDisconnectMessage disconnectMsg(client->GetClientNum(), 0, "Username not found."); - psserver->GetEventManager()->Broadcast(disconnectMsg.msg, NetBase::BC_FINALPACKET); - Notify2(LOG_CONNECTIONS,"User '%s' authentication request rejected (Username not found).\n",(const char *)msg.sUser); - } - else - { - psDisconnectMessage disconnectMsg(client->GetClientNum(), 0, "Bad password."); - psserver->GetEventManager()->Broadcast(disconnectMsg.msg, NetBase::BC_FINALPACKET); - Notify2(LOG_CONNECTIONS,"User '%s' authentication request rejected (Bad password).\n",(const char *)msg.sUser); - } + psDisconnectMessage disconnectMsg(client->GetClientNum(), 0, "Username not found."); + psserver->GetEventManager()->Broadcast(disconnectMsg.msg, NetBase::BC_FINALPACKET); + Notify2(LOG_CONNECTIONS,"User '%s' authentication request rejected (Username not found).\n",(const char *)msg.sUser); delete acctinfo; return; } + else if(strcmp(acctinfo->password,(const char *)password)) + { + psDisconnectMessage disconnectMsg(client->GetClientNum(), 0, "Bad password."); + psserver->GetEventManager()->Broadcast(disconnectMsg.msg, NetBase::BC_FINALPACKET); + Notify2(LOG_CONNECTIONS,"User '%s' authentication request rejected (Bad password).\n",(const char *)msg.sUser); + delete acctinfo; + return; + } client->SetPID(0); client->SetSecurityLevel(acctinfo->securitylevel); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-05-27 18:39:28
|
Revision: 7331 http://planeshift.svn.sourceforge.net/planeshift/?rev=7331&view=rev Author: weltall2 Date: 2011-05-27 18:39:22 +0000 (Fri, 27 May 2011) Log Message: ----------- avoid doing the md5sum if the account wasn't found Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2011-05-27 18:38:10 UTC (rev 7330) +++ trunk/src/server/npcmanager.cpp 2011-05-27 18:39:22 UTC (rev 7331) @@ -616,9 +616,6 @@ Notify2(LOG_SUPERCLIENT, "Check Superclient Login for: '%s'\n", (const char*)msg.sUser); psAccountInfo *acctinfo=cacheManager->GetAccountInfoByUsername((const char *)msg.sUser); - - csString password = csMD5::Encode(msg.sPassword).HexString(); - //check authentication errors if (acctinfo==NULL) { @@ -628,7 +625,10 @@ delete acctinfo; return; } - else if(strcmp(acctinfo->password,(const char *)password)) + + csString password = csMD5::Encode(msg.sPassword).HexString(); + + if(strcmp(acctinfo->password,(const char *)password)) { psDisconnectMessage disconnectMsg(client->GetClientNum(), 0, "Bad password."); psserver->GetEventManager()->Broadcast(disconnectMsg.msg, NetBase::BC_FINALPACKET); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-05-29 06:48:40
|
Revision: 7335 http://planeshift.svn.sourceforge.net/planeshift/?rev=7335&view=rev Author: weltall2 Date: 2011-05-29 06:48:34 +0000 (Sun, 29 May 2011) Log Message: ----------- what's the meaning of this? it just locks emphaty training entirely Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2011-05-28 07:08:05 UTC (rev 7334) +++ trunk/src/server/npcmanager.cpp 2011-05-29 06:48:34 UTC (rev 7335) @@ -420,7 +420,7 @@ bool CanTrain() const { - return trainingLockOutTime > 0.0f; + return true; //trainingLockOutTime > 0.0f; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-10-29 20:03:58
|
Revision: 7695 http://planeshift.svn.sourceforge.net/planeshift/?rev=7695&view=rev Author: weltall2 Date: 2011-10-29 20:03:52 +0000 (Sat, 29 Oct 2011) Log Message: ----------- fixed compilation Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2011-10-29 19:39:23 UTC (rev 7694) +++ trunk/src/server/npcmanager.cpp 2011-10-29 20:03:52 UTC (rev 7695) @@ -19,7 +19,7 @@ #include <psconfig.h> #include <ctype.h> -#include <csutil/md5.h> +#include <csutil/sha256.h> //============================================================================= // Crystal Space Includes @@ -626,7 +626,7 @@ return; } - csString password = csMD5::Encode(msg.sPassword).HexString(); + csString password = CS::Utility::Checksum::SHA256::Encode(msg.sPassword).HexString(); if(strcmp(acctinfo->password,(const char *)password)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-12-20 21:58:43
|
Revision: 7868 http://planeshift.svn.sourceforge.net/planeshift/?rev=7868&view=rev Author: weltall2 Date: 2011-12-20 21:58:37 +0000 (Tue, 20 Dec 2011) Log Message: ----------- fixed pet reaction and range Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2011-12-20 16:58:20 UTC (rev 7867) +++ trunk/src/server/npcmanager.cpp 2011-12-20 21:58:37 UTC (rev 7868) @@ -1554,7 +1554,7 @@ env.Define("Skill", owner->GetCharacterData()->GetSkillRank(GetPetSkill()).Current()); //check if the script is up to date - if(psserver->GetMathScriptEngine()->CheckAndUpdateScript(petRangeScript, "CalculateMaxPetRange")) + if(!psserver->GetMathScriptEngine()->CheckAndUpdateScript(petRangeScript, "CalculateMaxPetRange")) { //default if the script cannot be found. //the server won't init without the script but in this case we lost it @@ -1588,7 +1588,7 @@ env.Define("Skill", owner->GetCharacterData()->GetSkillRank(GetPetSkill()).Current()); env.Define("Level", level); //check if the script is up to date - if(psserver->GetMathScriptEngine()->CheckAndUpdateScript(petReactScript, "CalculatePetReact")) + if(!psserver->GetMathScriptEngine()->CheckAndUpdateScript(petReactScript, "CalculatePetReact")) { //default if the script cannot be found. //the server won't init without the script but in this case we lost it This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2012-02-20 22:57:04
|
Revision: 8085 http://planeshift.svn.sourceforge.net/planeshift/?rev=8085&view=rev Author: weltall2 Date: 2012-02-20 22:56:58 +0000 (Mon, 20 Feb 2012) Log Message: ----------- fixed unchecked case for null pointer Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2012-02-19 16:35:13 UTC (rev 8084) +++ trunk/src/server/npcmanager.cpp 2012-02-20 22:56:58 UTC (rev 8085) @@ -1227,7 +1227,7 @@ break; } gemNPC *entity = dynamic_cast<gemNPC *> (gemSupervisor->FindObject(entity_id)); - entity->SetVisibility(status); + if(entity) entity->SetVisibility(status); break; } case psNPCCommandsMessage::CMD_PICKUP: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-01-27 22:40:08
|
Revision: 8565 http://planeshift.svn.sourceforge.net/planeshift/?rev=8565&view=rev Author: magodra Date: 2013-01-27 22:35:29 +0000 (Sun, 27 Jan 2013) Log Message: ----------- - Added debug to identify buffer overruns in server to npcclient communication down to a command. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2013-01-27 00:52:28 UTC (rev 8564) +++ trunk/src/server/npcmanager.cpp 2013-01-27 22:35:29 UTC (rev 8565) @@ -2474,6 +2474,8 @@ outbound->msg->Add(overallAssessmentPerception); outbound->msg->Add(overallAssessmentDifferencePerception); + cmd_count++; + if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueAssessPerception put message in overrun state!\n"); @@ -2496,7 +2498,14 @@ outbound->msg->Add(speaker->GetEID().Unbox()); outbound->msg->Add(target->GetEID().Unbox()); outbound->msg->Add((int16_t) faction); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueTalkPerception put message in overrun state!\n"); + } + Debug4(LOG_NPC, speaker->GetEID().Unbox(), "Added perception: %s spoke to %s with %1.1f faction standing.\n", speaker->GetName(), target->GetName(), @@ -2528,6 +2537,12 @@ } cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueAttackPerception group put message in overrun state!\n"); + } + Debug3(LOG_NPC, attacker->GetEID().Unbox(), "Added perception: %s's group is attacking %s.\n", attacker->GetName(), target->GetName()); @@ -2538,7 +2553,14 @@ outbound->msg->Add((int8_t) psNPCCommandsMessage::PCPT_ATTACK); outbound->msg->Add(target->GetEID().Unbox()); outbound->msg->Add(attacker->GetEID().Unbox()); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueAttackPerception lone gunman put message in overrun state!\n"); + } + Debug3(LOG_NPC, attacker->GetEID().Unbox(), "Added perception: %s is attacking %s.\n", attacker->GetName(), target->GetName()); @@ -2557,7 +2579,14 @@ outbound->msg->Add((float) dmg); outbound->msg->Add((float) target->GetCharacterData()->GetHP()); outbound->msg->Add((float) target->GetCharacterData()->GetMaxHP().Current()); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueDamagePerception put message in overrun state!\n"); + } + Debug4(LOG_NPC, attacker->GetEID().Unbox(), "Added perception: %s hit %s for %1.1f dmg.\n", attacker->GetName(), target->GetName(), @@ -2569,7 +2598,14 @@ CheckSendPerceptionQueue(sizeof(int8_t)+sizeof(uint32_t)); outbound->msg->Add((int8_t) psNPCCommandsMessage::PCPT_DEATH); outbound->msg->Add(who->GetEID().Unbox()); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueDeathPerception put message in overrun state!\n"); + } + Debug2(LOG_NPC, who->GetEID().Unbox(), "Added perception: %s death.\n", who->GetName()); } @@ -2582,13 +2618,20 @@ outbound->msg->Add(target->GetEID().Unbox()); outbound->msg->Add((uint32_t) spell_category); outbound->msg->Add((int8_t)(severity * 10)); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueSpellPerception put message in overrun state!\n"); + } + Debug4(LOG_NPC, caster->GetEID().Unbox(), "Added perception: %s cast a %s spell on %s.\n", caster->GetName(), spell_cat_name, target->GetName()); } void NPCManager::QueueStatDR(gemNPC* npc, unsigned int statsDirtyFlags ) { - CheckSendPerceptionQueue(sizeof(int8_t)+sizeof(uint32_t)+sizeof(uint16_t)+MSG_SIZEOF_FLOAT*8); + CheckSendPerceptionQueue(sizeof(int8_t)+sizeof(uint32_t)+sizeof(uint16_t)+MSG_SIZEOF_FLOAT*12); outbound->msg->Add((int8_t) psNPCCommandsMessage::PCPT_STAT_DR); outbound->msg->Add(npc->GetEID().Unbox()); outbound->msg->Add((uint16_t) statsDirtyFlags ); @@ -2641,7 +2684,14 @@ { outbound->msg->Add((float) npc->GetCharacterData()->GetMStaminaRate().Current()); } + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueStatDR put message in overrun state!\n"); + } + Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added perception: StatDR for %s\n",npc->GetName()); } @@ -2656,6 +2706,12 @@ outbound->msg->Add(player->GetEID().Unbox()); outbound->msg->Add((float) relative_faction); cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueEnemyPerception put message in overrun state!\n"); + } + Debug5(LOG_NPC, player->GetEID().Unbox(), "Added perception: Entity %s within range of entity %s, type %d, faction %.0f.\n", ShowID(player->GetEID()), ShowID(npc->GetEID()), type, relative_faction); gemNPC* myNPC = dynamic_cast<gemNPC*>(npc); @@ -2677,7 +2733,14 @@ outbound->msg->Add(owner->GetEID().Unbox()); outbound->msg->Add(pet->GetEID().Unbox()); outbound->msg->Add((uint32_t)(pet->GetTarget() ? pet->GetTarget()->GetEID().Unbox() : 0)); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueOwnerCmdPerception put message in overrun state!\n"); + } + Debug4(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s has told %s to %d.\n", owner->GetName(), pet->GetName(), (int)command); @@ -2692,7 +2755,14 @@ outbound->msg->Add((char*) itemdata->GetName()); outbound->msg->Add((bool) inserted); outbound->msg->Add((int16_t) itemdata->GetStackCount()); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueInventoryPerception put message in overrun state!\n"); + } + Debug7(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) has %s %d %s %s inventory.\n", owner->GetName(), ShowID(owner->GetEID()), @@ -2715,7 +2785,14 @@ if(owner->IsAlive()) flags |= psNPCCommandsMessage::IS_ALIVE; outbound->msg->Add(flags); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueFlagPerception put message in overrun state!\n"); + } + Debug4(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) flags 0x%X.\n", owner->GetName(), ShowID(owner->GetEID()), @@ -2731,6 +2808,12 @@ outbound->msg->Add(cmd); cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueNPCCmdPerception put message in overrun state!\n"); + } + Debug4(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) npc cmd %s.\n", owner->GetName(), ShowID(owner->GetEID()), @@ -2747,7 +2830,14 @@ outbound->msg->Add((char*) itemdata->GetName()); outbound->msg->Add((int8_t) itemdata->GetStackCount()); outbound->msg->Add((char*) target.GetDataSafe()); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueTransferPerception put message in overrun state!\n"); + } + Debug6(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) has transfered %d %s to %s.\n", owner->GetName(), ShowID(owner->GetEID()), @@ -2764,7 +2854,14 @@ outbound->msg->Add(spawned->GetEID().Unbox()); outbound->msg->Add(spawner->GetEID().Unbox()); outbound->msg->Add(tribeMemberType); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueSpawnedPerception put message in overrun state!\n"); + } + Debug3(LOG_NPC, spawner->GetEID().Unbox(), "Added spawn perception: %s from %s.\n", ShowID(spawned->GetEID()), ShowID(spawner->GetEID())); } @@ -2777,7 +2874,14 @@ outbound->msg->Add(yrot); outbound->msg->Add(sector, psserver->GetCacheManager()->GetMsgStrings()); outbound->msg->Add(instance); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueTeleportPerception put message in overrun state!\n"); + } + Debug3(LOG_NPC, npc->GetEID().Unbox(), "Added teleport perception for %s to %s.\n", ShowID(npc->GetEID()), toString(pos,sector).GetDataSafe()); } @@ -2788,7 +2892,14 @@ outbound->msg->Add(npc->GetEID().Unbox()); outbound->msg->Add(client->GetClientNum()); outbound->msg->Add(infoRequestSubCmd); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueInfoRequestPerception put message in overrun state!\n"); + } + Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Info Request perception for %s.\n", ShowID(npc->GetEID())); } @@ -2798,7 +2909,14 @@ outbound->msg->Add((int8_t) psNPCCommandsMessage::PCPT_FAILED_TO_ATTACK); outbound->msg->Add(attacker->GetEID().Unbox()); outbound->msg->Add(target->GetEID().Unbox()); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueFailedToAttackPerception put message in overrun state!\n"); + } + Debug2(LOG_NPC, attacker->GetEID().Unbox(), "Added Failed to Attack perception for %s.\n", ShowID(attacker->GetEID())); } @@ -2809,7 +2927,14 @@ outbound->msg->Add(npc->GetEID().Unbox()); outbound->msg->Add(perception); outbound->msg->Add(type); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueuePerceptPerception put message in overrun state!\n"); + } + Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Percept perception for %s.\n", ShowID(npc->GetEID())); } @@ -2819,7 +2944,14 @@ outbound->msg->Add((int8_t) psNPCCommandsMessage::PCPT_SPOKEN_TO); outbound->msg->Add(npc->GetEID().Unbox()); outbound->msg->Add(spokenTo); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::QueueSpokenToPerception put message in overrun state!\n"); + } + Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added SpokenTo perception for %s.\n", ShowID(npc->GetEID())); } @@ -2833,7 +2965,14 @@ outbound->msg->Add(npc->GetEID().Unbox()); outbound->msg->Add(client->GetClientNum()); outbound->msg->Add(brainName); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::ChangeNPCBrain put message in overrun state!\n"); + } + Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Brain Change perception for %s.\n", ShowID(npc->GetEID())); } @@ -2844,7 +2983,14 @@ outbound->msg->Add(npc->GetEID().Unbox()); outbound->msg->Add(client->GetClientNum()); outbound->msg->Add(debugLevel); + cmd_count++; + + if(outbound->msg->overrun) + { + CS_ASSERT(!"NPCManager::DebugNPC put message in overrun state!\n"); + } + Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Debug Level perception for %s.\n", ShowID(npc->GetEID())); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-02-03 19:27:15
|
Revision: 8573 http://planeshift.svn.sourceforge.net/planeshift/?rev=8573&view=rev Author: magodra Date: 2013-02-03 19:27:08 +0000 (Sun, 03 Feb 2013) Log Message: ----------- - Added error warnings for when not running with asserts. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2013-02-03 18:15:28 UTC (rev 8572) +++ trunk/src/server/npcmanager.cpp 2013-02-03 19:27:08 UTC (rev 8573) @@ -2479,6 +2479,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueAssessPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueAssessPerception put message in overrun state!\n"); } Debug3(LOG_NPC, entityEID.Unbox(), "Added assess perception: Entity: %s Target. %s\n", @@ -2504,6 +2505,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueTalkPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueTalkPerception put message in overrun state!\n"); } Debug4(LOG_NPC, speaker->GetEID().Unbox(), "Added perception: %s spoke to %s with %1.1f faction standing.\n", @@ -2541,6 +2543,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueAttackPerception group put message in overrun state!\n"); + Error1(!"NPCManager::QueueAttackPerception group put message in overrun state!\n"); } Debug3(LOG_NPC, attacker->GetEID().Unbox(), "Added perception: %s's group is attacking %s.\n", @@ -2559,6 +2562,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueAttackPerception lone gunman put message in overrun state!\n"); + Error1(!"NPCManager::QueueAttackPerception lone gunman put message in overrun state!\n"); } Debug3(LOG_NPC, attacker->GetEID().Unbox(), "Added perception: %s is attacking %s.\n", @@ -2585,6 +2589,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueDamagePerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueDamagePerception put message in overrun state!\n"); } Debug4(LOG_NPC, attacker->GetEID().Unbox(), "Added perception: %s hit %s for %1.1f dmg.\n", @@ -2604,6 +2609,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueDeathPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueDeathPerception put message in overrun state!\n"); } Debug2(LOG_NPC, who->GetEID().Unbox(), "Added perception: %s death.\n", who->GetName()); @@ -2624,6 +2630,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueSpellPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueSpellPerception put message in overrun state!\n"); } Debug4(LOG_NPC, caster->GetEID().Unbox(), "Added perception: %s cast a %s spell on %s.\n", caster->GetName(), spell_cat_name, target->GetName()); @@ -2690,6 +2697,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueStatDR put message in overrun state!\n"); + Error1(!"NPCManager::QueueStatDR put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added perception: StatDR for %s\n",npc->GetName()); @@ -2710,6 +2718,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueEnemyPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueEnemyPerception put message in overrun state!\n"); } Debug5(LOG_NPC, player->GetEID().Unbox(), "Added perception: Entity %s within range of entity %s, type %d, faction %.0f.\n", ShowID(player->GetEID()), ShowID(npc->GetEID()), type, relative_faction); @@ -2739,6 +2748,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueOwnerCmdPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueOwnerCmdPerception put message in overrun state!\n"); } Debug4(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s has told %s to %d.\n", @@ -2761,6 +2771,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueInventoryPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueInventoryPerception put message in overrun state!\n"); } Debug7(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) has %s %d %s %s inventory.\n", @@ -2791,6 +2802,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueFlagPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueFlagPerception put message in overrun state!\n"); } Debug4(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) flags 0x%X.\n", @@ -2812,6 +2824,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueNPCCmdPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueNPCCmdPerception put message in overrun state!\n"); } Debug4(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) npc cmd %s.\n", @@ -2836,6 +2849,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueTransferPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueTransferPerception put message in overrun state!\n"); } Debug6(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) has transfered %d %s to %s.\n", @@ -2860,6 +2874,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueSpawnedPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueSpawnedPerception put message in overrun state!\n"); } Debug3(LOG_NPC, spawner->GetEID().Unbox(), "Added spawn perception: %s from %s.\n", ShowID(spawned->GetEID()), ShowID(spawner->GetEID())); @@ -2880,6 +2895,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueTeleportPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueTeleportPerception put message in overrun state!\n"); } Debug3(LOG_NPC, npc->GetEID().Unbox(), "Added teleport perception for %s to %s.\n", ShowID(npc->GetEID()), toString(pos,sector).GetDataSafe()); @@ -2898,6 +2914,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueInfoRequestPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueInfoRequestPerception put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Info Request perception for %s.\n", ShowID(npc->GetEID())); @@ -2915,6 +2932,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueFailedToAttackPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueFailedToAttackPerception put message in overrun state!\n"); } Debug2(LOG_NPC, attacker->GetEID().Unbox(), "Added Failed to Attack perception for %s.\n", ShowID(attacker->GetEID())); @@ -2933,6 +2951,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueuePerceptPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueuePerceptPerception put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Percept perception for %s.\n", ShowID(npc->GetEID())); @@ -2950,6 +2969,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueSpokenToPerception put message in overrun state!\n"); + Error1(!"NPCManager::QueueSpokenToPerception put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added SpokenTo perception for %s.\n", ShowID(npc->GetEID())); @@ -2971,6 +2991,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::ChangeNPCBrain put message in overrun state!\n"); + Error1(!"NPCManager::ChangeNPCBrain put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Brain Change perception for %s.\n", ShowID(npc->GetEID())); @@ -2989,6 +3010,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::DebugNPC put message in overrun state!\n"); + Error1(!"NPCManager::DebugNPC put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Debug Level perception for %s.\n", ShowID(npc->GetEID())); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-02-03 20:15:45
|
Revision: 8574 http://planeshift.svn.sourceforge.net/planeshift/?rev=8574&view=rev Author: magodra Date: 2013-02-03 20:15:38 +0000 (Sun, 03 Feb 2013) Log Message: ----------- - Fixed Error message with boolean as input. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2013-02-03 19:27:08 UTC (rev 8573) +++ trunk/src/server/npcmanager.cpp 2013-02-03 20:15:38 UTC (rev 8574) @@ -2479,7 +2479,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueAssessPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueAssessPerception put message in overrun state!\n"); + Error1("NPCManager::QueueAssessPerception put message in overrun state!\n"); } Debug3(LOG_NPC, entityEID.Unbox(), "Added assess perception: Entity: %s Target. %s\n", @@ -2505,7 +2505,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueTalkPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueTalkPerception put message in overrun state!\n"); + Error1("NPCManager::QueueTalkPerception put message in overrun state!\n"); } Debug4(LOG_NPC, speaker->GetEID().Unbox(), "Added perception: %s spoke to %s with %1.1f faction standing.\n", @@ -2543,7 +2543,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueAttackPerception group put message in overrun state!\n"); - Error1(!"NPCManager::QueueAttackPerception group put message in overrun state!\n"); + Error1("NPCManager::QueueAttackPerception group put message in overrun state!\n"); } Debug3(LOG_NPC, attacker->GetEID().Unbox(), "Added perception: %s's group is attacking %s.\n", @@ -2562,7 +2562,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueAttackPerception lone gunman put message in overrun state!\n"); - Error1(!"NPCManager::QueueAttackPerception lone gunman put message in overrun state!\n"); + Error1("NPCManager::QueueAttackPerception lone gunman put message in overrun state!\n"); } Debug3(LOG_NPC, attacker->GetEID().Unbox(), "Added perception: %s is attacking %s.\n", @@ -2589,7 +2589,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueDamagePerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueDamagePerception put message in overrun state!\n"); + Error1("NPCManager::QueueDamagePerception put message in overrun state!\n"); } Debug4(LOG_NPC, attacker->GetEID().Unbox(), "Added perception: %s hit %s for %1.1f dmg.\n", @@ -2609,7 +2609,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueDeathPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueDeathPerception put message in overrun state!\n"); + Error1("NPCManager::QueueDeathPerception put message in overrun state!\n"); } Debug2(LOG_NPC, who->GetEID().Unbox(), "Added perception: %s death.\n", who->GetName()); @@ -2630,7 +2630,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueSpellPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueSpellPerception put message in overrun state!\n"); + Error1("NPCManager::QueueSpellPerception put message in overrun state!\n"); } Debug4(LOG_NPC, caster->GetEID().Unbox(), "Added perception: %s cast a %s spell on %s.\n", caster->GetName(), spell_cat_name, target->GetName()); @@ -2697,7 +2697,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueStatDR put message in overrun state!\n"); - Error1(!"NPCManager::QueueStatDR put message in overrun state!\n"); + Error1("NPCManager::QueueStatDR put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added perception: StatDR for %s\n",npc->GetName()); @@ -2718,7 +2718,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueEnemyPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueEnemyPerception put message in overrun state!\n"); + Error1("NPCManager::QueueEnemyPerception put message in overrun state!\n"); } Debug5(LOG_NPC, player->GetEID().Unbox(), "Added perception: Entity %s within range of entity %s, type %d, faction %.0f.\n", ShowID(player->GetEID()), ShowID(npc->GetEID()), type, relative_faction); @@ -2748,7 +2748,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueOwnerCmdPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueOwnerCmdPerception put message in overrun state!\n"); + Error1("NPCManager::QueueOwnerCmdPerception put message in overrun state!\n"); } Debug4(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s has told %s to %d.\n", @@ -2771,7 +2771,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueInventoryPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueInventoryPerception put message in overrun state!\n"); + Error1("NPCManager::QueueInventoryPerception put message in overrun state!\n"); } Debug7(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) has %s %d %s %s inventory.\n", @@ -2802,7 +2802,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueFlagPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueFlagPerception put message in overrun state!\n"); + Error1("NPCManager::QueueFlagPerception put message in overrun state!\n"); } Debug4(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) flags 0x%X.\n", @@ -2824,7 +2824,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueNPCCmdPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueNPCCmdPerception put message in overrun state!\n"); + Error1("NPCManager::QueueNPCCmdPerception put message in overrun state!\n"); } Debug4(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) npc cmd %s.\n", @@ -2849,7 +2849,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueTransferPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueTransferPerception put message in overrun state!\n"); + Error1("NPCManager::QueueTransferPerception put message in overrun state!\n"); } Debug6(LOG_NPC, owner->GetEID().Unbox(), "Added perception: %s(%s) has transfered %d %s to %s.\n", @@ -2874,7 +2874,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueSpawnedPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueSpawnedPerception put message in overrun state!\n"); + Error1("NPCManager::QueueSpawnedPerception put message in overrun state!\n"); } Debug3(LOG_NPC, spawner->GetEID().Unbox(), "Added spawn perception: %s from %s.\n", ShowID(spawned->GetEID()), ShowID(spawner->GetEID())); @@ -2895,7 +2895,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueTeleportPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueTeleportPerception put message in overrun state!\n"); + Error1("NPCManager::QueueTeleportPerception put message in overrun state!\n"); } Debug3(LOG_NPC, npc->GetEID().Unbox(), "Added teleport perception for %s to %s.\n", ShowID(npc->GetEID()), toString(pos,sector).GetDataSafe()); @@ -2914,7 +2914,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueInfoRequestPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueInfoRequestPerception put message in overrun state!\n"); + Error1("NPCManager::QueueInfoRequestPerception put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Info Request perception for %s.\n", ShowID(npc->GetEID())); @@ -2932,7 +2932,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueFailedToAttackPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueFailedToAttackPerception put message in overrun state!\n"); + Error1("NPCManager::QueueFailedToAttackPerception put message in overrun state!\n"); } Debug2(LOG_NPC, attacker->GetEID().Unbox(), "Added Failed to Attack perception for %s.\n", ShowID(attacker->GetEID())); @@ -2951,7 +2951,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueuePerceptPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueuePerceptPerception put message in overrun state!\n"); + Error1("NPCManager::QueuePerceptPerception put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Percept perception for %s.\n", ShowID(npc->GetEID())); @@ -2969,7 +2969,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::QueueSpokenToPerception put message in overrun state!\n"); - Error1(!"NPCManager::QueueSpokenToPerception put message in overrun state!\n"); + Error1("NPCManager::QueueSpokenToPerception put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added SpokenTo perception for %s.\n", ShowID(npc->GetEID())); @@ -2991,7 +2991,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::ChangeNPCBrain put message in overrun state!\n"); - Error1(!"NPCManager::ChangeNPCBrain put message in overrun state!\n"); + Error1("NPCManager::ChangeNPCBrain put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Brain Change perception for %s.\n", ShowID(npc->GetEID())); @@ -3010,7 +3010,7 @@ if(outbound->msg->overrun) { CS_ASSERT(!"NPCManager::DebugNPC put message in overrun state!\n"); - Error1(!"NPCManager::DebugNPC put message in overrun state!\n"); + Error1("NPCManager::DebugNPC put message in overrun state!\n"); } Debug2(LOG_NPC, npc->GetEID().Unbox(), "Added Debug Level perception for %s.\n", ShowID(npc->GetEID())); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-10-06 03:07:26
|
Revision: 8852 http://sourceforge.net/p/planeshift/code/8852 Author: ralphcampbell Date: 2013-10-06 03:07:24 +0000 (Sun, 06 Oct 2013) Log Message: ----------- Fix typo for 'You familiar' Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2013-10-06 03:06:08 UTC (rev 8851) +++ trunk/src/server/npcmanager.cpp 2013-10-06 03:07:24 UTC (rev 8852) @@ -2164,7 +2164,7 @@ } else { - psserver->SendSystemInfo(me->clientnum, "You familiar is avoiding you."); + psserver->SendSystemInfo(me->clientnum, "Your familiar is avoiding you."); } return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-10-24 20:43:25
|
Revision: 8922 http://sourceforge.net/p/planeshift/code/8922 Author: ralphcampbell Date: 2013-10-24 20:43:21 +0000 (Thu, 24 Oct 2013) Log Message: ----------- Return a more useful error message for /pet command if mounted. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2013-10-24 17:34:19 UTC (rev 8921) +++ trunk/src/server/npcmanager.cpp 2013-10-24 20:43:21 UTC (rev 8922) @@ -2031,7 +2031,13 @@ pet = dynamic_cast <gemNPC*>(owner->GetFamiliar()); if(!pet) { - psserver->SendSystemInfo(me->clientnum, "You have no familiar to command."); + // There is no separate gemNPC while mounted (actor is the player). + // Instead of saying there is no familiar to command, return a more + // useful message. + psserver->SendSystemInfo(me->clientnum, + owner->GetActor()->GetMount() ? + "You can't command your familiar while mounted." : + "You have no summoned familiar to command."); return; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-11-11 17:25:45
|
Revision: 8966 http://sourceforge.net/p/planeshift/code/8966 Author: ralphcampbell Date: 2013-11-11 17:25:43 +0000 (Mon, 11 Nov 2013) Log Message: ----------- Allow pets to be summoned with old N, syntax. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2013-11-11 12:52:39 UTC (rev 8965) +++ trunk/src/server/npcmanager.cpp 2013-11-11 17:25:43 UTC (rev 8966) @@ -1989,7 +1989,8 @@ } char* end = NULL; - size_t targetID = strtoul(words[0].GetDataSafe(), &end, 0); + size_t targetID = strtoul(words[0].IsEmpty() ? + msg.target.GetDataSafe() : words[0].GetDataSafe(), &end, 0); // Operator did give a name, let's see if we find the named pet. if(words[0].Length() != 0 && (end == NULL || *end)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-12-26 12:51:32
|
Revision: 9113 http://sourceforge.net/p/planeshift/code/9113 Author: magodra Date: 2013-12-26 12:51:28 +0000 (Thu, 26 Dec 2013) Log Message: ----------- Reorder case for npc commands. Modified Paths: -------------- trunk/src/server/npcmanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2013-12-26 12:30:33 UTC (rev 9112) +++ trunk/src/server/npcmanager.cpp 2013-12-26 12:51:28 UTC (rev 9113) @@ -2193,7 +2193,7 @@ } switch(msg.command) { - // Level 0 commands, will allways react + // Level 0 commands, will allways react case psPETCommandMessage::CMD_TARGET : { if(CanPetHearYou(me->clientnum, owner, pet, typeStr)) @@ -2270,15 +2270,6 @@ } break; // Level 4 commands - case psPETCommandMessage::CMD_STOPATTACK : - { - if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && - WillPetReact(me->clientnum, owner, pet, typeStr, 4)) - { - QueueOwnerCmdPerception(owner->GetActor(), pet, (psPETCommandMessage::PetCommand_t)msg.command); - } - } - break; case psPETCommandMessage::CMD_ATTACK : { if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && @@ -2332,6 +2323,15 @@ } } break; + case psPETCommandMessage::CMD_STOPATTACK : + { + if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && + WillPetReact(me->clientnum, owner, pet, typeStr, 4)) + { + QueueOwnerCmdPerception(owner->GetActor(), pet, (psPETCommandMessage::PetCommand_t)msg.command); + } + } + break; } return; } @@ -2353,66 +2353,123 @@ switch(msg.command) { - case psPETCommandMessage::CMD_FOLLOW : + // Level 0 commands, will allways react + case psPETCommandMessage::CMD_DISMISS : { - PetOwnerSession* session = OwnerPetList.Get(pet->GetCharacterData()->GetPID(), NULL); - if(!session) + if(pet->IsValid()) { - CPrintf(CON_NOTIFY, "Cannot locate PetSession for owner %s.\n", pet->GetName(), owner->GetName()); + DismissPet(pet, owner); + } + else + { + psserver->SendSystemInfo(me->clientnum, "Your pet has already returned to the netherworld."); return; } + } + break; + case psPETCommandMessage::CMD_NAME : + { + if(!CanPetHearYou(me->clientnum, owner, pet, typeStr)) + { + return; + } - if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && WillPetReact(me->clientnum, owner, pet, typeStr, 1)) + if(words.GetCount() == 0) { - // If no target than target owner - if(!pet->GetTarget()) + psserver->SendSystemInfo(me->clientnum, "You must specify a new name for your pet."); + return; + } + + firstName = words.Get(0); + if(firstName.Length() > MAX_PLAYER_NAME_LENGTH) + { + psserver->SendSystemError(me->clientnum, "First name is too long!"); + return; + } + firstName = NormalizeCharacterName(firstName); + if(!CharCreationManager::FilterName(firstName)) + { + psserver->SendSystemError(me->clientnum, "The name %s is invalid!", firstName.GetData()); + return; + } + if(words.GetCount() > 1) + { + lastName = words.GetTail(1); + if(lastName.Length() > MAX_PLAYER_NAME_LENGTH) { - pet->SetTarget(owner->GetActor()); + psserver->SendSystemError(me->clientnum, "Last name is too long!"); + return; } - QueueOwnerCmdPerception(owner->GetActor(), pet, psPETCommandMessage::CMD_FOLLOW); - if(!session->IsInTrainingLockout()) + + lastName = NormalizeCharacterName(lastName); + if(!CharCreationManager::FilterName(lastName)) { - owner->GetCharacterData()->Skills().AddSkillPractice(GetPetSkill(), 1); - session->ReceivedTraining(); + psserver->SendSystemError(me->clientnum, "The last name %s is invalid!", lastName.GetData()); + return; } } - } - break; - case psPETCommandMessage::CMD_STAY : - { - PetOwnerSession* session = OwnerPetList.Get(pet->GetCharacterData()->GetPID(), NULL); - if(!session) + else { - CPrintf(CON_NOTIFY, "Cannot locate PetSession for owner %s.\n", pet->GetName(), owner->GetName()); + //we need this to be initialized or we won't be able to set it correctly + lastName = ""; + lastName.Clear(); + } + + if(psserver->GetCharManager()->IsBanned(firstName)) + { + psserver->SendSystemError(me->clientnum, "The name %s is invalid!", firstName.GetData()); return; } - if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && WillPetReact(me->clientnum, owner, pet, typeStr, 1)) + if(psserver->GetCharManager()->IsBanned(lastName)) { - QueueOwnerCmdPerception(owner->GetActor(), pet, psPETCommandMessage::CMD_STAY); - if(!session->IsInTrainingLockout()) - { - owner->GetCharacterData()->Skills().AddSkillPractice(GetPetSkill(), 1); - session->ReceivedTraining(); - } + psserver->SendSystemError(me->clientnum, "The last name %s is invalid!", lastName.GetData()); + return; + } + chardata = pet->GetCharacterData(); + prevFirstName = chardata->GetCharName(); + prevLastName = chardata->GetCharLastName(); + if(firstName == prevFirstName && lastName == prevLastName) + { + // no changes needed + psserver->SendSystemError(me->clientnum, "Your %s is already known with that name!", typeStr); + return; } - } - break; - case psPETCommandMessage::CMD_DISMISS : - if(pet->IsValid()) + + if(firstName != prevFirstName && !CharCreationManager::IsUnique(firstName)) { - DismissPet(pet, owner); + psserver->SendSystemError(me->clientnum, "The name %s is not unique!", + firstName.GetDataSafe()); + return; } + + prevFullName = chardata->GetCharFullName(); + chardata->SetFullName(firstName, lastName); + fullName = chardata->GetCharFullName(); + pet->SetName(fullName); + + psServer::CharacterLoader.SaveCharacterData(chardata, pet, true); + + if(owner->GetFamiliar()) + { + psUpdateObjectNameMessage newNameMsg(0,pet->GetEID(),pet->GetCharacterData()->GetCharFullName()); + psserver->GetEventManager()->Broadcast(newNameMsg.msg,NetBase::BC_EVERYONE); + } else { - psserver->SendSystemInfo(me->clientnum, "Your pet has already returned to the netherworld."); - return; + entityManager->RemoveActor(pet); } - break; + + psserver->SendSystemInfo(me->clientnum, + "Your pet %s is now known as %s", + prevFullName.GetData(), + fullName.GetData()); + } + break; case psPETCommandMessage::CMD_SUMMON : + { // Attach to Familiar - { PetOwnerSession* session = NULL; session = OwnerPetList.Get(familiarID, NULL); @@ -2510,6 +2567,94 @@ } } break; + case psPETCommandMessage::CMD_TARGET : + { + if(CanPetHearYou(me->clientnum, owner, pet, typeStr)) + { + if(words.GetCount() == 0) + { + psserver->SendSystemInfo(me->clientnum, "You must specify a name for your pet to target."); + return; + } + + firstName = words.Get(0); + if(words.GetCount() > 1) + { + lastName = words.GetTail(1); + } + gemObject* target = psserver->GetAdminManager()->FindObjectByString(firstName,owner->GetActor()); + + firstName = NormalizeCharacterName(firstName); + + if(firstName == "Me") + { + firstName = owner->GetName(); + } + lastName = NormalizeCharacterName(lastName); + + if(target) + { + pet->SetTarget(target); + psserver->SendSystemInfo(me->clientnum, "%s has successfully targeted %s." , pet->GetName(), target->GetName()); + } + else + { + psserver->SendSystemInfo(me->clientnum, "Cannot find '%s' to target.", firstName.GetData()); + } + } + } + break; + // Level 1 commands + case psPETCommandMessage::CMD_FOLLOW : + case psPETCommandMessage::CMD_STAY : + { + PetOwnerSession* session = OwnerPetList.Get(pet->GetCharacterData()->GetPID(), NULL); + if(!session) + { + CPrintf(CON_NOTIFY, "Cannot locate PetSession for owner %s.\n", pet->GetName(), owner->GetName()); + return; + } + + if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && + WillPetReact(me->clientnum, owner, pet, typeStr, 1)) + { + // If no target than target owner + if(!pet->GetTarget()) + { + pet->SetTarget(owner->GetActor()); + } + QueueOwnerCmdPerception(owner->GetActor(), pet, (psPETCommandMessage::PetCommand_t)msg.command); + if(!session->IsInTrainingLockout()) + { + owner->GetCharacterData()->Skills().AddSkillPractice(GetPetSkill(), 1); + session->ReceivedTraining(); + } + } + } + break; + // Level 2 commands + case psPETCommandMessage::CMD_GUARD : + case psPETCommandMessage::CMD_RUN : + case psPETCommandMessage::CMD_WALK : + { + if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && + WillPetReact(me->clientnum, owner, pet, typeStr, 2)) + { + QueueOwnerCmdPerception(owner->GetActor(), pet, (psPETCommandMessage::PetCommand_t)msg.command); + } + } + break; + // Level 3 commands + case psPETCommandMessage::CMD_ASSIST : + { + if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && + WillPetReact(me->clientnum, owner, pet, typeStr, 3)) + { + QueueOwnerCmdPerception(owner->GetActor(), pet, psPETCommandMessage::CMD_ASSIST); + } + } + break; + // Level 4 commands case psPETCommandMessage::CMD_ATTACK : { PetOwnerSession* session = OwnerPetList.Get(pet->GetCharacterData()->GetPID(), NULL); @@ -2594,161 +2739,6 @@ } } break; - case psPETCommandMessage::CMD_ASSIST : - { - if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && WillPetReact(me->clientnum, owner, pet, typeStr, 3)) - { - QueueOwnerCmdPerception(owner->GetActor(), pet, psPETCommandMessage::CMD_ASSIST); - } - } - break; - case psPETCommandMessage::CMD_RUN : - case psPETCommandMessage::CMD_WALK : - case psPETCommandMessage::CMD_GUARD : - { - if(CanPetHearYou(me->clientnum, owner, pet, typeStr) && WillPetReact(me->clientnum, owner, pet, typeStr, 2)) - { - QueueOwnerCmdPerception(owner->GetActor(), pet, (psPETCommandMessage::PetCommand_t)msg.command); - } - } - break; - case psPETCommandMessage::CMD_NAME : - { - if(!CanPetHearYou(me->clientnum, owner, pet, typeStr)) - { - return; - } - - if(words.GetCount() == 0) - { - psserver->SendSystemInfo(me->clientnum, "You must specify a new name for your pet."); - return; - } - - firstName = words.Get(0); - if(firstName.Length() > MAX_PLAYER_NAME_LENGTH) - { - psserver->SendSystemError(me->clientnum, "First name is too long!"); - return; - } - firstName = NormalizeCharacterName(firstName); - if(!CharCreationManager::FilterName(firstName)) - { - psserver->SendSystemError(me->clientnum, "The name %s is invalid!", firstName.GetData()); - return; - } - if(words.GetCount() > 1) - { - lastName = words.GetTail(1); - if(lastName.Length() > MAX_PLAYER_NAME_LENGTH) - { - psserver->SendSystemError(me->clientnum, "Last name is too long!"); - return; - } - - lastName = NormalizeCharacterName(lastName); - if(!CharCreationManager::FilterName(lastName)) - { - psserver->SendSystemError(me->clientnum, "The last name %s is invalid!", lastName.GetData()); - return; - } - } - else - { - //we need this to be initialized or we won't be able to set it correctly - lastName = ""; - lastName.Clear(); - } - - if(psserver->GetCharManager()->IsBanned(firstName)) - { - psserver->SendSystemError(me->clientnum, "The name %s is invalid!", firstName.GetData()); - return; - } - - if(psserver->GetCharManager()->IsBanned(lastName)) - { - psserver->SendSystemError(me->clientnum, "The last name %s is invalid!", lastName.GetData()); - return; - } - - chardata = pet->GetCharacterData(); - prevFirstName = chardata->GetCharName(); - prevLastName = chardata->GetCharLastName(); - if(firstName == prevFirstName && lastName == prevLastName) - { - // no changes needed - psserver->SendSystemError(me->clientnum, "Your %s is already known with that name!", typeStr); - return; - } - - if(firstName != prevFirstName && !CharCreationManager::IsUnique(firstName)) - { - psserver->SendSystemError(me->clientnum, "The name %s is not unique!", - firstName.GetDataSafe()); - return; - } - - prevFullName = chardata->GetCharFullName(); - chardata->SetFullName(firstName, lastName); - fullName = chardata->GetCharFullName(); - pet->SetName(fullName); - - psServer::CharacterLoader.SaveCharacterData(chardata, pet, true); - - if(owner->GetFamiliar()) - { - psUpdateObjectNameMessage newNameMsg(0,pet->GetEID(),pet->GetCharacterData()->GetCharFullName()); - psserver->GetEventManager()->Broadcast(newNameMsg.msg,NetBase::BC_EVERYONE); - } - else - { - entityManager->RemoveActor(pet); - } - - psserver->SendSystemInfo(me->clientnum, - "Your pet %s is now known as %s", - prevFullName.GetData(), - fullName.GetData()); - } - break; - case psPETCommandMessage::CMD_TARGET : - { - if(CanPetHearYou(me->clientnum, owner, pet, typeStr)) - { - if(words.GetCount() == 0) - { - psserver->SendSystemInfo(me->clientnum, "You must specify a name for your pet to target."); - return; - } - - firstName = words.Get(0); - if(words.GetCount() > 1) - { - lastName = words.GetTail(1); - } - gemObject* target = psserver->GetAdminManager()->FindObjectByString(firstName,owner->GetActor()); - - firstName = NormalizeCharacterName(firstName); - - if(firstName == "Me") - { - firstName = owner->GetName(); - } - lastName = NormalizeCharacterName(lastName); - - if(target) - { - pet->SetTarget(target); - psserver->SendSystemInfo(me->clientnum, "%s has successfully targeted %s." , pet->GetName(), target->GetName()); - } - else - { - psserver->SendSystemInfo(me->clientnum, "Cannot find '%s' to target.", firstName.GetData()); - } - } - } - break; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |