mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-01 11:36:36 +00:00
[Bots] Add Data Bucket support to Bot Spell Entries. (#2505)
* [Bots] Add Data Bucket support to Bot Spell Entries. * Cleanup Formatting and Functions * Consolidated "CheckDataBucket" Functions * Remove unneeded CastToClient * Add choice to format data buckets as either "character-id" or "bot-id" to Bot spells * Fix Formatting * Clean up. * Update npc.h * Fix Bot Casting issues * Formatting Co-authored-by: Kinglykrab <kinglykrab@gmail.com> Co-authored-by: Kinglykrab <89047260+Kinglykrab@users.noreply.github.com>
This commit is contained in:
-143
@@ -11607,149 +11607,6 @@ void Client::SendReloadCommandMessages() {
|
||||
SendChatLineBreak();
|
||||
}
|
||||
|
||||
bool Client::CheckMerchantDataBucket(uint8 bucket_comparison, std::string bucket_value, std::string player_value)
|
||||
{
|
||||
std::vector<std::string> bucket_checks;
|
||||
bool found = false;
|
||||
bool passes = false;
|
||||
|
||||
switch (bucket_comparison) {
|
||||
case MerchantBucketComparison::BucketEqualTo:
|
||||
{
|
||||
if (player_value != bucket_value) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
break;
|
||||
}
|
||||
case MerchantBucketComparison::BucketNotEqualTo:
|
||||
{
|
||||
if (player_value == bucket_value) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
break;
|
||||
}
|
||||
case MerchantBucketComparison::BucketGreaterThanOrEqualTo:
|
||||
{
|
||||
if (player_value < bucket_value) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
break;
|
||||
}
|
||||
case MerchantBucketComparison::BucketLesserThanOrEqualTo:
|
||||
{
|
||||
if (player_value > bucket_value) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
break;
|
||||
}
|
||||
case MerchantBucketComparison::BucketGreaterThan:
|
||||
{
|
||||
if (player_value <= bucket_value) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
break;
|
||||
}
|
||||
case MerchantBucketComparison::BucketLesserThan:
|
||||
{
|
||||
if (player_value >= bucket_value) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
|
||||
break;
|
||||
}
|
||||
case MerchantBucketComparison::BucketIsAny:
|
||||
{
|
||||
bucket_checks = Strings::Split(bucket_value, "|");
|
||||
if (bucket_checks.empty()) {
|
||||
break;
|
||||
}
|
||||
|
||||
for (const auto &bucket : bucket_checks) {
|
||||
if (player_value == bucket) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
break;
|
||||
}
|
||||
case MerchantBucketComparison::BucketIsNotAny:
|
||||
{
|
||||
bucket_checks = Strings::Split(bucket_value, "|");
|
||||
if (bucket_checks.empty()) {
|
||||
break;
|
||||
}
|
||||
|
||||
for (const auto &bucket : bucket_checks) {
|
||||
if (player_value == bucket) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (found) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
break;
|
||||
}
|
||||
case MerchantBucketComparison::BucketIsBetween:
|
||||
{
|
||||
bucket_checks = Strings::Split(bucket_value, "|");
|
||||
if (bucket_checks.empty()) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (
|
||||
std::stoll(player_value) < std::stoll(bucket_checks[0]) ||
|
||||
std::stoll(player_value) > std::stoll(bucket_checks[1])
|
||||
) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
break;
|
||||
}
|
||||
case MerchantBucketComparison::BucketIsNotBetween:
|
||||
{
|
||||
bucket_checks = Strings::Split(bucket_value, "|");
|
||||
if (bucket_checks.empty()) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (
|
||||
std::stoll(player_value) >= std::stoll(bucket_checks[0]) &&
|
||||
std::stoll(player_value) <= std::stoll(bucket_checks[1])
|
||||
) {
|
||||
break;
|
||||
}
|
||||
|
||||
passes = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return passes;
|
||||
}
|
||||
|
||||
std::map<std::string,std::string> Client::GetMerchantDataBuckets()
|
||||
{
|
||||
std::map<std::string,std::string> merchant_data_buckets;
|
||||
|
||||
Reference in New Issue
Block a user