]> jfr.im git - irc/gameservirc.git/commitdiff
Began to add the end boss
authorkainazzzo <redacted>
Fri, 7 May 2004 19:16:11 +0000 (19:16 +0000)
committerkainazzzo <redacted>
Fri, 7 May 2004 19:16:11 +0000 (19:16 +0000)
git-svn-id: https://svn.code.sf.net/p/gameservirc/code/trunk@205 bc333340-6410-0410-a689-9d09f3c113fa

gameserv/Changes
gameserv/TODO
gameserv/gameserv.cpp
gameserv/helpfiles/dragon [new file with mode: 0644]
gameserv/helpfiles/help

index af610002347e5175d1ec227535f48dad56e3f63e..87e63ef02b244c233fde0a4c7290970fcac476d7 100644 (file)
@@ -1,4 +1,5 @@
 Version 1.2.3
+* Doubled the required experience for fighting masters - kain
 * Fixed a cosmetic bug (sorta) that caused your HP not to read 0 when
     you're dead (thanks Ricky-S) - kain
 * Fixed a divide by 0 bug that occurred when you attacked, but had no 
index 19f856174f70ad1ec91ba635cf8e28f53af22354..38e76e48568b7458d4a4a7e8cd3b2ae87bec55ac 100644 (file)
@@ -8,7 +8,7 @@ X = Finsihed
 
 * Add a function to check how long until gameserv refreshes
 
-* Gangs of people that can get together and fight other gangs in large 
+- Gangs of people that can get together and fight other gangs in large 
     group battles
     - gang names
     - gangs.dat file with numbers assigned to gangs
@@ -16,6 +16,8 @@ X = Finsihed
        aClient structure based on their gang number
     - group battles would go on order of gang numbers
     - hired mercenaries (npcs)- ricky-s
+    - level 3 and above can be gangs only - macblind
+    - once you beat the game, you can create a gang - kain
 
 * Make config file accept hostnames not just ips
 
index a9b5a5c9bf253c2c477119c047a798b2d87fa17d..5d9b56b1b5f7e8c61e91ca57d04cfd3de6695da2 100644 (file)
@@ -111,6 +111,7 @@ void do_register(char *u);
 void do_list(char *u);
 void do_logout(char *u);
 void do_master(char *u);
+void do_dragon(char *u);
 void do_play(char *u);
 void do_quitg(char *u);
 void do_reset(char *u);
@@ -207,6 +208,8 @@ void gameserv(char *source, char *buf)
        do_inventory(source);
     } else if (stricmp(cmd, "MASTER") == 0) {
        do_master(source);
+    } else if (stricmp(cmd, "DRAGON") == 0) {
+       do_dragon(source);
     } else if (stricmp(cmd, "STORE") == 0) {
        do_store(source);
     } else if (stricmp(cmd, "BANK") == 0) {
@@ -2699,6 +2702,69 @@ void do_bank(char *u)
 
 }
 
+void do_dragon(char *u)
+{
+    aClient *user;
+
+    if (!(user = find(u)))
+    {
+       notice(s_GameServ, u, "Fatal error. Contact a(n) %S admin. buf: %s", strtok(NULL, ""));
+       return;
+    }
+    else if (isIgnore(user))
+    {
+       #ifdef DEBUGMODE
+           log("Ignoring %s.", user->getNick());
+       #endif
+       return;
+    }
+    else if (!is_playing(user))
+    {
+       notice(s_GameServ, u, "You must be playing to fight the dragon!");
+       return;
+    }
+    else if (is_fighting(user))
+    {
+       notice(s_GameServ, u, "You are already in a fight. How will you fight the almighty dragon!?");
+       return;
+    }
+    else if (!isAlive(user->stats))
+    {
+       notice(s_GameServ, u, "You're dead. Wait until tomorrow to see your master!");
+       return;
+    }
+    else if (user->stats->level < 12)
+    {
+       notice(s_GameServ, u, "You fool! Only those strong enough "\
+               "to vanquish any foe should DARE fight the dragon!");
+       notice(s_GameServ, u, "To put it in terms you can understand: "\
+               "You are too weak. You must be Level 12!");
+    }
+
+    updateTS(user->stats);
+
+    char *cmd = strtok(NULL, " ");
+    Player *p = user->stats;
+    p->fight = new Monster(boss);
+    notice(s_GameServ, u, "You approach the dragon's lair cautiously.");
+    notice(s_GameServ, u, "The stench of sulfer fills the air as a "\
+       "deep, red fog rolls in. The air is filled with the "\
+       "heated mist of deadly fire from beyond the cave "\
+       "entrance.");
+    notice(s_GameServ, u, "You adjust your %s, tighten your grip on "\ 
+       "your %s, and venture into the hot, dark cave. "\
+       "You are surprised at the angle of descent as you climb "\
+       "lower and lower, deeper into the dragon's den.");
+    notice(s_GameServ, u, "You come to the end of the cave to find "\
+       "a tooth. It is a large tooth... bigger than your torso."\
+       " Suddenly the darkness lifts from the gleam of an eye "\
+       " staring into your soul! The eye is large... HUGE!");
+    notice(s_GameServ, u, "Just then you notice the eye begin to "\
+       "glare orange! The tooth is moving... but it is still too "\
+       "dark for you to make out.... THE DRAGON! You see it!");
+    display_monsters(u);
+}
+
 void do_master(char *u)
 {
     aClient *user;
@@ -2749,41 +2815,42 @@ void do_master(char *u)
        switch(p->level)
        {
            case 1:
-               need = 100;
+               need = 200;
                break;
            case 2:
-               need = 400;
+               need = 800;
                break;
            case 3:
-               need = 1000;
+               need = 2000;
                break;
            case 4:
-               need = 4000;
+               need = 8000;
                break;
            case 5:
-               need = 10000;
+               need = 20000;
                break;
            case 6:
-               need = 40000;
+               need = 80000;
                break;
            case 7:
-               need = 100000;
+               need = 200000;
                break;
            case 8:
-               need = 400000;
+               need = 800000;
                break;
            case 9:
-               need = 1000000;
+               need = 2000000;
                break;
            case 10:
-               need = 4000000;
+               need = 8000000;
                break;
            case 11:
-               need = 10000000;
+               need = 20000000;
                break;
            case 12:
                need = p->exp + 1;
                notice(s_GameServ, u, "You are at level 12. You are the master. What's left? The DRAGON!");
+               return;
                break;
            default:
                need = p->exp + 1; // Unknown level... don't let them fight a fake master!
diff --git a/gameserv/helpfiles/dragon b/gameserv/helpfiles/dragon
new file mode 100644 (file)
index 0000000..18e8832
--- /dev/null
@@ -0,0 +1,5 @@
+This command lets you fight the DRAGON, therefore completing your quest!
+If you can beat the dragon, you will be awarded VERY generously!
+
+SYNTAX: \ 2DRAGON\ 2 
+Example: /msg %S \ 2DRAGON\ 2
index bff6aa2a726667f0e409db659b83b9df725a6065..6fca4120ec28e8d366a9f3c7a71b9489f96ab0f3 100644 (file)
@@ -5,6 +5,7 @@ Here are the basic commands available to everyone:
     \ 2ATTACK\ 2          \1fAttack with your weapon while in battle\1f
     \ 2ADMIN\ 2           \1fIdentify yourself as a gameserv administrator\1f
     \ 2BANK\ 2            \1fWithdraw and deposit gold from your bank account\1f
+    \ 2DRAGON\ 2          \1fAttempt to fight the almighty DRAGON!\1f
     \ 2FIGHT\ 2           \1fFight another player in the realm\1f
     \ 2HEAL\ 2            \1fHeal yourself. Replenishes Hit points\1f
     \ 2HELP\ 2            \1fBrings up this help menu\1f