From c15da6c8396895e140b60ad8411ba1e327d2ee17 Mon Sep 17 00:00:00 2001 From: Anselme Date: Wed, 16 Mar 2016 15:31:36 +0100 Subject: [PATCH] bug fixes ? --- app/rpgmodule.cpp | 33 ++++++++++++++++++++++++++------- app/rpgmodule.h | 2 +- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/app/rpgmodule.cpp b/app/rpgmodule.cpp index d14e0d3..301576e 100644 --- a/app/rpgmodule.cpp +++ b/app/rpgmodule.cpp @@ -20,7 +20,7 @@ QString RPGCharacter::toString() bool RPGCharacter::fromString(QString str) { - QStringList list = str.split(" "); + QStringList list = str.split(QChar(' ')); if(list.size() == 6) { bool ok; @@ -73,7 +73,10 @@ void RPGModule::saveCharacters() } QTextStream out(&f); for(const std::string &name : charList.names) - out << charList.get(name)->toString() << "\n"; + { + if(name != "trash") + out << charList.get(name)->toString() << "\n"; + } f.close(); } @@ -111,7 +114,7 @@ QString RPGModule::getTerrainName(int type) } } -QString RPGModule::playerTravel(RPGCharacter *c, QString dir) +QString RPGModule::playerTravel(RPGCharacter *c, QString dir, bool repeat) { char terrainType = WORLDMAP[c->x][c->y]; QString direction; @@ -246,6 +249,13 @@ bool RPGModule::messageHandler(Message msg) return true; } } + else if(msg.args.compare("!rpg reset") == 0 && src->isOp()) + { + charList.data.clear(); + charList.names.clear(); + answer = say("cleared character database"); + return true; + } else if(msg.args.compare("!rpg save") == 0) { saveCharacters(); @@ -266,15 +276,24 @@ bool RPGModule::messageHandler(Message msg) QStringList paramList = msg.args.split(' '); if(charOnline.count(src) > 0 && paramList.size() == 2) { - answer = say(playerTravel(charOnline[src], paramList[1])); + answer = say(playerTravel(charOnline[src], paramList[1], true)); return true; } } else if(msg.args.startsWith("look ")) { - // look around - - // look at [object] + answer = say("you look around and you find a walnut."); + return true; + } + else if(msg.args.compare("break walnut") == 0) + { + answer = say("you use a rock to break the walnut, there is a walnut kernel inside."); + return true; + } + else if(msg.args.compare("eat walnut kernel") == 0) + { + answer = say("you eat the walnut kernel, and you feel repleted."); + return true; } else if(msg.args.compare("!rpg help") == 0) { diff --git a/app/rpgmodule.h b/app/rpgmodule.h index 611d659..e05369a 100644 --- a/app/rpgmodule.h +++ b/app/rpgmodule.h @@ -113,7 +113,7 @@ public: void playerJoin(User* user, RPGCharacter *c); void playerLeave(User* user); - QString playerTravel(RPGCharacter *c, QString dir); + QString playerTravel(RPGCharacter *c, QString dir, bool repeat=false); QString getTerrainName(int type); virtual bool messageHandler(Message msg);