From: <ral...@us...> - 2014-11-09 07:32:14
|
Revision: 9641 http://sourceforge.net/p/planeshift/code/9641 Author: ralphcampbell Date: 2014-11-09 07:32:11 +0000 (Sun, 09 Nov 2014) Log Message: ----------- Remove dead code. Modified Paths: -------------- trunk/src/server/gem.cpp Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2014-11-09 07:28:56 UTC (rev 9640) +++ trunk/src/server/gem.cpp 2014-11-09 07:32:11 UTC (rev 9641) @@ -4799,17 +4799,13 @@ // Merge current spot in active quests first for(size_t i=0; i < quests.GetSize(); i++) { - quests[i]->GetQuest(); // If the quest is completed or the last response was not from this NPC, then skip if(quests[i]->last_response_from_npc_pid != pid || quests[i]->status == 'C') { - // printf("Skipping completed or irrelevant quest: %s\n", q->GetName() ); continue; } - // printf("Checking quest %lu: %s. ", (unsigned long) i, q->GetName() ); + int last_response = quests[i]->last_response; - // printf("Got last response %d\n", last_response); - if(last_response != -1) // within a quest step { resp = dict->FindResponse(last_response); @@ -4818,10 +4814,6 @@ else Error4("BUG: resp was null! last_response %d in %s (%c)", last_response, quests[i]->GetQuest()->GetName(), quests[i]->status); } - else - { - // printf("Got last_response==-1 for quest %lu.\n", (unsigned long) i); - } } // Also offer default choices in case a new quest should be started This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2016-03-27 14:38:11
|
Revision: 9866 http://sourceforge.net/p/planeshift/code/9866 Author: lpancallo Date: 2016-03-27 14:38:08 +0000 (Sun, 27 Mar 2016) Log Message: ----------- fixing exploit to die in tutorial to avoid death curse Modified Paths: -------------- trunk/src/server/gem.cpp Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2016-03-25 12:56:50 UTC (rev 9865) +++ trunk/src/server/gem.cpp 2016-03-27 14:38:08 UTC (rev 9866) @@ -2787,32 +2787,32 @@ if(sector) sectorInfo = cacheManager->GetSectorInfoByName(sector->QueryObject()->GetName()); + // if the player is older than "avoidtime" go to death realm + float x,y,z,yrot; + optionEntry* deathentry = cacheManager->getOptionSafe("death",""); + if(psChar->GetTotalOnlineTime() > (unsigned int)(deathentry->getOptionSafe("avoidtime", "0")->getValueAsInt())) + { + csString sectorName = deathentry->getOptionSafe("sectorname", "DR01")->getValue(); + x = deathentry->getOptionSafe("sectorx", "-29.2")->getValueAsDouble(); + y = deathentry->getOptionSafe("sectory", "-119.0")->getValueAsDouble(); + z = deathentry->getOptionSafe("sectorz", "28.2")->getValueAsDouble(); + yrot = deathentry->getOptionSafe("sectoryrot", "0.0")->getValueAsDouble(); + Teleport(sectorName, csVector3(x, y, z), yrot, DEFAULT_INSTANCE); + } + // if there is no sector specified move to default spawn point + else if(!sectorInfo || sectorInfo->GetDeathSector().Length()==0) + { + csString message = deathentry->getOptionSafe("avoidtext", "")->getValue(); + // respawn in the deafult location, for players is set to "hydlaa_plaza" in race_info table + MoveToSpawnPos(); + if(message.Length()) + psserver->SendSystemInfo(GetClientID(), message.GetData()); + } //if the sector was found and there is text in the sector try teleporting there. - if(sectorInfo && sectorInfo->GetDeathSector().Length()) + else if(sectorInfo && sectorInfo->GetDeathSector().Length()) { Teleport(sectorInfo->GetDeathSector(), sectorInfo->GetDeathCord(), sectorInfo->GetDeathRot(), DEFAULT_INSTANCE); } - else - { - float x,y,z,yrot; - optionEntry* deathentry = cacheManager->getOptionSafe("death",""); - if(psChar->GetTotalOnlineTime() > (unsigned int)(deathentry->getOptionSafe("avoidtime", "0")->getValueAsInt())) - { - csString sectorName = deathentry->getOptionSafe("sectorname", "DR01")->getValue(); - x = deathentry->getOptionSafe("sectorx", "-29.2")->getValueAsDouble(); - y = deathentry->getOptionSafe("sectory", "-119.0")->getValueAsDouble(); - z = deathentry->getOptionSafe("sectorz", "28.2")->getValueAsDouble(); - yrot = deathentry->getOptionSafe("sectoryrot", "0.0")->getValueAsDouble(); - Teleport(sectorName, csVector3(x, y, z), yrot, DEFAULT_INSTANCE); - } - else - { - csString message = deathentry->getOptionSafe("avoidtext", "")->getValue(); - MoveToSpawnPos(); - if(message.Length()) - psserver->SendSystemInfo(GetClientID(), message.GetData()); - } - } //reset mana only in sectors restoring it, to prevent exploits using /die in death maps or for //other reasoning. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rav...@us...> - 2016-05-31 21:40:38
|
Revision: 9943 http://sourceforge.net/p/planeshift/code/9943 Author: ravna-ps Date: 2016-05-31 21:40:36 +0000 (Tue, 31 May 2016) Log Message: ----------- Players could continue to attack other players they had battled in pvp areas forever, even outside pvp zones. This has now been reduced to 60 seconds since the last combat action. Modified Paths: -------------- trunk/src/server/gem.cpp Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2016-05-29 22:51:06 UTC (rev 9942) +++ trunk/src/server/gem.cpp 2016-05-31 21:40:36 UTC (rev 9943) @@ -2533,9 +2533,14 @@ for(size_t i=0; i< GetDamageHistoryCount(); i++) { gemActor* attacker = GetDamageHistory((int) i)->Attacker(); - // If the target has ever hit you, you can attack them back. Logging out clears this. - if(attacker && attacker == target) - return TARGET_FOE; + // If the target has ever hit you, you can attack them back if the last hit was no less than 60 sec ago. Logging out clears this. + if (attacker && attacker == target) + { + csTicks currentTime = csGetTicks(); + AttackerHistory* lasthit = GetDamageHistory((int)i); + if ((currentTime - lasthit->TimeOfAttack()) < 60000) + return TARGET_FOE; + } } // Declared war? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rav...@us...> - 2017-01-09 21:43:02
|
Revision: 9989 http://sourceforge.net/p/planeshift/code/9989 Author: ravna-ps Date: 2017-01-09 21:43:00 +0000 (Mon, 09 Jan 2017) Log Message: ----------- Fixed: fixed a bug where the combat stance would not set correctly set when canceling a work event. Modified Paths: -------------- trunk/src/server/gem.cpp Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2017-01-02 21:14:44 UTC (rev 9988) +++ trunk/src/server/gem.cpp 2017-01-09 21:43:00 UTC (rev 9989) @@ -3559,11 +3559,11 @@ void gemActor::SetMode(PSCHARACTER_MODE newmode, uint32_t extraData) { - // Assume combat messages need to be sent anyway, because the stance may have changed. + // Assume combat messages need to be sent anyway, because the stance may have changed. // TODO: integrate this with extraData and remove this workaround? if(player_mode == newmode && newmode != PSCHARACTER_MODE_COMBAT) return; - + if(newmode < PSCHARACTER_MODE_PEACE || newmode >= PSCHARACTER_MODE_COUNT) { Error3("Unhandled mode: %d switching to %d", player_mode, newmode); @@ -3573,6 +3573,19 @@ if(!CanSwitchMode(player_mode, newmode)) return; + // cancel ongoing work - This needs to be done first since typically, cancel events themselves change mode (call this function), and since it uses class variables, we + // need to keep things in order. + if (player_mode == PSCHARACTER_MODE_WORK && workEvent) + { + // keep a Stance copy, cancelled work might overwrite it in a recursive call + Stance stanceCopy(combat_stance); + + workEvent->Interrupt(); + workEvent = NULL; + // re-set the stance in case we had a can + SetCombatStance(stanceCopy); + } + // Force mode to be OVERWEIGHT if encumbered and the proposed mode isn't // more important. if(!psChar->Inventory().HasEnoughUnusedWeight(0) && CanSwitchMode(newmode, PSCHARACTER_MODE_OVERWEIGHT)) @@ -3582,10 +3595,11 @@ { SetCombatStance(CombatManager::GetStance(cacheManager,"None")); } + else + { + extraData = combat_stance.stance_id; + } - if(newmode == PSCHARACTER_MODE_COMBAT) - extraData = combat_stance.stance_id; - psModeMessage msg(GetClientID(), GetEID(), (uint8_t) newmode, extraData); msg.Multicast(GetMulticastClients(), 0, PROX_LIST_ANY_RANGE); @@ -3605,12 +3619,6 @@ newmode != PSCHARACTER_MODE_COMBAT && newmode != PSCHARACTER_MODE_DEFEATED); - // cancel ongoing work - if(player_mode == PSCHARACTER_MODE_WORK && workEvent) - { - workEvent->Interrupt(); - workEvent = NULL; - } // stop playing current song if(player_mode == PSCHARACTER_MODE_PLAY) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2017-08-29 11:53:57
|
Revision: 9998 http://sourceforge.net/p/planeshift/code/9998 Author: venalan Date: 2017-08-29 11:53:55 +0000 (Tue, 29 Aug 2017) Log Message: ----------- Fixing small typo. Modified Paths: -------------- trunk/src/server/gem.cpp Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2017-07-05 21:43:50 UTC (rev 9997) +++ trunk/src/server/gem.cpp 2017-08-29 11:53:55 UTC (rev 9998) @@ -1784,7 +1784,7 @@ } if(item->GetItemSize()*amountToAdd + currentSize > itemdata->GetContainerMaxSize()) { - reason = " because the item is to large to fit"; + reason = " because the item is too large to fit"; return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |