From fd1baacd3df2474ffdc612217cb2750c4c6c843f Mon Sep 17 00:00:00 2001 From: Salanto Date: Sun, 10 Jan 2021 02:58:39 +0100 Subject: [PATCH] Add /flip command ; Add AOClient::genRand(min, max) Also added some punctuation for /g and /need --- include/aoclient.h | 5 ++++- src/commands.cpp | 25 +++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/include/aoclient.h b/include/aoclient.h index 85064e0..9df70ea 100644 --- a/include/aoclient.h +++ b/include/aoclient.h @@ -173,9 +173,11 @@ class AOClient : public QObject { void cmdPos(int argc, QStringList argv); void cmdG(int argc, QStringList argv); void cmdNeed(int argc, QStringList argv); + void cmdFlip(int argc, QStringList argv); // Command helper functions QStringList buildAreaList(int area_idx); + int genRand(int min, int max); // Command function global variables bool change_auth_started = false; @@ -206,7 +208,8 @@ class AOClient : public QObject { {"logout", {ACLFlags.value("NONE"), 0, &AOClient::cmdLogout}}, {"pos", {ACLFlags.value("NONE"), 1, &AOClient::cmdPos}}, {"g", {ACLFlags.value("NONE"), 1, &AOClient::cmdG}}, - {"need", {ACLFlags.value("NONE"), 1, &AOClient::cmdNeed}} + {"need", {ACLFlags.value("NONE"), 1, &AOClient::cmdNeed}}, + {"flip", {ACLFlags.value("NONE"), 0, &AOClient::cmdFlip}} }; QString partial_packet; diff --git a/src/commands.cpp b/src/commands.cpp index f0ad57b..9772eae 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -375,7 +375,7 @@ void AOClient::cmdG(int argc, QStringList argv) { QString sender_name = ooc_name; QString sender_message = argv.join(" "); - server->broadcast(AOPacket("CT", {"[G]" + sender_name, sender_message})); + server->broadcast(AOPacket("CT", {"[G]" + sender_name, sender_message+ "."})); return; } @@ -383,7 +383,15 @@ void AOClient::cmdNeed(int argc, QStringList argv) { QString sender_area = server->area_names.value(current_area); QString sender_message = argv.join(" "); - server->broadcast(AOPacket("CT", {"=== Advert ===","[" + sender_area + "] needs " + sender_message})); + server->broadcast(AOPacket("CT", {"=== Advert ===","[" + sender_area + "] needs " + sender_message+ "."})); +} + +void AOClient::cmdFlip(int argc, QStringList argv) +{ + QString sender_name = ooc_name; + QStringList faces = {"head","tails"}; + QString face = faces[AOClient::genRand(0,1)]; + sendServerMessage(sender_name + " flipped a coin and got " + face + "."); } QStringList AOClient::buildAreaList(int area_idx) @@ -405,3 +413,16 @@ QStringList AOClient::buildAreaList(int area_idx) } return entries; } + +int AOClient::genRand(int min, int max) +{ +#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) + qsrand(QDateTime::currentMSecsSinceEpoch()); + quint16 random_number = (qrand() % (max - min + 1)) + min; + return random_number; + +#else + quint32 random_number = QRandomGenerator::system()->bounded(min, max + 1); + return random_number; +#endif +}