X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/9bcbf9a96f8b99c41a5ad270bb56ea18a1c424b5..11f32a66ef4b0b3ee957af30a8d5b235a18aac9f:/gameserv/gameserv.cpp diff --git a/gameserv/gameserv.cpp b/gameserv/gameserv.cpp index 438ac1b..33237ac 100644 --- a/gameserv/gameserv.cpp +++ b/gameserv/gameserv.cpp @@ -169,6 +169,7 @@ void gameserv(char *source, char *buf) { refreshall(); clearNews(todaysnews); + saveNews(newsdata, todaysnews); day = curday; save_day(); // here i come to save the day! } @@ -1356,9 +1357,20 @@ void do_use(char *u) return; } int oldhealing = user->stats->hp; + user->stats->hp += (10 * user->stats->level) + (rand() % 10) * user->stats->level; + if (user->stats->hp - user->stats->maxhp >= 100) + { + user->stats->hp = user->stats->maxhp + 100; + + if (oldhealing >= (user->stats->maxhp + 100)) + { + notice(s_GameServ, u, "You cannot hold anymore HP!"); + return; + } + } + notice(s_GameServ, u, "You hastiliy gulp down the flask of cool life-giving waters."); notice(s_GameServ, u, "Rejuvination spreads throughout your body."); - user->stats->hp += (10 * user->stats->level) + (rand() % 10) * user->stats->level; notice(s_GameServ, u, "You gain %d HP!", user->stats->hp - oldhealing); p->decHealing(); if (player_fight(user)) @@ -2116,6 +2128,19 @@ int load_gs_dbase() return 0; } + for (int x = 0; x < U_TABLE_SIZE; x++) + { + ListNode *tempNode; + tempNode = players[x].First(); + while (tempNode) + { + if (tempNode->getData()->stats->client) + logout(tempNode->getData()->stats->client); + tempNode = tempNode->Next(); + } + players[x].deleteNodes(); + } + while (infile.getline(buf, 1024, '\n')) { temp = new aClient; @@ -2509,7 +2534,6 @@ void do_tavern(char *u) else if (stricmp(cmd, "BUY") == 0) { char *chnum = strtok(NULL, " "); - int num = stringtoint(chnum); if (!chnum) { @@ -2517,6 +2541,8 @@ void do_tavern(char *u) notice(s_GameServ, u, "Example: /msg %S TAVERN BUY 1"); return; } + int num = stringtoint(chnum); + if (num < 1 || num > 4) { notice(s_GameServ, u, "Invalid Choice!"); @@ -2646,7 +2672,12 @@ void do_bank(char *u) notice(s_GameServ, u, "I don't know how to convert alphabet letters into currency, sire!"); return; } - + if (stringtoint(amount) < 0) + { + notice(s_GameServ, u, "Sorry. This bank is not licensed "\ + "to handle such sums of cash, noble Lord."); + return; + } p = user->stats; if (stricmp(cmd, "DEPOSIT") == 0)