added inventory and gold
This commit is contained in:
parent
1421f3f166
commit
42b0403dc8
@ -14,7 +14,11 @@ QString RPGCharacter::toString()
|
||||
str.append(QString::number(level)).append(" ");
|
||||
str.append(QString::number(xp)).append(" ");
|
||||
str.append(QString::number(x)).append(" ");
|
||||
str.append(QString::number(y));
|
||||
str.append(QString::number(y)).append(" ");
|
||||
str.append(QString::number(gold)).append(" ");
|
||||
str.append(QString::number(inventory.size()));
|
||||
for(QString &item : inventory)
|
||||
str.append(" ").append(item);
|
||||
return str;
|
||||
}
|
||||
|
||||
@ -74,7 +78,7 @@ void RPGModule::initVillages()
|
||||
bool RPGCharacter::fromString(QString str)
|
||||
{
|
||||
QStringList list = str.split(QChar(' '));
|
||||
if(list.size() == 6)
|
||||
if(list.size() == 6) // retrocompatibilitry
|
||||
{
|
||||
bool ok;
|
||||
pseudo = list[0];
|
||||
@ -93,6 +97,34 @@ bool RPGCharacter::fromString(QString str)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
else if(list.size() > 7)
|
||||
{
|
||||
bool ok;
|
||||
pseudo = list[0];
|
||||
password = list[1];
|
||||
level = list[2].toInt(&ok);
|
||||
if(!ok)
|
||||
return false;
|
||||
xp = list[3].toInt(&ok);
|
||||
if(!ok)
|
||||
return false;
|
||||
x = list[4].toInt(&ok);
|
||||
if(!ok)
|
||||
return false;
|
||||
y = list[5].toInt(&ok);
|
||||
if(!ok)
|
||||
return false;
|
||||
gold = list[6].toInt(&ok);
|
||||
if(!ok)
|
||||
return false;
|
||||
weapon = list[7];
|
||||
int nbItems = list[8].toInt(&ok);
|
||||
if(!ok)
|
||||
return false;
|
||||
for(int i=0; i<nbItems; ++i)
|
||||
inventory.push_back(list[9+i]);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
@ -482,6 +514,18 @@ bool RPGModule::messageHandler(Message msg)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(msg.args.compare("show inventory") == 0)
|
||||
{
|
||||
if(charOnline.count(src) > 0)
|
||||
{
|
||||
RPGCharacter *c = charOnline[src];
|
||||
QString str = QString("%1 has %2 gold coins").arg(c->pseudo).arg(c->gold);
|
||||
for(QString &s : c->inventory)
|
||||
str.append(", ").append(s);
|
||||
answer = say(str);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(msg.args.compare("!rpg help") == 0)
|
||||
{
|
||||
answer = privateSay("Commands : register, join, delete, leave, save, stats, list", msg.nick);
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
#include "module.h"
|
||||
#include <unordered_map>
|
||||
#include <QStringList>
|
||||
|
||||
class User;
|
||||
|
||||
@ -113,6 +114,9 @@ struct RPGCharacter
|
||||
QString pseudo;
|
||||
int x;
|
||||
int y;
|
||||
int gold;
|
||||
QString weapon;
|
||||
QStringList inventory;
|
||||
User *user;
|
||||
|
||||
RPGCharacter(QString myPseudo, QString myPass) :
|
||||
@ -125,7 +129,10 @@ struct RPGCharacter
|
||||
user(NULL)
|
||||
{}
|
||||
|
||||
RPGCharacter(QString serialisationStr) : user(NULL)
|
||||
RPGCharacter(QString serialisationStr) :
|
||||
gold(200),
|
||||
inventory(),
|
||||
user(NULL)
|
||||
{
|
||||
if(!fromString(serialisationStr))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user