From: <wha...@us...> - 2011-10-18 22:26:20
|
Revision: 7679 http://planeshift.svn.sourceforge.net/planeshift/?rev=7679&view=rev Author: whacko88 Date: 2011-10-18 22:26:14 +0000 (Tue, 18 Oct 2011) Log Message: ----------- Attached script for determining error rate for songs Modified Paths: -------------- trunk/src/server/serversongmngr.cpp Modified: trunk/src/server/serversongmngr.cpp =================================================================== --- trunk/src/server/serversongmngr.cpp 2011-10-17 21:38:07 UTC (rev 7678) +++ trunk/src/server/serversongmngr.cpp 2011-10-18 22:26:14 UTC (rev 7679) @@ -47,7 +47,6 @@ bool ServerSongManager::Initialize() { - bool error; csString instrCatStr; if(psserver->GetServerOption("instruments_category", instrCatStr)) @@ -73,8 +72,11 @@ if(item != 0) { float errorRate; + psItem* instrItem; const char* instrName; - psItem* instrItem; + + MathEnvironment mathEnv; + MathScript* calcSongPar; csArray<PublishDestination> proxList; psCharacter* charData = client->GetCharacterData(); @@ -102,20 +104,20 @@ instrName = instrItem->GetName(); - // getting error rate - // TODO the commented one is just an example of implementation - /* - MathEnvironment env; - MathScript* errorRateScript; - PSSKILL instrumentSkill; + // calculating song parameters + calcSongPar = psserver->GetMathScriptEngine()->FindScript("Calculate Song Parameters"); + if(calcSongPar == 0) + { + errorRate = 0; + } + else + { + mathEnv.Define("Player", client->GetActor()); + mathEnv.Define("Instrument", instrItem); + calcSongPar->Evaluate(&mathEnv); - instrumentSkill = instrItem->GetInstrumentSkill() - errorRateScript = psserver->GetMathScriptEngine()->FindScript("Compute Song Error"); - env.Define("InstrumentSkill", charData->Skills().GetSkillRank(instrumentSkill).Current()); - errorRateScript->Evaluate(&env); - errorRate = env.Lookup("ErrorRate")->GetValue(); - */ - errorRate = 0; + errorRate = mathEnv.Lookup("ErrorRate")->GetValue(); + } // TODO here it should be determined if the actions is a success/failure and manage the player's skill This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wha...@us...> - 2011-11-07 01:22:21
|
Revision: 7714 http://planeshift.svn.sourceforge.net/planeshift/?rev=7714&view=rev Author: whacko88 Date: 2011-11-07 01:22:15 +0000 (Mon, 07 Nov 2011) Log Message: ----------- Locked instruments in use Modified Paths: -------------- trunk/src/server/serversongmngr.cpp Modified: trunk/src/server/serversongmngr.cpp =================================================================== --- trunk/src/server/serversongmngr.cpp 2011-11-06 18:19:02 UTC (rev 7713) +++ trunk/src/server/serversongmngr.cpp 2011-11-07 01:22:15 UTC (rev 7714) @@ -141,8 +141,9 @@ sendedPlayMsg.SendMessage(); } - // updating character mode + // updating character mode and item status charActor->SetMode(PSCHARACTER_MODE_PLAY); + instrItem->SetInUse(true); } else { @@ -205,27 +206,33 @@ // handling skill ranking instrItem = GetEquippedInstrument(charData); - if(instrItem != 0 && calcSongPar != 0 && calcSongExp != 0) + if(instrItem != 0) { - MathEnvironment mathEnv; - int practicePoints; - float modifier; - PSSKILL instrSkill; + // unlocking instrument + instrItem->SetInUse(false); - mathEnv.Define("Player", charActor); - mathEnv.Define("Instrument", instrItem); - mathEnv.Define("SongTime", charData->GetPlayingTime() / 1000); - mathEnv.Define("AverageDuration", 1); // TODO to be implemented - mathEnv.Define("AveragePolyphony", 1); // TODO to be implemented + if(calcSongPar != 0 && calcSongExp != 0) + { + MathEnvironment mathEnv; + int practicePoints; + float modifier; + PSSKILL instrSkill; - calcSongPar->Evaluate(&mathEnv); - calcSongExp->Evaluate(&mathEnv); + mathEnv.Define("Player", charActor); + mathEnv.Define("Instrument", instrItem); + mathEnv.Define("SongTime", charData->GetPlayingTime() / 1000); + mathEnv.Define("AverageDuration", 1); // TODO to be implemented + mathEnv.Define("AveragePolyphony", 1); // TODO to be implemented - practicePoints = mathEnv.Lookup("PracticePoints")->GetRoundValue(); - modifier = mathEnv.Lookup("Modifier")->GetValue(); - instrSkill = (PSSKILL)(mathEnv.Lookup("InstrSkill")->GetRoundValue()); + calcSongPar->Evaluate(&mathEnv); + calcSongExp->Evaluate(&mathEnv); - charData->CalculateAddExperience(instrSkill, practicePoints, modifier); + practicePoints = mathEnv.Lookup("PracticePoints")->GetRoundValue(); + modifier = mathEnv.Lookup("Modifier")->GetValue(); + instrSkill = (PSSKILL)(mathEnv.Lookup("InstrSkill")->GetRoundValue()); + + charData->CalculateAddExperience(instrSkill, practicePoints, modifier); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wha...@us...> - 2012-08-13 22:06:26
|
Revision: 8423 http://planeshift.svn.sourceforge.net/planeshift/?rev=8423&view=rev Author: whacko88 Date: 2012-08-13 22:06:20 +0000 (Mon, 13 Aug 2012) Log Message: ----------- deleted error message that is already sent by a script Modified Paths: -------------- trunk/src/server/serversongmngr.cpp Modified: trunk/src/server/serversongmngr.cpp =================================================================== --- trunk/src/server/serversongmngr.cpp 2012-08-12 20:59:45 UTC (rev 8422) +++ trunk/src/server/serversongmngr.cpp 2012-08-13 22:06:20 UTC (rev 8423) @@ -247,10 +247,8 @@ } else { - // sending an error message - psStopSongMessage stopMsg(client->GetClientNum(), 0, true, psStopSongMessage::LOW_SKILL); - stopMsg.SendMessage(); - return; + // error messages to the player due to low skill are + // sended by the mathscript Calculate Song Parameters } } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |