]>
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());
85 output
= new string("Deleting Player");
89 *output
+= ": " + name
;
93 *output
+= " Password: " + password
;
94 log ("%s", output
->c_str());
98 void Player::setPassword(const char *p
)
100 static char saltChars
[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV\
104 salt
[0] = saltChars
[rand() % strlen(saltChars
)];
105 salt
[1] = saltChars
[rand() % strlen(saltChars
)];
108 password
= crypt(p
, salt
);
111 void Player::setRawPassword(const char *p
)
116 void Player::setData(Player
*right
)
121 password
= right
->password
;
126 maxhp
= right
->maxhp
;
127 strength
= right
->strength
;
128 defense
= right
->defense
;
129 level
= right
->level
;
130 forest_fights
= right
->forest_fights
;
131 player_fights
= right
->player_fights
;
132 flags
= right
->flags
;
133 *inventory
= *right
->inventory
;
134 client
= right
->client
;
135 lastcommand
= right
->lastcommand
;
136 lastlogin
= right
->lastlogin
;
146 int num
= rand() % 32767;
147 snprintf(temp
, 16, "Player: %d", num
);
153 log("Setting Player data for %s", name
.c_str());
173 Monster::Monster(Monster
*m
)
178 strength
= m
->strength
;
179 defense
= m
->defense
;
186 Monster::Monster(Monster
&m
)
191 strength
= m
.strength
;
199 Monster::Monster(const Monster
&m
)
204 strength
= m
.strength
;
212 long int Player::setFlags(long int newflags
)
218 long int Player::addFlag(long int flag
)
224 long int Player::remFlag(long int flag
)
230 void Player::setWeapon(item
&weap
)
234 void Player::setArmor(item
&arm
)
239 void Player::setName(string
&n
)
244 void Player::setName(const char *n
)
249 void Player::setLevel(int l
)
251 if (l
> 0 && l
<= REALLEVELS
)
257 void Player::setExp(long int e
)
259 if (e
<= 2000000000 && e
> 0)
265 void Player::setGold(long int g
)
267 if (g
<= 2000000000 && g
>= 0)
271 else if (g
> 2000000000)
277 void Player::setBank(long int b
)
279 if (b
<= 2000000000 && b
>= 0)
283 else if (b
> 2000000000)
289 void Player::setHP(int h
)
299 hp
= maxhp
; // You can't go higher than your maxhp
303 void Player::setMaxHP(int m
)
311 else if (maxhp
> 32000)
317 void Player::setStrength(int s
)
324 else if (strength
> 32000)
330 void Player::setDefense(int d
)
338 else if (defense
> 32000)
344 void Player::setForestFights(int ff
)
348 if (forest_fights
< 0)
352 else if (forest_fights
> 32000)
354 forest_fights
= 32000;
358 void Player::setPlayerFights(int pf
)
362 if (player_fights
< 0)
366 else if (player_fights
> 32000)
368 player_fights
= 32000;
372 void Player::setClient(aClient
*c
)
377 void Player::setMonster(Monster
*m
)
379 fight
= new Monster(m
);
382 void Player::setMyMaster(Monster
*m
)
384 master
= new Monster(m
);
387 void Player::setBattle(aClient
*b
)
392 void Player::addExp(int e
)
394 setExp(getExp() + e
);
397 void Player::addGold(int g
)
399 setGold(getGold() + g
);
402 void Player::addBank(int b
)
404 setBank(getBank() + b
);
407 void Player::addHP(int h
)
412 void Player::addMaxHP(int m
)
414 setMaxHP(getMaxHP() + m
);
417 void Player::addStrength(int s
)
419 setStrength(getStrength() + s
);
422 void Player::addDefense(int d
)
424 setDefense(getDefense() + d
);
427 void Player::addForestFights(int ff
)
429 setForestFights(getForestFights() + ff
);
432 void Player::addPlayerFights(int pf
)
434 setPlayerFights(getPlayerFights() + pf
);
437 void Player::addLevel(int l
)
439 setLevel(getLevel() + l
);
442 void Player::subtractLevel(int l
)
444 setLevel(getLevel() - l
);
447 void Player::subtractExp(long int e
)
449 setExp(getExp() - e
);
452 void Player::subtractGold(long int g
)
454 setGold(getGold() - g
);
457 void Player::subtractBank(long int b
)
459 setBank(getBank() - b
);
462 void Player::subtractHP(int h
)
467 void Player::subtractMaxHP(int m
)
469 setMaxHP(getMaxHP() - m
);
472 void Player::subtractStrength(int s
)
474 setStrength(getStrength() - s
);
477 void Player::subtractDefense(int d
)
479 setDefense(getDefense() - d
);
482 void Player::subtractForestFights(int ff
)
484 setForestFights(getForestFights() - ff
);
487 void Player::subtractPlayerFights(int pf
)
489 setPlayerFights(getPlayerFights() - pf
);
492 void Player::delMonster()
500 void Player::delMaster()
508 void Player::delBattle()
510 // Don't delete the other player's aClient