diff options
Diffstat (limited to 'world/map/npc/functions')
-rwxr-xr-x | world/map/npc/functions/debug.txt | 4 | ||||
-rw-r--r-- | world/map/npc/functions/ferry.txt | 31 | ||||
-rw-r--r-- | world/map/npc/functions/game_rules.txt | 25 | ||||
-rw-r--r-- | world/map/npc/functions/soul_menhir.txt | 11 | ||||
-rw-r--r-- | world/map/npc/functions/stat_reset.txt | 55 | ||||
-rw-r--r-- | world/map/npc/functions/time.txt | 71 | ||||
-rw-r--r-- | world/map/npc/functions/travelers.txt | 43 | ||||
-rw-r--r-- | world/map/npc/functions/undead_debug.txt | 8 |
8 files changed, 160 insertions, 88 deletions
diff --git a/world/map/npc/functions/debug.txt b/world/map/npc/functions/debug.txt index af7fcee0..384805b1 100755 --- a/world/map/npc/functions/debug.txt +++ b/world/map/npc/functions/debug.txt @@ -916,7 +916,7 @@ L_Close: } -042-2.gat,30,26,0|script|Debug#0|154 +029-2.gat,30,26,0|script|Debug#0|154 { callfunc "Debug"; end; @@ -926,7 +926,7 @@ OnInit: end; } -001-1.gat,41,29,0|script|Debug#1|154 +001-1.gat,53,47,0|script|Debug#1|154 { callfunc "Debug"; end; diff --git a/world/map/npc/functions/ferry.txt b/world/map/npc/functions/ferry.txt index cc5bfa14..cca5d3a0 100644 --- a/world/map/npc/functions/ferry.txt +++ b/world/map/npc/functions/ferry.txt @@ -5,17 +5,17 @@ end; OnInit: - disablenpc "Hurnscald Koga"; + disablenpc "Hurnscald South Koga"; disablenpc "Candor Koga"; disablenpc "Nivalis Koga"; - disablenpc "Tulimshar North Koga"; - disablenpc "Tulimshar South Koga"; + disablenpc "Hurnscald North Koga"; + disablenpc "Tulimshar Koga"; set $@MainCurrentDock, 0; set $@CandorCurrentDock, 0; set $@DockTickCount, 0; set $@DockLeaveCount, 1; - setarray $@MainDocks$, "Hurnscald", "Nivalis", "Tulimshar South"; - setarray $@CandorDocks$, "Candor", "Tulimshar North"; + setarray $@MainDocks$, "Hurnscald North", "Nivalis", "Tulimshar"; + setarray $@CandorDocks$, "Candor", "Hurnscald South"; cmdothernpc "#"+$@MainDocks$[$@MainCurrentDock]+"Dock", "Arrive"; cmdothernpc "#"+$@CandorDocks$[$@CandorCurrentDock]+"Dock", "Arrive"; if (debug >= 2) end; @@ -49,7 +49,7 @@ L_NextDock: if($@MainCurrentDock == 1) goto L_k1city3; end; -OnTimer10000: +OnTimer8000: if ($@DockTickCount > $@DockLeaveCount) goto L_NextDock; //mapannounce "035-2.tmx", "Koga - Main:* Now docked in "+$@MainDocks$[$@MainCurrentDock]+", Departing soon", 0; @@ -91,6 +91,18 @@ L_k2city2: end; } +function|script|FerryHelp +{ + mes "\"You wait on the dock for the ship to come in. You'll be given a chance to board the boat when it comes into port.\""; + mes "\"It lingers in port to allow you some time to board in case you are running behind.\""; + mes "\"Once on the ship, it will sail to different ports and annouce where it is docking.\""; + mes "\"There are 2 Ferrys, both ferrys are free to ride.\""; + mes "\"The Main ferry travels from Argeas, Kaizei and Tonori. It docks in the major ports Hurnscald North, Nivalis and the Tulimshar Dock.\""; + mes "\"The Candor Ferry only travels betwen Candor and the Hurnscald South Dock.\""; + mes "\"Refreshments and supplies are offered aboard both ships during the voyage.\""; + mes "\"We also have some slot machines in case you get bored.\""; + return; +} function|script|FerryManifest { mes "Which Ferry do you want to check the schedule for?"; @@ -100,7 +112,6 @@ function|script|FerryManifest L_CandorFerry: mes "The ferry is currently at "+$@CandorDocks$[$@CandorCurrentDock]; - next; set @NextDock, ($@CandorCurrentDock + 1); if(@NextDock == getarraysize($@CandorDocks$)) set @NextDock, 0; @@ -109,7 +120,6 @@ L_CandorFerry: L_WorldFerry: mes "The ferry is currently at "+$@MainDocks$[$@MainCurrentDock]; - next; set @NextDock, ($@MainCurrentDock + 1); if(@NextDock == getarraysize($@MainDocks$)) set @NextDock, 0; @@ -143,14 +153,9 @@ function|script|BoardCandorFerry "No.", L_Return; L_Board: - if (BaseLevel < 40) goto L_TooYoung; warp "036-2.tmx",39,29; goto L_Return; -L_TooYoung: - mes "This area is too dangerous for your low level."; - goto L_Return; - L_Return: return; } diff --git a/world/map/npc/functions/game_rules.txt b/world/map/npc/functions/game_rules.txt index 9799b11d..cbd4b8fb 100644 --- a/world/map/npc/functions/game_rules.txt +++ b/world/map/npc/functions/game_rules.txt @@ -2,7 +2,9 @@ function|script|GameRules { - set @read, 0; + + mes "[Server Game Rules]"; + mes "Please Select Language."; menu "English", L_English, "Deutsch (German)", L_German, @@ -23,10 +25,8 @@ L_English: mes "4. No begging"; mes "5. Speak English on public chat"; mes "6. Treat others the same way you would like to be treated"; - next; mes "AFK botting will be determined by talking to players who are moving and/or attacking."; mes "Automated following will be determined by observation."; - next; goto L_End; L_German: @@ -38,9 +38,7 @@ L_German: mes "5. Englisch ist die einzig zulässige Sprache im öffentlichen Raum."; mes "6. Behandele andere so, wie du selbst behandelt werden willst."; mes "Jegliche Regelverstöße können bestraft werden, entweder durch ein Zurücksetzen der Charaktereigenschaften und -besitztümer auf den Ausgangszustand, oder durch einen temporären oder permanenten Ausschluss aus dem Spiel."; - next; mes "Automatisiertes Spielverhalten liegt vor, wenn ein sich bewegender/kämpfender Spieler nicht intelligent auf Gesprächsaufforderungen reagiert."; - next; goto L_End; L_Dutch: @@ -52,9 +50,7 @@ L_Dutch: mes "4. Verboden te bedelen"; mes "5. Spreek Engels op de publieke chat"; mes "6. Behandel andere zoals ook jij behandeld wilt worden"; - next; mes "Botten word bepaald door te praten tegen spelers die aan het bewegen en/of aanvallen zijn."; - next; goto L_End; L_Danish: @@ -66,9 +62,7 @@ L_Danish: mes "4. Det er forbudt at tigge (for eksempel: Maa jeg ikke nok faa dit svaerd, kom nu, vaer nu soed... og saa videre)"; mes "5. Det er forbudt at snakke andre sprog end Engelsk, i den aabne chat. (Dog er det lovligt ved at bruge foelgende kommandoen /whisper)"; mes "6. Husk at goere mod andre, som du vil have de skal goere imod dig (opfoer dig ordenligt!)"; - next; mes "Botting bliver fastlagt paa grundlag af, at man snakker til andre spillere, der gaar rundt og/eller der angriber og de ikke svare igen."; - next; goto L_End; L_French: @@ -80,9 +74,7 @@ L_French: 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)"; - 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: @@ -93,10 +85,8 @@ L_Spanish: mes "4. No mendigar."; mes "5. Escriba únicamente en Inglés en el chat público"; mes "6. Trate a los demás de la misma forma que le gustaría ser tratado"; - next; mes "El uso de programas automáticos para jugar sin estar frente al teclado se determinará hablando con los jugadores que estén moviéndose y/o atacando."; mes "El seguimiento automático será determinado por observación."; - next; goto L_End; L_Swedish: @@ -107,9 +97,7 @@ L_Swedish: mes "4. Tigg inte"; mes "5. Prata bara engelska i den offentliga chatten"; mes "6. Behandla andra som du vill bli behandlad"; - next; mes "Vid misstankar om bottande kontrolleras detta genom att prata med spelaren under dess kringvandrande eller attackerande."; - next; goto L_End; L_Portuguese: @@ -121,9 +109,7 @@ L_Portuguese: mes "4. Pedintes serao ignorados, ou banidos."; mes "5. Fale ingles em lugares publicos."; mes "6. Trate os outros da mesma maneira que quer ser tratado(a)."; - next; mes "O \"botting\" sera determinado, falando com os jogadores que se movem e/ou atacam."; - next; goto L_End; L_Polish: @@ -135,9 +121,7 @@ L_Polish: mes "4. Zabrania sie zebrania"; mes "5. Na publicznym kanale rozmawiamy po angielsku"; mes "6. Traktuj innych tak jak sam chcesz byc traktowany"; - next; mes "Uzywanie botow zostanie okreslone na podstawie rozmow z innymi graczami podczas aktywnosci gracza."; - next; goto L_End; L_Italian: @@ -149,13 +133,10 @@ L_Italian: mes "4. Vietato implorare"; mes "5. Parlare solo inglese nella chat pubblica"; mes "6. Tratta gli altri giocatori come vuoi che gli altri trattino te."; - next; mes "I bot saranno determinati in base alle risposte e ai movimenti dei giocatori esaminati."; - next; goto L_End; L_End: - set @read, 1; if (TUT_var == 0) set TUT_var, gettimetick(2); goto L_Return; diff --git a/world/map/npc/functions/soul_menhir.txt b/world/map/npc/functions/soul_menhir.txt index e047e928..6c2c1c17 100644 --- a/world/map/npc/functions/soul_menhir.txt +++ b/world/map/npc/functions/soul_menhir.txt @@ -2,7 +2,6 @@ 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.", L_Bind, @@ -16,7 +15,6 @@ L_Towel: set TowelLastUsed, gettimetick(2); mes "[Soul Menhir]"; mes "(You touch the mysterious stone. Somehow it feels hard and soft at the same time.)"; - next; getitem "HitchhikersTowel", 1; goto L_Return; @@ -26,23 +24,14 @@ L_Bind: mes "[Soul Menhir]"; mes "(You touch the mysterious 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; goto L_Save; L_Save: diff --git a/world/map/npc/functions/stat_reset.txt b/world/map/npc/functions/stat_reset.txt new file mode 100644 index 00000000..d8f484ff --- /dev/null +++ b/world/map/npc/functions/stat_reset.txt @@ -0,0 +1,55 @@ +// + +function|script|StatReset +{ +// if (ResetA_charstate == 1) goto L_Multiple; + +// set @cost, 10000000 / ($ResetA_uses + 1); + + set @cost, BaseLevel * 100; + + mes "[" + @NpcName$ + "]"; + mes "\"I have come across a spell that will"; + mes "reset your status points."; + mes "Normally this spell is expensive, but"; + mes "due to an unusual constellation of the"; + mes "stars I can cast it very cheaply!"; + mes "For you it will cost only "+@cost+" gp.\""; + next; + menu + "Reset my stats",L_Next, + "Forget about it",L_Pass; + +L_Next: + if (Zeny<@cost) goto L_NoMoney; + goto L_Reset; + +// set $ResetA_uses, $ResetA_uses + 1; +// set ResetA_charstate, 1; + +L_Reset: + set Zeny, Zeny-@cost; + resetstatus; + + mes "[" + @NpcName$ + "]"; + mes "\"There you are."; + mes ""; + mes "Good as new!\""; + goto L_Return; + +L_Pass: + mes "[" + @NpcName$ + "]"; + mes "\"Very well then, see you.\""; + goto L_Return; + +L_NoMoney: + mes "[" + @NpcName$ + "]"; + mes "\"Oh dear, the price cannot be bargained."; + mes ""; + mes "Perhaps you can borrow from a friend?\""; + goto L_Return; + +L_Return: + set @cost, 0; + return; +} diff --git a/world/map/npc/functions/time.txt b/world/map/npc/functions/time.txt index 9f141d3e..695c4cec 100644 --- a/world/map/npc/functions/time.txt +++ b/world/map/npc/functions/time.txt @@ -55,3 +55,74 @@ function|script|time_stamp return; } + + + +// HumanTime - returns a human-readable time +// author: meko + +// Variables: +// input @ms integer +// output @time$ string + +function|script|HumanTime +{ + set @time$, "now"; + if(@ms < 1000) goto L_Millis; // under 1 second we have nothing to count + set @seconds, @ms / 1000; + set @ms, @ms % 1000; + if(@seconds < 60) goto L_Seconds; + set @minutes, @seconds / 60; + set @seconds, @seconds % 60; + if(@minutes < 60) goto L_Minutes; + set @hours, @minutes / 60; + set @minutes, @minutes % 60; + if(@hours < 60) goto L_Hours; + return; + +L_Millis: + set @time$, @ms + "ms"; + return; + +L_Seconds: + set @unit$, "second"; + if(@seconds > 1) set @unit$, "seconds"; + set @unit2$, "millisecond"; + if(@ms > 1) set @unit2$, "milliseconds"; + set @time$, @seconds + " " + @unit$; + if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit2$; + return; + +L_Minutes: + set @unit$, "minute"; + if(@minutes > 1) set @unit$, "minutes"; + set @unit2$, "second"; + if(@seconds > 1) set @unit2$, "seconds"; + set @unit3$, "millisecond"; + if(@ms > 1) set @unit3$, "milliseconds"; + set @time$, @minutes + " " + @unit$; + set @separator$, " and "; + if(@ms) set @separator$, ", "; + if(@seconds) set @time$, @time$ + @separator$ + @seconds + " " + @unit2$; + if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit3$; + return; + +L_Hours: + set @unit$, "hour"; + if(@hours > 1) set @unit$, "hours"; + set @unit2$, "minute"; + if(@minutes > 1) set @unit2$, "minutes"; + set @unit3$, "second"; + if(@seconds > 1) set @unit3$, "seconds"; + set @unit4$, "millisecond"; + if(@ms > 1) set @unit4$, "milliseconds"; + set @time$, @hours + " " + @unit$; + set @separator$, " and "; + if(@seconds || @ms) set @separator$, ", "; + if(@minutes) set @time$, @time$ + @separator$ + @minutes + " " + @unit2$; + set @separator$, " and "; + if(@ms) set @separator$, ", "; + if(@seconds) set @time$, @time$ + @separator$ + @seconds + " " + @unit3$; + if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit4$; + return; +} diff --git a/world/map/npc/functions/travelers.txt b/world/map/npc/functions/travelers.txt index 6827aece..f8ce6bf7 100644 --- a/world/map/npc/functions/travelers.txt +++ b/world/map/npc/functions/travelers.txt @@ -13,7 +13,7 @@ OnInit: // TravelFound set $@tut_bit, (1 << 2); - set $@druid_tree_bit, (1 << 3); + //set $@druid_tree_bit, (1 << 3); set $@graveyard_bit, (1 << 4); set $@magic_house_bit, (1 << 5); set $@terranite_cave_bit, (1 << 6); @@ -21,9 +21,8 @@ OnInit: set $@blue_sage_bit, (1 << 8); set $@hurnscald_bit, (1 << 9); set $@nivalis_bit, (1 << 10); - set $@tul_mine_bit, (1 << 11); + //set $@tul_mine_bit, (1 << 11); set $@pachua_bit, (1 << 12); - set $@nivalis_snow_hills_bit, (1 << 13); set $@barbarians_bit, (1 << 14); set $@hurns_farms_bit, (1 << 15); set $@candor_bit, (1 << 16); @@ -31,14 +30,13 @@ OnInit: set $@tulimshar_cost, 100; set $@hurnscald_cost, 100; set $@nivalis_cost, 100; - set $@druid_tree_cost, 150; - set $@tul_mine_cost, 150; + //set $@druid_tree_cost, 150; + //set $@tul_mine_cost, 150; set $@pachua_cost, 200; set $@graveyard_cost, 200; set $@magic_house_cost, 150; set $@terranite_cave_cost, 200; set $@blue_sage_cost, 200; - set $@nivalis_snow_hills_cost, 150; set $@barbarians_cost, 150; set $@hurns_farms_cost, 150; set $@candor_cost, 200; @@ -101,8 +99,6 @@ L_Start: "Tonori - Tulimshar (" + (@Cost * $@tulimshar_cost) + " GP)", L_TravelTulimshar, "Argeas - Hurnscald (" + (@Cost * $@hurnscald_cost) + " GP)", L_TravelHurnscald, "Kaizei - Nivalis (" + (@Cost * $@nivalis_cost) + " GP)", L_TravelNivalis, - "Tonori - Druid Tree (" + (@Cost * $@druid_tree_cost) + " GP)", L_TravelDruidTree, - "Tonori - Tulimshar Mines (" + (@Cost * $@tul_mine_cost) + " GP)", L_TravelTulMine, "Tonori - Pachua's Village (" + (@Cost * $@pachua_cost) + " GP)", L_TravelPachua, "Argeas - Candor (" + (@Cost * $@candor_cost) + " GP)", L_TravelCandor, "Argeas - Magic House (" + (@Cost * $@magic_house_cost) + " GP)", L_TravelMagicHouse, @@ -111,7 +107,6 @@ L_Start: "Argeas - Terranite Cave (" + (@Cost * $@terranite_cave_cost) + " GP)", L_TravelTerranite, "Kaizei - Barbarian Village (" + (@Cost * $@barbarians_cost) + " GP)", L_TravelBarbarians, "Kaizei - Sage Nikolai's Mansion (" + (@Cost * $@blue_sage_cost) + " GP)", L_TravelBlueSage, - "Kaizei - Snow Hills (" + (@Cost * $@nivalis_snow_hills_cost) + " GP)", L_TravelSnowHills, "Who are the Travelers?", L_TravelTut, "I'm not interested.", L_TravelNo; @@ -132,14 +127,6 @@ L_TravelPlayer: warp @NextLocationMap$,@NextLocationX,@NextLocationY; goto L_Clearvars; -L_TravelDruidTree: - set @NextLocationBit, $@druid_tree_bit; - set @NextLocationCost, (@Cost * $@druid_tree_cost); - set @NextLocationMap$, "005-1.gat"; - set @NextLocationX, 76; - set @NextLocationY, 36; - goto L_TravelChecks; - L_TravelGraveyard: set @NextLocationBit, $@graveyard_bit; set @NextLocationCost, (@Cost * $@graveyard_cost); @@ -167,9 +154,9 @@ L_TravelTerranite: L_TravelTulimshar: set @NextLocationBit, $@tulimshar_bit; set @NextLocationCost, (@Cost * $@tulimshar_cost); - set @NextLocationMap$, "001-1.gat"; - set @NextLocationX, 44; - set @NextLocationY, 70; + set @NextLocationMap$, "002-1.gat"; + set @NextLocationX, 60; + set @NextLocationY, 42; goto L_TravelChecks; L_TravelBlueSage: @@ -196,14 +183,6 @@ L_TravelNivalis: set @NextLocationY, 122; goto L_TravelChecks; -L_TravelTulMine: - set @NextLocationBit, $@tul_mine_bit; - set @NextLocationCost, (@Cost * $@tul_mine_cost); - set @NextLocationMap$, "002-2.gat"; - set @NextLocationX, 27; - set @NextLocationY, 28; - goto L_TravelChecks; - L_TravelPachua: set @NextLocationBit, $@pachua_bit; set @NextLocationCost, (@Cost * $@pachua_cost); @@ -212,14 +191,6 @@ L_TravelPachua: set @NextLocationY, 97; goto L_TravelChecks; -L_TravelSnowHills: - set @NextLocationBit, $@nivalis_snow_hills_bit; - set @NextLocationCost, (@Cost * $@nivalis_snow_hills_cost); - set @NextLocationMap$, "044-1.gat"; - set @NextLocationX, 152; - set @NextLocationY, 19; - goto L_TravelChecks; - L_TravelBarbarians: set @NextLocationBit, $@barbarians_bit; set @NextLocationCost, (@Cost * $@barbarians_cost); diff --git a/world/map/npc/functions/undead_debug.txt b/world/map/npc/functions/undead_debug.txt index a49fcd76..992cbc97 100644 --- a/world/map/npc/functions/undead_debug.txt +++ b/world/map/npc/functions/undead_debug.txt @@ -53,26 +53,26 @@ L_KrukanItems: L_RazhaItems: if ((checkweight("Soul", 3) == 0) - || (checkweight("RottenRags", 5) == 0) + || (checkweight("DiseasedHeart", 5) == 0) || (checkweight("UndeadEye", 5) == 0) || (checkweight("UndeadEar", 5) == 0) || (@inventorylist_count == 100)) goto L_InventoryNoSpace; getitem "Soul", 3; - getitem "RottenRags", 5; + getitem "DiseasedHeart", 5; getitem "UndeadEye", 5; getitem "UndeadEar", 5; goto L_Main; L_TeroganItems: if ((checkweight("Soul", 5) == 0) - || (checkweight("DiseasedHeart", 5) == 0) + || (checkweight("RottenRags", 5) == 0) || (checkweight("UndeadEye", 5) == 0) || (checkweight("UndeadEar", 5) == 0) || (@inventorylist_count == 100)) goto L_InventoryNoSpace; getitem "Soul", 5; - getitem "DiseasedHeart", 5; + getitem "RottenRags", 5; getitem "UndeadEye", 5; getitem "UndeadEar", 5; goto L_Main; |