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(level)).append(" ");
|
||||||
str.append(QString::number(xp)).append(" ");
|
str.append(QString::number(xp)).append(" ");
|
||||||
str.append(QString::number(x)).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;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,7 +78,7 @@ void RPGModule::initVillages()
|
|||||||
bool RPGCharacter::fromString(QString str)
|
bool RPGCharacter::fromString(QString str)
|
||||||
{
|
{
|
||||||
QStringList list = str.split(QChar(' '));
|
QStringList list = str.split(QChar(' '));
|
||||||
if(list.size() == 6)
|
if(list.size() == 6) // retrocompatibilitry
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
pseudo = list[0];
|
pseudo = list[0];
|
||||||
@ -93,6 +97,34 @@ bool RPGCharacter::fromString(QString str)
|
|||||||
return false;
|
return false;
|
||||||
return true;
|
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
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -482,6 +514,18 @@ bool RPGModule::messageHandler(Message msg)
|
|||||||
return true;
|
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)
|
else if(msg.args.compare("!rpg help") == 0)
|
||||||
{
|
{
|
||||||
answer = privateSay("Commands : register, join, delete, leave, save, stats, list", msg.nick);
|
answer = privateSay("Commands : register, join, delete, leave, save, stats, list", msg.nick);
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "module.h"
|
#include "module.h"
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
#include <QStringList>
|
||||||
|
|
||||||
class User;
|
class User;
|
||||||
|
|
||||||
@ -113,6 +114,9 @@ struct RPGCharacter
|
|||||||
QString pseudo;
|
QString pseudo;
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
|
int gold;
|
||||||
|
QString weapon;
|
||||||
|
QStringList inventory;
|
||||||
User *user;
|
User *user;
|
||||||
|
|
||||||
RPGCharacter(QString myPseudo, QString myPass) :
|
RPGCharacter(QString myPseudo, QString myPass) :
|
||||||
@ -125,7 +129,10 @@ struct RPGCharacter
|
|||||||
user(NULL)
|
user(NULL)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
RPGCharacter(QString serialisationStr) : user(NULL)
|
RPGCharacter(QString serialisationStr) :
|
||||||
|
gold(200),
|
||||||
|
inventory(),
|
||||||
|
user(NULL)
|
||||||
{
|
{
|
||||||
if(!fromString(serialisationStr))
|
if(!fromString(serialisationStr))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user