mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 03:08:26 +00:00
Switch random function to std::mt19937
Added class EQEmu::Random Functions: EQEmu::Random::Int(int low, int high) EQEmu::Random::Real(double low, double high) EQEmu::Random::Roll(int required) EQEmu::Random::Roll(double required) EQEmu::Random::Reseed() For zone, you will access the random object through the zone object ex. zone->random.Int(0, 100); Int returns a random int between low and high Real returns a random double between low and high Roll(int) returns true if Int(0, 99) < required is true Roll(double) returns true if Real(0.0, 1.0) <= required is true
This commit is contained in:
+12
-12
@@ -2328,7 +2328,7 @@ bool Client::CheckIncreaseSkill(SkillUseTypes skillid, Mob *against_who, int cha
|
||||
if(Chance < 1)
|
||||
Chance = 1; // Make it always possible
|
||||
|
||||
if(MakeRandomFloat(0, 99) < Chance)
|
||||
if(zone->random.Real(0, 99) < Chance)
|
||||
{
|
||||
SetSkill(skillid, GetRawSkill(skillid) + 1);
|
||||
_log(SKILLS__GAIN, "Skill %d at value %d successfully gain with %.4f%%chance (mod %d)", skillid, skillval, Chance, chancemodi);
|
||||
@@ -2356,7 +2356,7 @@ void Client::CheckLanguageSkillIncrease(uint8 langid, uint8 TeacherSkill) {
|
||||
int32 Chance = 5 + ((TeacherSkill - LangSkill)/10); // greater chance to learn if teacher's skill is much higher than yours
|
||||
Chance = (Chance * RuleI(Character, SkillUpModifier)/100);
|
||||
|
||||
if(MakeRandomFloat(0,100) < Chance) { // if they make the roll
|
||||
if(zone->random.Real(0,100) < Chance) { // if they make the roll
|
||||
IncreaseLanguageSkill(langid); // increase the language skill by 1
|
||||
_log(SKILLS__GAIN, "Language %d at value %d successfully gain with %.4f%%chance", langid, LangSkill, Chance);
|
||||
}
|
||||
@@ -4904,7 +4904,7 @@ int Client::LDoNChest_SkillCheck(NPC *target, int skill)
|
||||
chance = 100.0f - base_difficulty;
|
||||
}
|
||||
|
||||
float d100 = (float)MakeRandomFloat(0, 100);
|
||||
float d100 = (float)zone->random.Real(0, 100);
|
||||
|
||||
if(d100 <= chance)
|
||||
return 1;
|
||||
@@ -7608,9 +7608,9 @@ void Client::GarbleMessage(char *message, uint8 variance)
|
||||
const char alpha_list[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; // only change alpha characters for now
|
||||
|
||||
for (size_t i = 0; i < strlen(message); i++) {
|
||||
uint8 chance = (uint8)MakeRandomInt(0, 115); // variation just over worst possible scrambling
|
||||
uint8 chance = (uint8)zone->random.Int(0, 115); // variation just over worst possible scrambling
|
||||
if (isalpha(message[i]) && (chance <= variance)) {
|
||||
uint8 rand_char = (uint8)MakeRandomInt(0,51); // choose a random character from the alpha list
|
||||
uint8 rand_char = (uint8)zone->random.Int(0,51); // choose a random character from the alpha list
|
||||
message[i] = alpha_list[rand_char];
|
||||
}
|
||||
}
|
||||
@@ -7728,7 +7728,7 @@ void Client::SetFactionLevel(uint32 char_id, uint32 npc_id, uint8 char_class, ui
|
||||
// If our result is truncated, then double a mob's value every once and a while to equal what they would have got
|
||||
else
|
||||
{
|
||||
if (MakeRandomInt(0, 100) < faction_mod)
|
||||
if (zone->random.Int(0, 100) < faction_mod)
|
||||
npc_value[i] *= 2;
|
||||
}
|
||||
}
|
||||
@@ -7821,11 +7821,11 @@ void Client::MerchantRejectMessage(Mob *merchant, int primaryfaction)
|
||||
}
|
||||
// If no primary faction or biggest influence is your faction hit
|
||||
if (primaryfaction <= 0 || lowestvalue == tmpFactionValue) {
|
||||
merchant->Say_StringID(MakeRandomInt(WONT_SELL_DEEDS1, WONT_SELL_DEEDS6));
|
||||
merchant->Say_StringID(zone->random.Int(WONT_SELL_DEEDS1, WONT_SELL_DEEDS6));
|
||||
} else if (lowestvalue == fmod.race_mod) { // race biggest
|
||||
// Non-standard race (ex. illusioned to wolf)
|
||||
if (GetRace() > PLAYER_RACE_COUNT) {
|
||||
messageid = MakeRandomInt(1, 3); // these aren't sequential StringIDs :(
|
||||
messageid = zone->random.Int(1, 3); // these aren't sequential StringIDs :(
|
||||
switch (messageid) {
|
||||
case 1:
|
||||
messageid = WONT_SELL_NONSTDRACE1;
|
||||
@@ -7842,7 +7842,7 @@ void Client::MerchantRejectMessage(Mob *merchant, int primaryfaction)
|
||||
}
|
||||
merchant->Say_StringID(messageid);
|
||||
} else { // normal player races
|
||||
messageid = MakeRandomInt(1, 4);
|
||||
messageid = zone->random.Int(1, 4);
|
||||
switch (messageid) {
|
||||
case 1:
|
||||
messageid = WONT_SELL_RACE1;
|
||||
@@ -7863,7 +7863,7 @@ void Client::MerchantRejectMessage(Mob *merchant, int primaryfaction)
|
||||
merchant->Say_StringID(messageid, itoa(GetRace()));
|
||||
}
|
||||
} else if (lowestvalue == fmod.class_mod) {
|
||||
merchant->Say_StringID(MakeRandomInt(WONT_SELL_CLASS1, WONT_SELL_CLASS5), itoa(GetClass()));
|
||||
merchant->Say_StringID(zone->random.Int(WONT_SELL_CLASS1, WONT_SELL_CLASS5), itoa(GetClass()));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -7966,7 +7966,7 @@ void Client::TryItemTick(int slot)
|
||||
|
||||
if(zone->tick_items.count(iid) > 0)
|
||||
{
|
||||
if( GetLevel() >= zone->tick_items[iid].level && MakeRandomInt(0, 100) >= (100 - zone->tick_items[iid].chance) && (zone->tick_items[iid].bagslot || slot <= EmuConstants::EQUIPMENT_END) )
|
||||
if( GetLevel() >= zone->tick_items[iid].level && zone->random.Int(0, 100) >= (100 - zone->tick_items[iid].chance) && (zone->tick_items[iid].bagslot || slot <= EmuConstants::EQUIPMENT_END) )
|
||||
{
|
||||
ItemInst* e_inst = (ItemInst*)inst;
|
||||
parse->EventItem(EVENT_ITEM_TICK, this, e_inst, nullptr, "", slot);
|
||||
@@ -7985,7 +7985,7 @@ void Client::TryItemTick(int slot)
|
||||
|
||||
if(zone->tick_items.count(iid) > 0)
|
||||
{
|
||||
if( GetLevel() >= zone->tick_items[iid].level && MakeRandomInt(0, 100) >= (100 - zone->tick_items[iid].chance) )
|
||||
if( GetLevel() >= zone->tick_items[iid].level && zone->random.Int(0, 100) >= (100 - zone->tick_items[iid].chance) )
|
||||
{
|
||||
ItemInst* e_inst = (ItemInst*)a_inst;
|
||||
parse->EventItem(EVENT_ITEM_TICK, this, e_inst, nullptr, "", slot);
|
||||
|
||||
Reference in New Issue
Block a user