]>
jfr.im git - irc/gameservirc.git/blob - gameserv/player.cpp
10 #if defined(HAVE_CRYPT_H)
14 #elif defined(HAVE_UNISTD_H)
32 forest_fights
= forestfights
;
39 lastlogin
= time(NULL
);
49 inventory
= new pouch();
53 log("New Player: %s", name
.c_str());
57 Player::Player(char *n
)
59 inventory
= new pouch();
60 reset(); // Set defaults
65 log("New Player: %s", name
.c_str());
69 Player::Player(string n
)
71 inventory
= new pouch();
75 log("New Player: %s", name
.c_str());
81 if (inventory
!= NULL
)
89 output
= new string("Deleting Player");
90 *output
+= ": " + name
;
91 *output
+= " Password: " + password
;
92 log ("%s", output
->c_str());
97 void Player::setPassword(const char *p
)
99 static char saltChars
[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV\
103 salt
[0] = saltChars
[rand() % strlen(saltChars
)];
104 salt
[1] = saltChars
[rand() % strlen(saltChars
)];
107 password
= crypt(p
, salt
);
110 void Player::setRawPassword(const char *p
)
115 void Player::setData(Player
*right
)
120 password
= right
->password
;
125 maxhp
= right
->maxhp
;
126 strength
= right
->strength
;
127 defense
= right
->defense
;
128 level
= right
->level
;
129 forest_fights
= right
->forest_fights
;
130 player_fights
= right
->player_fights
;
131 flags
= right
->flags
;
132 *inventory
= *right
->inventory
;
133 client
= right
->client
;
134 lastcommand
= right
->lastcommand
;
135 lastlogin
= right
->lastlogin
;
145 int num
= rand() % 32767;
146 snprintf(temp
, 16, "Player: %d", num
);
152 log("Setting Player data for %s", name
.c_str());
172 Monster::Monster(Monster
*m
)
177 strength
= m
->strength
;
178 defense
= m
->defense
;
185 Monster::Monster(Monster
&m
)
190 strength
= m
.strength
;
198 Monster::Monster(const Monster
&m
)
203 strength
= m
.strength
;
211 long int Player::setFlags(long int newflags
)
217 long int Player::addFlag(long int flag
)
223 long int Player::remFlag(long int flag
)
229 void Player::setWeapon(item
&weap
)
233 void Player::setArmor(item
&arm
)
238 void Player::setName(string
&n
)
243 void Player::setName(const char *n
)
248 void Player::setLevel(int l
)
250 if (l
> 0 && l
<= REALLEVELS
)
256 void Player::setExp(long int e
)
258 if (e
<= 2000000000 && e
> 0)
264 void Player::setGold(long int g
)
266 if (g
<= 2000000000 && g
>= 0)
270 else if (g
> 2000000000)
276 void Player::setBank(long int b
)
278 if (b
<= 2000000000 && b
>= 0)
282 else if (b
> 2000000000)
288 void Player::setHP(int h
)
298 hp
= maxhp
; // You can't go higher than your maxhp
302 void Player::setMaxHP(int m
)
310 else if (maxhp
> 32000)
316 void Player::setStrength(int s
)
323 else if (strength
> 32000)
329 void Player::setDefense(int d
)
337 else if (defense
> 32000)
343 void Player::setForestFights(int ff
)
347 if (forest_fights
< 0)
351 else if (forest_fights
> 32000)
353 forest_fights
= 32000;
357 void Player::setPlayerFights(int pf
)
361 if (player_fights
< 0)
365 else if (player_fights
> 32000)
367 player_fights
= 32000;
371 void Player::setClient(aClient
*c
)
376 void Player::setMonster(Monster
*m
)
378 fight
= new Monster(m
);
381 void Player::setMyMaster(Monster
*m
)
383 master
= new Monster(m
);
386 void Player::setBattle(aClient
*b
)
391 void Player::addExp(int e
)
393 setExp(getExp() + e
);
396 void Player::addGold(int g
)
398 setGold(getGold() + g
);
401 void Player::addBank(int b
)
403 setBank(getBank() + b
);
406 void Player::addHP(int h
)
411 void Player::addMaxHP(int m
)
413 setMaxHP(getMaxHP() + m
);
416 void Player::addStrength(int s
)
418 setStrength(getStrength() + s
);
421 void Player::addDefense(int d
)
423 setDefense(getDefense() + d
);
426 void Player::addForestFights(int ff
)
428 setForestFights(getForestFights() + ff
);
431 void Player::addPlayerFights(int pf
)
433 setPlayerFights(getPlayerFights() + pf
);
436 void Player::addLevel(int l
)
438 setLevel(getLevel() + l
);
441 void Player::subtractLevel(int l
)
443 setLevel(getLevel() - l
);
446 void Player::subtractExp(long int e
)
448 setExp(getExp() - e
);
451 void Player::subtractGold(long int g
)
453 setGold(getGold() - g
);
456 void Player::subtractBank(long int b
)
458 setBank(getBank() - b
);
461 void Player::subtractHP(int h
)
466 void Player::subtractMaxHP(int m
)
468 setMaxHP(getMaxHP() - m
);
471 void Player::subtractStrength(int s
)
473 setStrength(getStrength() - s
);
476 void Player::subtractDefense(int d
)
478 setDefense(getDefense() - d
);
481 void Player::subtractForestFights(int ff
)
483 setForestFights(getForestFights() - ff
);
486 void Player::subtractPlayerFights(int pf
)
488 setPlayerFights(getPlayerFights() - pf
);
491 void Player::delMonster()
499 void Player::delMaster()
507 void Player::delBattle()
509 // Don't delete the other player's aClient
513 bool Player::operator < (Player
&right
)
515 if (getLevel() < right
.getLevel())
519 else if (getExp() < right
.getExp())
523 else if (getStrength() < right
.getStrength() && getDefense() < right
.getDefense())