public static void TryGuess(string word, Character senderChr) { lock (typeof(Asda2EventMgr)) { if (!Started) { return; } var fixedWord = word.ToLower(); float correctHits = 0f; for (int i = 0; i < fixedWord.Length; i++) { if (i >= _word.Length) { break; } if (fixedWord[i] == _word[i]) { correctHits++; } } if (correctHits / _word.Length >= _percision) { //character is winner var exp = CharacterFormulas.CalcExpForGuessWordEvent(senderChr.Level); var eventItems = CharacterFormulas.EventItemsForGuessEvent; Asda2EventMgr.SendMessageToWorld("{0} is winner. Prize is {1} exp and {2} event items.", senderChr.Name, exp, eventItems); senderChr.GainXp(exp, "guess_event"); RealmServer.IOQueue.AddMessage(() => senderChr.Asda2Inventory.AddDonateItem(Asda2ItemMgr.GetTemplate(CharacterFormulas.EventItemId), eventItems, "guess_event")); Stop(); Log.Create(Log.Types.EventOperations, LogSourceType.Character, senderChr.EntryId) .AddAttribute("win", eventItems, "guess_event") .Write(); } } }
public static void TryGuess(string word, Character senderChr) { lock (typeof(Asda2EventMgr)) { if (!Asda2EventMgr.IsGuessWordEventStarted) { return; } string lower = word.ToLower(); float num = 0.0f; for (int index = 0; index < lower.Length && index < Asda2EventMgr._word.Length; ++index) { if ((int)lower[index] == (int)Asda2EventMgr._word[index]) { ++num; } } if ((double)num / (double)Asda2EventMgr._word.Length < (double)Asda2EventMgr._percision) { return; } int experience = CharacterFormulas.CalcExpForGuessWordEvent(senderChr.Level); int eventItems = CharacterFormulas.EventItemsForGuessEvent; Asda2EventMgr.SendMessageToWorld("{0} is winner. Prize is {1} exp and {2} event items.", (object)senderChr.Name, (object)experience, (object)eventItems); senderChr.GainXp(experience, "guess_event", false); ServerApp <WCell.RealmServer.RealmServer> .IOQueue.AddMessage((Action)(() => senderChr.Asda2Inventory.AddDonateItem(Asda2ItemMgr.GetTemplate(CharacterFormulas.EventItemId), eventItems, "guess_event", false))); Asda2EventMgr.StopGueesWordEvent(); Log.Create(Log.Types.EventOperations, LogSourceType.Character, senderChr.EntryId) .AddAttribute("win", (double)eventItems, "guess_event").Write(); } }