summaryrefslogtreecommitdiff
path: root/npc/functions
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2008-11-02 22:45:17 +0000
committerJared Adams <jaxad0127@gmail.com>2008-11-02 22:45:17 +0000
commitec9be0a2967b38955d26e337b05bc3a042ac4544 (patch)
treee1ef509c78c8a3fe777b4adb0f4c650364fa55cb /npc/functions
parent2fd04617279829d54349b325bacb4c72addebfe4 (diff)
downloadserverdata-ec9be0a2967b38955d26e337b05bc3a042ac4544.tar.gz
serverdata-ec9be0a2967b38955d26e337b05bc3a042ac4544.tar.bz2
serverdata-ec9be0a2967b38955d26e337b05bc3a042ac4544.tar.xz
serverdata-ec9be0a2967b38955d26e337b05bc3a042ac4544.zip
Branch data for eAthena
Diffstat (limited to 'npc/functions')
-rw-r--r--npc/functions/banker.txt160
-rw-r--r--npc/functions/barber.txt66
-rw-r--r--npc/functions/game_rules.txt108
-rw-r--r--npc/functions/inn.txt30
-rw-r--r--npc/functions/mob_points.txt42
-rw-r--r--npc/functions/process_equip.txt27
-rw-r--r--npc/functions/slot_machine.txt35
-rw-r--r--npc/functions/soul_menhir.txt34
8 files changed, 502 insertions, 0 deletions
diff --git a/npc/functions/banker.txt b/npc/functions/banker.txt
new file mode 100644
index 00000000..00a85bab
--- /dev/null
+++ b/npc/functions/banker.txt
@@ -0,0 +1,160 @@
+//
+
+function script Banker {
+ mes "[" + @npcName$ + "]";
+ mes "\"Welcome to the bank!";
+ mes "How can I help you?\"";
+ next;
+ menu "Deposit",L_Dep,"Withdraw",L_With,"Check my balance",L_Balance,"Nevermind",L_Nev;
+
+L_Dep:
+ mes "[" + @npcName$ + "]";
+ mes "\"How much would you like to deposit?\"";
+ next;
+ menu
+ "1,000 GP", D_1,
+ "5,000 GP", D_5,
+ "10,000 GP", D_10,
+ "25,000 GP", D_25,
+ "50,000 GP", D_50,
+ "100,000 GP", D_100,
+ "250,000 GP", D_250,
+ "500,000 GP", D_500,
+ "1,000,000 GP", D_1000,
+ "All of my money", D_All,
+ "I've changed my mind", L_Nev;
+
+D_1:
+ if (zeny<1000) goto L_NoMoney;
+ set @Amount, 1000;
+ goto L_Deposit;
+D_5:
+ if (zeny<5000) goto L_NoMoney;
+ set @Amount, 5000;
+ goto L_Deposit;
+D_10:
+ if (zeny<10000) goto L_NoMoney;
+ set @Amount, 10000;
+ goto L_Deposit;
+D_25:
+ if (zeny<25000) goto L_NoMoney;
+ set @Amount, 25000;
+ goto L_Deposit;
+D_50:
+ if (zeny<50000) goto L_NoMoney;
+ set @Amount, 50000;
+ goto L_Deposit;
+D_100:
+ if (zeny<100000) goto L_NoMoney;
+ set @Amount, 100000;
+ goto L_Deposit;
+D_250:
+ if (zeny<250000) goto L_NoMoney;
+ set @Amount, 250000;
+ goto L_Deposit;
+D_500:
+ if (zeny<500000) goto L_NoMoney;
+ set @Amount, 500000;
+ goto L_Deposit;
+D_1000:
+ if (zeny<1000000) goto L_NoMoney;
+ set @Amount, 1000000;
+ goto L_Deposit;
+D_All:
+ if (zeny<1) goto L_NoMoney;
+ set @Amount, zeny;
+ goto L_Deposit;
+
+L_Deposit:
+ set zeny, zeny - @Amount;
+ set BankAccount, BankAccount + @Amount;
+ goto L_Balance;
+
+L_With:
+ mes "[" + @npcName$ + "]";
+ mes "\"How much would you like to withdraw?\"";
+ next;
+ menu
+ "1,000 GP", W_1,
+ "5,000 GP", W_5,
+ "10,000 GP", W_10,
+ "25,000 GP", W_25,
+ "50,000 GP", W_50,
+ "100,000 GP", W_100,
+ "250,000 GP", W_250,
+ "500,000 GP", W_500,
+ "1,000,000 GP", W_1000,
+ "All of my money", W_All,
+ "I've changed my mind", L_Nev;
+
+W_1:
+ if (BankAccount < 1000) goto L_NoMoney;
+ set @Amount, 1000;
+ goto L_Withdraw;
+
+W_5:
+ if (BankAccount < 5000) goto L_NoMoney;
+ set @Amount, 5000;
+ goto L_Withdraw;
+
+W_10:
+ if (BankAccount < 10000) goto L_NoMoney;
+ set @Amount, 10000;
+ goto L_Withdraw;
+
+W_25:
+ if (BankAccount < 25000) goto L_NoMoney;
+ set @Amount, 25000;
+ goto L_Withdraw;
+
+W_50:
+ if (BankAccount < 50000) goto L_NoMoney;
+ set @Amount, 50000;
+ goto L_Withdraw;
+
+W_100:
+ if (BankAccount < 100000) goto L_NoMoney;
+ set @Amount, 100000;
+ goto L_Withdraw;
+
+W_250:
+ if (BankAccount < 250000) goto L_NoMoney;
+ set @Amount, 250000;
+ goto L_Withdraw;
+
+W_500:
+ if (BankAccount < 500000) goto L_NoMoney;
+ set @Amount, 500000;
+ goto L_Withdraw;
+
+W_1000:
+ if (BankAccount < 1000000) goto L_NoMoney;
+ set @Amount, 1000000;
+ goto L_Withdraw;
+
+W_All:
+ if (BankAccount < 1) goto L_NoMoney;
+ set @Amount, BankAccount;
+ goto L_Withdraw;
+
+L_Withdraw:
+ set zeny, zeny + @Amount;
+ set BankAccount, BankAccount - @Amount;
+ goto L_Balance;
+
+L_Balance:
+ mes "[" + @npcName$ + "]";
+ mes "\"Your current bank balance is:";
+ mes BankAccount + " GP\"";
+ return;
+
+L_Nev:
+ mes "[" + @npcName$ + "]";
+ mes "\"Goodbye then.\"";
+ return;
+
+L_NoMoney:
+ mes "[" + @npcName$ + "]";
+ mes "\"Oh dear, it seems that you don't have enough money.\"";
+ return;
+}
diff --git a/npc/functions/barber.txt b/npc/functions/barber.txt
new file mode 100644
index 00000000..0edaab73
--- /dev/null
+++ b/npc/functions/barber.txt
@@ -0,0 +1,66 @@
+//
+
+function script Barber {
+ menu
+ "Change my style", L_Style,
+ "Change my color", L_Color,
+ "Nah, I'm fine", L_Done;
+
+L_Style:
+ if (Sex == 0) goto L_Style_Female;
+
+L_Style_Male:
+ menu
+ "Bald", -,
+ "Ponytail", -,
+ "Bowl cut", -,
+ "Combed back", -,
+ "Emo", -,
+ "Mohawk", -,
+ "Pompadour", -,
+ "Center parting", -,
+ "Supprise me", -,
+ "Nah, I'm fine", close;
+ goto L_Process_Style;
+
+L_Style_Female:
+ menu
+ "Bald", -,
+ "Long and slick", -,
+ "Short and curly", -,
+ "Ponytail", -,
+ "Pigtails", -,
+ "Long and curly", -,
+ "Parted", -,
+ "Short and slick", -,
+ "Supprise me", -,
+ "Nah, I'm fine", L_Done;
+
+L_Process_Style:
+ set @style, @menu - 1;
+ if (@style == 8) set @style, rand(8);
+ setlook 1, @style;
+ return;
+
+L_Color:
+ menu
+ "Brunette", -,
+ "Green", -,
+ "Dark red", -,
+ "Light purple", -,
+ "Gray", -,
+ "Blonde", -,
+ "Teal", -,
+ "Light red", -,
+ "Blue", -,
+ "Dark purple", -,
+ "Supprise me", -,
+ "Nah, I'm fine", L_Done;
+ set @color, @menu - 1;
+ if (@color == 10) set @color, rand(10);
+ setlook 6, @color;
+ return;
+
+L_Done:
+ return;
+}
diff --git a/npc/functions/game_rules.txt b/npc/functions/game_rules.txt
new file mode 100644
index 00000000..5c55a76d
--- /dev/null
+++ b/npc/functions/game_rules.txt
@@ -0,0 +1,108 @@
+//
+
+function script GameRules {
+ menu
+ "English", L_English,
+ "Deutsch (German)", L_German,
+ "Nederlands (Dutch)", L_Dutch,
+ "Dansk (Danish)", L_Danish,
+ "Français (French)", L_French,
+ "Español (Spanish)", L_Spanish,
+ "Português (Portuguese)", L_Portuguese;
+ if (@canSkip) return;
+
+L_English:
+ mes "Players breaking the following rules may be banned (up to and including a permanent ban) or have their characters reset at the GM's discretion:";
+ mes "1. Do not abuse other players (insults, swearing, and the like directed to a particular person or persons)";
+ mes "2. No bots (and botting means ANY activity while away from keyboard)";
+ mes "3. No spamming / flooding (including trade spam)";
+ mes "4. No begging";
+ mes "5. Speak English on public chat";
+ mes "6. Treat others the same way you would like to be treated (RFC 1855)";
+ next;
+ mes "Botting will be determined by talking to players who are moving and/or attacking.";
+ next;
+ goto L_End;
+
+L_German:
+ mes "Wir bitten um das Einhalten der folgenden Regeln:";
+ mes "1. Keine Beleidigungen, Schimpfwoerter, Schmaehungen oder Rufmord";
+ mes "2. Keine `bots' (automatisierte Spieler). Dies beinhaltet JEGLICHE Teilnahme am Spiel waehrend der Abwesenheit des Spielers.";
+ mes "3. Kein `spamming' oder `flooding' (schnelles Wiederholen von Nachrichten oder Aufforderungen zum Warenhandel).";
+ mes "4. Kein Betteln.";
+ mes "5. Englisch ist die einzige zulaessige Sprache im oeffentlichen Raum.";
+ mes "6. Behandelt andere so, wie Ihr behandelt werden wollt. (RFC 1855)";
+ next;
+ mes "Jegliche Regelverstoesse koennen koennen bestraft werden, entweder durch ein Zuruecksetzen der Charaktereigenschaften und -besitztuemer auf den Ausgangszustand, oder durch einen temporaeren oder permanenten Ausschluss aus dem Spiel. ";
+ next;
+ goto L_End;
+
+L_Dutch:
+ mes "Spelers die de volgende regels overtreden lopen het risico gebanned te worden (oplopend tot een permanente ban) of een reset te krijgen:";
+ mes "1. Misbruik geen andere spelers (vloeken, groftaal gebruik, enzovoort tegen een bepaalde persoon of personen)";
+ mes "2. Geen 'bots' (geautomatiseerde speler) en botten betekend ELKE activiteit terwijl je van je toetsenboord weg bent";
+ mes "3. Verboden te 'spammen' (inclusief het spammen van ruilaanvragen)";
+ mes "4. Verboden te bedelen";
+ mes "5. Spreek Engels op de publieke chat";
+ mes "6. Behandel andere zoals ook jij behandeld wilt worden (RFC 1855)";
+ next;
+ mes "Botten word bepaald door te praten tegen spelers die aan het bewegen en/of aanvallen zijn.";
+ next;
+ goto L_End;
+
+L_Danish:
+ mes "Spillere der ikke overholder de følgende regner, bliver måske banned (op til et permanent ban) eller får deres bruger nulstillet af en spiller mester (GM).";
+ mes "1. Misbrug ikke andre spillere (fornærm dem ikke, sværg ikke og mobning er forbudt)";
+ mes "2. Det er forbudt, at bruge bots (Botting betyder at man er aktiv inde i spillet, imens man er væk fra ens keyboard)";
+ mes "3. Det er forbudt, at spamme i chatten eller lave trade spam (spamme betyder at man sender mange beskeder efter hinanden)";
+ mes "4. Det er forbudt, at tigge (for eksempel: Må jeg ikke nok få dit sværd, kom nu, vær nu sød... og så videre)";
+ mes "5. Det er forbudt, at snakke andre sprog end Engelsk i den åbne chat. (Dog er det lovligt henover /Whisper)";
+ mes "6. Husk at gøre mod andre, som du vil have de skal gøre imod dig (opfør dig ordenligt!) (RFC 1855)";
+ next;
+ mes "Botting vil blive fastlagt på grundlag af, at man snakker til andre spillere, der går rundt og/eller der angriber.";
+ next;
+ goto L_End;
+
+L_French:
+ mes "Les joueurs ne respectant pas les regles suivantes pourront, à la discretion des moderateurs (GM), etre bannis (jusqu'au banissement eternel inclus) ou avoir leur personnage reinitialise :";
+ mes "1. Ne manquez pas de respect envers les autres joueurs (insultes, language grossier, et autres choses du meme genre à l'intention d'un(e) joueur(se) en particulier ou d'un groupe de joueurs(ses))";
+ mes "2. N'utilisez pas de \"bot\" (ceci inclus n'importe quelle activite dans le jeu en etant loin du clavier, dont poser un objet sur le clavier pour attaquer automatiquement les monstres)";
+ mes "3. Ne faites pas de publicite inadequate (spam) et de repetitions intempestives (flood) (ceci inclus la repetition de demande de troc (trade))";
+ mes "4. Ne demandez pas d'items ou d'argent (les echanges doivent se faire de preference sur forums.themanaworld.org)";
+ mes "5. Parlez anglais dans les salons de discussions publics (principalement en ville)";
+ mes "6. Traitez les autres de la meme maniere que vous voudriez etre traite(e) (RFC 1855)";
+ next;
+ mes "L'utilisation de \"bot\" sera determinee en parlant aux joueurs(ses) en train de bouger et/ou d'attaquer.";
+ next;
+ goto L_End;
+
+L_Spanish:
+ mes "Reproductores de romper las reglas siguientes pueden ser prohibidas (hasta e incluyendo una prohibición permanente) o restablecer sus personajes en la discreción del Maestro de Juego:";
+ mes "1. No abuse de otros jugadores (insultos, palabrotas, y al igual que la dirigida a una persona en particular o personas)";
+ mes "2. No los robots (y el uso de trampas será entiende cualquier actividad, mientras que fuera de teclado)";
+ mes "3. No envío de spam o de inundaciones (incluyendo el comercio spam)";
+ mes "4. No mendicidad";
+ mes "5. Habla Inglés público en el chat";
+ mes "6. Trata a los demás de la misma manera que te gustaría ser tratado (RFC 1855)";
+ next;
+ mes "El uso de trampas será determinado por hablar con los jugadores que se están moviendo y / o atacar.";
+ next;
+ goto L_End;
+
+L_Portuguese:
+ mes "Jogadores que quebrarem as regras que se seguem serão banidos (temporáriamente ou permanentemente), ou a possibilidade dos caracteres serem limpos à descrição do Mestre do Jogo (GM).";
+ mes "1. Não tratar mal os outros jogadores (isto, insultar, dizer palavrões ou chamar nomes a pessoas em particular, etc.)";
+ mes "2. Proibido \"botting\", que quer dizer qualquer actividade do caracter enquanto o jogador estiver longe do teclado.";
+ mes "3. Não abusar da caixa de texto com mensagens repetitivas, ou abusar da função de trocar com outros jogadores.";
+ mes "4. Pedintes serão ignorados, ou banidos.";
+ mes "5. Fale inglês em lugares publicos.";
+ mes "6. Trate os outros da mesma maneira que quer ser tratado(a). (RFC 1855)";
+ next;
+ mes "O \"botting\" será determinado, falando com os jogadores que se movem e/ou atacam.";
+ next;
+ goto L_End;
+
+L_End:
+ set TUT_var, TUT_var | 1;
+ return;
+}
diff --git a/npc/functions/inn.txt b/npc/functions/inn.txt
new file mode 100644
index 00000000..770f17be
--- /dev/null
+++ b/npc/functions/inn.txt
@@ -0,0 +1,30 @@
+// INN
+
+function script Inn {
+ mes "[" + @npcName$ + "]";
+ mes "\"Would you like to rest? It's only " + @cost + " gp.\"";
+ next;
+
+ menu
+ "Yes", -,
+ "No", L_No;
+
+ if (zeny < @cost) goto L_NoMoney;
+ set zeny, zeny - @cost;
+ heal 10000, 10000;
+
+ mes "[" + @npcName$ + "]";
+ mes "\"Sleep well!\"";
+ next;
+ close;
+
+L_No:
+ mes "[" + @npcName$ + "]";
+ mes "\"See you.\"";
+ close;
+
+L_NoMoney:
+ mes "[" + @npcName$ + "]";
+ mes "\"You don't have enough money to stay here.\"";
+ close;
+}
diff --git a/npc/functions/mob_points.txt b/npc/functions/mob_points.txt
new file mode 100644
index 00000000..9e8dad92
--- /dev/null
+++ b/npc/functions/mob_points.txt
@@ -0,0 +1,42 @@
+// Mob points
+
+function script MobPoints {
+ if (@mobID < 1002) return;
+
+ setarray @points,
+ 1, // Maggot
+ 2, // Scorpion
+ 20, // Red Scorpion
+ 10, // Green Slime
+ 30, // Giant Maggot
+ 15, // Yellow Slime
+ 25, // Red Slime
+ 45, // Black Scorpion
+ 50, // Snake
+ 4, // Fire Goblin
+ 55, // Spider
+ 23, // Evil Mushroom
+ 35, // Flower
+ 40, // Santa Slime
+ 15, // Rudolph Slime
+ 2, // Bat
+ 16, // Pinkie
+ 17, // Shroom
+ 14, // Fluffy
+ 25, // Cave Snake
+ 100, // Jack-O
+ 80, // Fire Skull
+ 80, // Poison Skull
+ 20, // Stumpy
+ 70, // Mountain Snake
+ 15, // Easter Fluffy
+ 40, // Mouboo
+ 0, // Mauve Plant
+ 0, // Gamboge Plant
+ 0, // Cobalt Plant
+ 0, // Alizarin Plant
+ 20, // Sea Slime
+ 0; // Silk Worm
+
+ if (MPQUEST == 1) set Mobpt, Mobpt + @points[@mobID - 1002];
+}
diff --git a/npc/functions/process_equip.txt b/npc/functions/process_equip.txt
new file mode 100644
index 00000000..6a56dcbc
--- /dev/null
+++ b/npc/functions/process_equip.txt
@@ -0,0 +1,27 @@
+//
+
+function script ProcessEquip {
+ set @head, getequipid(equip_head);
+ set @torso, getequipid(equip_torso);
+ set @legs, getequipid(equip_legs);
+
+ set @torsoB, @torso;
+ if (@torsoB >= 2050 && @torsoB <= 2059) set @torsoB, 1202; // Cotton shirt
+ if (@torsoB >= 2060 && @torsoB <= 2069) set @torsoB, 624; // V Neck
+ if (@torsoB >= 2070 && @torsoB <= 2079) set @torsoB, 564; // T Neck
+ if (@torsoB >= 2080 && @torsoB <= 2089) set @torsoB, 720; // Silk Robe
+ if (@torsoB >= 2090 && @torsoB <= 2099) set @torsoB, 688; // Tanktop
+ if (@torsoB >= 2120 && @torsoB <= 2129) set @torsoB, 689; // Short tanktop
+ set @torsoC, cNone;
+ if (@torso == 1202 || @torso == 624 || @torso == 564 || @torso == 688 || @torso == 689 || @torso == 720) set @torsoC, cWhite;
+ if (@torso >= 2050) set @torsoC, @torso % 10;
+
+ set @legsB, @legs;
+ if (@legsB >= 2100 && @legsB <= 2109) set @legsB, 632; // Cotton skirt
+ if (@legsB >= 2110 && @legsB <= 2119) set @legsB, 586; // Cotton shorts
+ set @legsC, cNone;
+ if (@legs == 632 || @legs == 586) set @legsC, cWhite;
+ if (@legs >= 2050) set @legsC, @legs % 10;
+
+ return;
+}
diff --git a/npc/functions/slot_machine.txt b/npc/functions/slot_machine.txt
new file mode 100644
index 00000000..024a2e8a
--- /dev/null
+++ b/npc/functions/slot_machine.txt
@@ -0,0 +1,35 @@
+//
+
+function script SlotMachine {
+ mes "Pull the lever...";
+ next;
+ menu
+ "Pull", L_Play,
+ "Maybe later", -;
+ close;
+
+L_Play:
+ if(countitem(503) < 1) goto L_NoCoin;
+ delitem 503, 1;
+ set @Temp1,rand(7);
+ set @Temp2,rand(7);
+ set @Temp3,rand(7);
+ mes "Numbers: " + @Temp1 + "/" + @Temp2 + "/" + @Temp3 + ".";
+ next;
+
+ if(@Temp1 != @Temp2) goto L_Lost;
+ if(@Temp2 != @Temp3) goto L_Lost;
+ if(@Temp1 != @Temp3) goto L_Lost;
+ mes "Congratulations! You won!";
+ mes "You get 10 casino coins";
+ getitem 503, 10;
+ close;
+
+L_Lost:
+ mes "You lost!";
+ close;
+
+L_NoCoin:
+ mes "Insert coin";
+ close;
+}
diff --git a/npc/functions/soul_menhir.txt b/npc/functions/soul_menhir.txt
new file mode 100644
index 00000000..b51dc593
--- /dev/null
+++ b/npc/functions/soul_menhir.txt
@@ -0,0 +1,34 @@
+function script SoulMenhir {
+ mes "[Soul Menhir]";
+ mes "(A mystical aura surrounds this stone. You feel mysteriously attracted to it. Something tells you to touch it. What do you do?)";
+ next;
+
+ menu
+ "Touch it", -,
+ "Leave it alone", return;
+
+ if (Menhir_Activated == 1) goto L_Shortversion;
+
+ mes "[Soul Menhir]";
+ mes "(You touch the mysteriouse stone. Somehow it feels warm and cold at the same time.)";
+ next;
+
+ mes "[Soul Menhir]";
+ mes "(Suddenly a strange sensation flows through you. It feels like your soul leaves your body and becomes one with the stone.)";
+ next;
+
+ mes "[Soul Menhir]";
+ mes "(As suddenly as the feeling started it stops. The strange attraction is away from one moment to the next and the menhir feels like just an ordinary stone.)";
+ next;
+
+ set Menhir_Activated, 1;
+ goto L_Save;
+
+L_Shortversion:
+ mes "[Soul Menhir]";
+ mes "(A strange sensation flows through you. It feels like your soul leaves your body and becomes one with the stone. as suddenly as the feeling started it stops.)";
+ next;
+
+L_Save:
+ savepoint @map$, @x, @y;
+}