added world map, players can move
This commit is contained in:
parent
da3cce6c72
commit
455455dca7
@ -24,6 +24,32 @@ void RPGModule::playerLeave(User *user)
|
||||
}
|
||||
}
|
||||
|
||||
QString RPGModule::playerTravel(RPGCharacter *c, QString dir)
|
||||
{
|
||||
if(dir.compare("north") == 0 || dir.compare("n") == 0)
|
||||
{
|
||||
c->y -= 1;
|
||||
return QString("%1 walks north and is still in the forest").arg(c->pseudo);
|
||||
}
|
||||
else if(dir.compare("south") == 0 || dir.compare("s") == 0)
|
||||
{
|
||||
c->y += 1;
|
||||
return QString("%1 walks south and is still in the forest").arg(c->pseudo);
|
||||
}
|
||||
else if(dir.compare("west") == 0 || dir.compare("w") == 0)
|
||||
{
|
||||
c->x -= 1;
|
||||
return QString("%1 walks west and is still in the forest").arg(c->pseudo);
|
||||
}
|
||||
else if(dir.compare("east") == 0 || dir.compare("e") == 0)
|
||||
{
|
||||
c->x += 1;
|
||||
return QString("%1 walks east and is still in the forest").arg(c->pseudo);
|
||||
}
|
||||
else
|
||||
return QString("%1 is not a valid direction, use : north, south, west, east");
|
||||
}
|
||||
|
||||
bool RPGModule::messageHandler(Message msg)
|
||||
{
|
||||
User* src = getUsers()->getFromNick(msg.nick);
|
||||
@ -71,6 +97,7 @@ bool RPGModule::messageHandler(Message msg)
|
||||
{
|
||||
answer = say(QString("%1 (%2) left the RPG").arg(charOnline[src]->pseudo).arg(src->getNick()));
|
||||
playerLeave(src);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(msg.args.compare("!rpg list") == 0)
|
||||
@ -94,6 +121,15 @@ bool RPGModule::messageHandler(Message msg)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(msg.args.startsWith("go "))
|
||||
{
|
||||
QStringList paramList = msg.args.split(' ');
|
||||
if(charOnline.count(src) > 0 && paramList.size() == 2)
|
||||
{
|
||||
answer = say(playerTravel(charOnline[src], paramList[1]));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if(msg.args.compare("!rpg help") == 0)
|
||||
{
|
||||
answer = privateSay("Create new character (works only in private message) : !rpg register [name of character] [password]", msg.nick);
|
||||
|
@ -6,6 +6,34 @@
|
||||
|
||||
class User;
|
||||
|
||||
const char WORLDMAP[25][26] = {
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX"};
|
||||
|
||||
|
||||
struct RPGCharacter
|
||||
{
|
||||
int level;
|
||||
@ -21,8 +49,8 @@ struct RPGCharacter
|
||||
xp(0),
|
||||
password(myPass),
|
||||
pseudo(myPseudo),
|
||||
x(0),
|
||||
y(0),
|
||||
x(13),
|
||||
y(13),
|
||||
user(NULL)
|
||||
{}
|
||||
};
|
||||
@ -60,6 +88,7 @@ public:
|
||||
|
||||
void playerJoin(User* user, RPGCharacter *c);
|
||||
void playerLeave(User* user);
|
||||
QString playerTravel(RPGCharacter *c, QString dir);
|
||||
|
||||
virtual bool messageHandler(Message msg);
|
||||
virtual QString getName() {return QString("rpg");}
|
||||
|
Loading…
x
Reference in New Issue
Block a user