diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
commit | a7c45a192268da2601cef47a4cdba987ae2327ca (patch) | |
tree | c5fb5b97db109fe7106496dd96498c475881046b /npc/test | |
download | serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2 serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip |
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/test')
-rw-r--r-- | npc/test/_import.txt | 12 | ||||
-rw-r--r-- | npc/test/_mobs.txt | 17 | ||||
-rw-r--r-- | npc/test/karim.txt | 153 | ||||
-rw-r--r-- | npc/test/mapflags.txt | 2 | ||||
-rw-r--r-- | npc/test/npc1.txt | 724 | ||||
-rw-r--r-- | npc/test/npc3.txt | 7 | ||||
-rw-r--r-- | npc/test/npc4.txt | 30 | ||||
-rw-r--r-- | npc/test/npc5.txt | 34 | ||||
-rw-r--r-- | npc/test/rock.txt | 178 | ||||
-rw-r--r-- | npc/test/test1.txt | 96 | ||||
-rw-r--r-- | npc/test/test2.txt | 13 |
11 files changed, 1266 insertions, 0 deletions
diff --git a/npc/test/_import.txt b/npc/test/_import.txt new file mode 100644 index 0000000..46209c4 --- /dev/null +++ b/npc/test/_import.txt @@ -0,0 +1,12 @@ +// Map test: test +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/test/_mobs.txt", +"npc/test/karim.txt", +"npc/test/mapflags.txt", +"npc/test/npc1.txt", +"npc/test/npc3.txt", +"npc/test/npc4.txt", +"npc/test/npc5.txt", +"npc/test/rock.txt", +"npc/test/test1.txt", +"npc/test/test2.txt", diff --git a/npc/test/_mobs.txt b/npc/test/_mobs.txt new file mode 100644 index 0000000..350a38f --- /dev/null +++ b/npc/test/_mobs.txt @@ -0,0 +1,17 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map test: test mobs +test,38,12,1,1 monster Piou 1002,1,1000,1000 +test,38,12,1,1 monster Tortuga 1004,1,1000,1000 +test,44,12,1,1 monster Piou 1002,3,1000,1000 +test,48,10,1,1 monster Tortuga 1004,3,1000,1000 +test,48,10,0,0 monster Piou 1002,1,1000,1000 +test,48,10,0,0 monster Ratto 1005,1,1000,1000 +test,54,10,1,1 monster Piou 1002,3,1000,1000 +test,68,9,0,0 monster Piou 1002,3,1000,1000 +test,68,9,0,0 monster Ratto 1005,1,1000,1000 +test,68,9,1,1 monster Tortuga 1004,3,1000,1000 +test,76,10,1,1 monster Piou 1002,3,1000,1000 +test,76,10,1,1 monster Ratto 1005,1,1000,1000 +test,78,4,1,1 monster Ratto 1005,3,1000,1000 +test,87,93,1,1 monster Green 4144 1004,1,1000,1000 +test,87,81,1,1 monster Pink 4144 1004,1,1000,1000 diff --git a/npc/test/karim.txt b/npc/test/karim.txt new file mode 100644 index 0000000..c1b74d2 --- /dev/null +++ b/npc/test/karim.txt @@ -0,0 +1,153 @@ +// Evol scripts. +// Author: +// Reid +// Description: +// Blacksmith's assistant of Artis +// Variables: +// ArtisQuests_Enora +// Values: +// 0 Default. +// 1 BlackSmith quest delivered. +// 2 Chelios Quest given. +// 3 Chelios Quest done. +// 4 BlackSmith gave the sword. + +test,2,4,0 script karim NPC_PLAYER,{ + + .Item1 = RightCraftyWing; + .Item2 = LeftCraftyWing; + .ItemReward = FlightTalisman; + + function quest_beggining{ + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("my name is karim can you help me?."); + + setq Karim_Quest, 1; + return; + } + + function quest_left { + if (countitem(.Item2) > 0) + { + delitem .Item2, 1; + if (rand(10) == 1) + { + mesq l("Yay, it worked! You get a good wing."); + getitem .ItemReward, 1; + setq Karim_Quest, 2; + close; + } + else + { + mesq l("This one is useless! Give me another @@.", getitemlink(.Item2)); + return; + } + } + else + { + mesq l("You don't have any @@, are you mocking me?", getitemlink(.Item2)); + return ; + } + } + + function quest_right { + if (countitem(.Item1) > 0) + { + delitem .Item1, 1; + if (rand(5) == 1) + { + mesq l("Yay, it worked! You get a good wing."); + getitem .ItemReward, 1; + setq Karim_Quest, 2; + close; + } + else + { + mesq l("This one is useless! Give me another @@.", getitemlink(.Item1)); + next; + return; + } + } + else + { + mesq l("You don't have any @@, are you mocking me?", getitemlink(.Item1)); + return ; + } + } + + function quest_started { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Can you give me a @@ or a @@", getitemlink(.Item1), getitemlink(.Item2)); + + do + { + select + l("a Right Crafty Wing"), + l("a Left Crafty Wing"), + menuaction(l("Quit")); + + switch (@menu) + { + case 1: + quest_right; + break; + case 2: + quest_left; + break; + } + } while (@menu != 3); + return; + } + + function quest_completed { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Quest completed."); + return; + } + + function quest_restart { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Quest restart."); + setq Karim_Quest, 0; + return; + } + + speech S_LAST_NEXT, l("Can you help me?"); + + do + { + .@karim = getq(Karim_Quest); + select + rif(.@karim == 2, lg("quest completed.")), + rif(.@karim == 1, l("Hello again can you give you give me some tentacles.")), + rif(.@karim == 0, l("Hello")), + l("Debug"), + menuaction(l("Quit")); + + switch (@menu) + { + case 1: + quest_completed; + break; + case 2: + quest_started; + break; + case 3: + quest_beggining; + break; + case 4: + quest_restart; + break; + } + } while (@menu != 5); + + closedialog; + goodbye; + close; + +OnInit: + .sex = G_MALE; + .distance = 3; + end; +} + diff --git a/npc/test/mapflags.txt b/npc/test/mapflags.txt new file mode 100644 index 0000000..6f3199a --- /dev/null +++ b/npc/test/mapflags.txt @@ -0,0 +1,2 @@ +test mapflag mask 5 +test mapflag town diff --git a/npc/test/npc1.txt b/npc/test/npc1.txt new file mode 100644 index 0000000..002857d --- /dev/null +++ b/npc/test/npc1.txt @@ -0,0 +1,724 @@ +// Evol scripts. +// Author: +// 4144 +// Description: +// test npc1 + +test,10,10,0 script npc1#door NPC_HIDDEN,0,1,{ +OnTouch: + warp "test", 20, 20; + close; +OnUnTouch: + doevent "npc1::OnUnTouch"; +} + +test,10,10,0 script npc1 NPC_TEST1,3,3,{ + function areatest + { + mesn; + mes "getareausers(\"test\", 7, 7, 13, 13): " + getareausers("test", 7, 7, 13, 13); + mes "getareausers(7, 7, 13, 13): " + getareausers(7, 7, 13, 13); + mes "getareausers(\"test\"): " + getareausers("test"); + mes "getareausers(): " + getareausers(); + mes "getareausers(\"test\", 1): " + getareausers("test", 1); + mes "getareausers(1): " + getareausers(1); + next; + return; + } + +L_Start: + if (!is_admin()) { + mesc "Error 13: Permission Denied", 1; + close; + } + mes "Homunculus state: "+checkhomcall(); + switch (select( + "show area", + "map", + "pc", + "change npc direction", + "quest test", + "cart", + "items", + "chat", + "wall", + "craft", + "hashtable", + "instance", + "mercenary", + "npc", + "clan")) + { + case 1: + areatest; + break; + case 2: + while(1) + { + .@mask = getmapmask("test"); + mes "current mask: " + str(.@mask); + switch (select("show sand:show grass:show fog:hide fog:back")) + { + case 1: + addremovemapmask "test", 4, 8; + break; + case 2: + addremovemapmask "test", 8, 4; + break; + case 3: + addmapmask "test", 2; + break; + case 4: + removemapmask "test", 2; + break; + case 5: + goto L_Start; + break; + } + } + break; + + case 3: + while(1) + { + switch (select("change sex:setmount 0:setmount 1:setmount 2:test command:back")) + { + case 1: + changecharsex; + break; + case 2: + setmount 0; + break; + case 3: + setmount 1; + break; + case 4: + setmount 2; + break; + case 5: + clientcommand "emote 1"; + break; + case 6: + goto L_Start; + break; + } + } + break; + case 4: + for (.@f = 0; .@f < 9; .@f ++) + { + mes "" + .@f; + .dir = .@f; + next; + } + break; + case 5: + mes "current"; + .@val1 = getq(ShipQuests_Gugli); + .@val2 = getq2(ShipQuests_Gugli); + .@val3 = getq3(ShipQuests_Gugli); + .@valTime = getqtime(ShipQuests_Gugli); + mes "val1=" + .@val1; + mes "val2=" + .@val2; + mes "val3=" + .@val3; + mes "valTime=" + .@valTime; + .@val1 ++; + .@val2 ++; + .@val3 ++; + .@valTime ++; + next; + mes "test " + str(.@val1) + ", " + str(.@val2) + ", " + str(.@val3) + ", " + str(.@valTime); + setq ShipQuests_Gugli, .@val1, .@val2, .@val3, .@valTime; + next; + .@val1 = getq(ShipQuests_Gugli); + .@val2 = getq2(ShipQuests_Gugli); + .@val3 = getq3(ShipQuests_Gugli); + .@valTime = getqtime(ShipQuests_Gugli); + mes "val1=" + .@val1; + mes "val2=" + .@val2; + mes "val3=" + .@val3; + mes "valTime=" + .@valTime; + break; + case 6: + while(1) + { + switch (select("add cart:remove cart:back")) + { + case 1: + setcart 1; + break; + case 2: + setcart 0; + break; + case 3: + goto L_Start; + break; + } + } + break; + case 7: + while(1) + { + switch (select("refine", "rent", "bound", "named", "cards", "options", "back")) + { + case 1: + .@item = -1; + while(1) + { + switch (select("set item", "refine +1", "refine -1", "refine fail", "back")) + { + case 1: + .@item = requestitemindex(); + mes "Item index selected: " + str(.@item); + break; + case 2: + successrefindex .@item, 1; + break; + case 3: + downrefindex .@item, 1; + break; + case 4: + failedrefindex .@item; + break; + case 5: + goto L_Start; + break; + } + } + break; + case 2: + while(1) + { + switch (select("rent vneck for 10 seconds", + "rent vneck for 30 seconds", + "rent vneck for 1 minute", + "rent vneck for 5 minutes", + "back")) + { + case 1: + rentitem 1301, 10; + break; + case 2: + rentitem 1301, 30; + break; + case 3: + rentitem 1301, 60; + break; + case 4: + rentitem 1301, 300; + break; + case 5: + goto L_Start; + break; + } + } + break; + case 3: + while(1) + { + switch (select("get bound vneck", + "back")) + { + case 1: + getitembound2 1301, 1, 1, 0, 0, 0, 0, 0, 0, 1; + break; + case 2: + goto L_Start; + break; + } + } + break; + case 4: + while(1) + { + switch (select("get named vneck", + "back")) + { + case 1: + getnameditem 1301, "4144"; + break; + case 2: + goto L_Start; + break; + } + } + break; + case 5: + .@item = -1; + while(1) + { + switch (select("set item", + "remove cards success", + "fail, remove both", + "fail, remove card", + "fail, remove item", + "fail, safe", + "print all", + "remove 0", + "back")) + { + case 1: + .@item = requestitemindex(); + mes "Item index selected: " + str(.@item); + break; + case 2: + successremovecardsindex .@item; + break; + case 3: + failedremovecardsindex .@item, 0; + break; + case 4: + failedremovecardsindex .@item, 1; + break; + case 5: + failedremovecardsindex .@item, 2; + break; + case 6: + failedremovecardsindex .@item, 3; + break; + case 7: + mes "slots=" + str(MAX_SLOTS); + for (.@i = 0; .@i < MAX_SLOTS; .@i++) + { + mes "slot " + str(.@i) + " = " + str(getcardbyindex(.@item, .@i)); + } + mes "item options:"; + for (.@i = 0; .@i < 5; .@i ++) + { + mes sprintf("%d: Option: %d, Value: %d", .@i, getitemoptionidbyindex(.@item, .@i), getitemoptionvaluebyindex(.@item, .@i)); + } + break; + case 8: + removecardbyindex(.@item, 0); + break; + case 9: + goto L_Start; + break; + } + } + break; + case 6: + .@item = -1; + while(1) + { + switch (select("set item", "info", "set option 1", "remove options", "back")) + { + case 1: + .@item = requestitemindex(); + mes "Item index selected: " + str(.@item); + break; + case 2: + mes "Selected item options"; + for (.@i = 0; .@i < 5; .@i ++) + { + mes sprintf("%d: Option: %d, Value: %d", .@i, getitemoptionidbyindex(.@item, .@i), getitemoptionvaluebyindex(.@item, .@i)); + } + break; + case 3: + setitemoptionbyindex(.@item, 0, VAR_MAXHPAMOUNT, 200); + setitemoptionbyindex(.@item, 1, VAR_STRAMOUNT, 10); + setitemoptionbyindex(.@item, 2, VAR_VITAMOUNT, -5); + break; + case 4: + mes "Remove item options"; + for (.@i = 0; .@i < 5; .@i ++) + { + setitemoptionbyindex(.@item, .@i, 0, 0); + } + break; + case 5: + goto L_Start; + break; + } + } + break; + case 7: + goto L_Start; + break; + } + } + break; + case 8: + chatjoin .chat; + close; + case 9: + while(1) + { + switch (select("set wall 1:set wall 2:set wall 3:delete wall 1:delete wall 2:delete wall 3:back")) + { + case 1: + setcells "test", 14, 11, 17, 11, 3, "wall1"; + break; + case 2: + setcells "test", 14, 7, 21, 8, 1, "wall2"; + break; + case 3: + setcells "test", 13, 15, 13, 21, 3, "wall3"; + break; + case 4: + delcells "wall1"; + break; + case 5: + delcells "wall2"; + break; + case 6: + delcells "wall3"; + break; + case 7: + goto L_Start; + break; + } + } + break; + case 10: + while(1) + { + switch (select("technical:normal:back")) + { + case 1: + setskin "test2"; + .@var$ = requestcraft(9); + mes .@var$; + .@craft = initcraft(.@var$); + mes "craft id: " + str(.@craft); + mes "is craft valid: " + validatecraft(.@craft); + .@id = getcraftslotid(.@craft, 0); + .@amount = getcraftslotamount(.@craft, 0); + mes "first item id: " + .@id; + mes "first item name: " + getitemlink(.@id); + mes "first item amount: " + .@amount; + + .@id = getcraftslotid(.@craft, 1); + .@amount = getcraftslotamount(.@craft, 1); + mes "second item id: " + .@id; + mes "second item name: " + getitemlink(.@id); + mes "second item amount: " + .@amount; +// dumpcraft .@craft; + .@entry = findcraftentry(.@craft, 0); + mes "found craft entry: " + .@entry; + if (.@entry < 0) + { + mes "no craft recipe found"; + } + else + { + mes "use craft"; + usecraft .@craft; + mes "return code: " + getcraftcode(.@entry); + } + deletecraft .@craft; + setskin ""; + break; + case 2: + mes "put items what you want to craft"; + setskin "test2"; + .@var$ = requestcraft(9); + setskin ""; + .@craft = initcraft(.@var$); + if (.@craft < 0) + { + mes "Craft error."; + goto L_Start; + } + mes "lets see what you can get..."; + next; + if (!validatecraft(.@craft)) + { + mes "inventory was changed."; + goto L_Start; + } + .@entry = findcraftentry(.@craft, 0); + if (.@entry < 0) + { + mes "no craft recipe found"; + } + else + { + mes "found recipe"; + usecraft .@craft; + mes "return code: " + getcraftcode(.@entry); + } + deletecraft .@craft; + break; + case 3: + goto L_Start; + break; + } + } + break; + case 11: + switch(select("Create new hashtable", + "Use existing ID")) + { + case 1: + .@ht = htnew(); + mes "ID = " + .@ht; + break; + case 2: + mes "Input ID"; + input .@ht; + break; + } + .@defval = 0; + .@defval_str$ = ""; + .@newval = 0; + .@newval_str$ = ""; + .@key$ = ""; + + while(1) + { + switch (select("Set default string value", + "Set default number value", + "Get string", + "Get number", + "Put string", + "Put number", + "Show hashtable", + "Clear hashtable", + "Delete hashtable", + "Exit")) + { + case 1: + input .@defval_str$; + break; + case 2: + input .@defval; + break; + case 3: + mes "Input key:"; + input .@key$; + mes "htget(" + .@ht + ", \"" + .@key$ + "\") = " + htget(.@ht, .@key$); + mes "htget(" + .@ht + ", \"" + .@key$ + "\", \"" + .@defval_str$ + "\") = " + htget(.@ht, .@key$, .@defval_str$); + break; + case 4: + mes "Input key:"; + input .@key$; + mes "htget(" + .@ht + ", \"" + .@key$ + "\") = " + htget(.@ht, .@key$); + mes "htget(" + .@ht + ", \"" + .@key$ + "\", " + .@defval + ") = " + htget(.@ht, .@key$, .@defval); + break; + case 5: + mes "Input key:"; + input .@key$; + mes "Input value:"; + input .@newval_str$; + htput(.@ht, .@key$, .@newval_str$); + mes "htput(" + .@ht + ", \"" + .@key$ + "\", \"" + .@newval_str$ + "\")"; + mes "htget(" + .@ht + ", \"" + .@key$ + "\") = " + htget(.@ht, .@key$); + break; + case 6: + mes "Input key:"; + input .@key$; + mes "Input value:"; + input .@newval; + htput(.@ht, .@key$, .@newval); + mes "htput(" + .@ht + ", \"" + .@key$ + "\", " + .@newval + ")"; + mes "htget(" + .@ht + ", \"" + .@key$ + "\") = " + htget(.@ht, .@key$); + break; + case 7: + mes "size = " + htsize(.@ht); + .@hti = htiterator(.@ht); + for(.@key$ = htinextkey(.@hti); hticheck(.@hti); .@key$ = htinextkey(.@hti)) + mes "key = " + .@key$ + " value = " + htget(.@ht, .@key$); + htidelete(.@hti); + break; + case 8: + htclear(.@ht); + mes "htclear(" + .@ht + ")"; + break; + case 9: + htdelete(.@ht); + mes "htdelete(" + .@ht + ")"; + break; + case 10: + goto L_Start; + } // switch + } // while + break; + case 12: + while(1) + { + switch (select("create", "warp", "info", "warp back", "delete", "back")) + { + case 1: + if (.instid >= 0 && isinstance(.instid)) + { + mes "Error: test instance already created"; + break; + } +// .instid = instance_create("test@instance", 0, 0); + .instid = instance_create("test@instance", getcharid(3), IOT_CHAR); + if (.instid < 0) + { + mes "Error: creating instance"; + break; + } + mes "new instance id: " + str(.instid); +// .@instanceMapName$ = instance_attachmap("test", .instid, 1, "test@map1"); +// .@instanceMapName$ = instance_attachmap("test", .instid, 1); + .@instanceMapName$ = instance_attachmap("test", .instid, 0, "test@map1"); + if (.@instanceMapName$ == "") + { + mes "Error: instance attach map error"; + break; + } + mes "Attached instance map name: " + .@instanceMapName$; + instance_set_timeout(1000000, 1000000, .instid); + instance_init(.instid); + break; + case 2: + warp "test@map1", 12, 12; + break; + case 3: + mes "npc name: " + .name$; + mes "npc ext name: " + .extname$; + mes "npc id: " + .id; + mes "npc parent id: " + .parent; + mes "npc src id: " + .srcId; + if (instance_id() >= 0) + { + mes "npc1 in instance named: " + instance_npcname("npc1"); + } + else + { + mes "npc1 not in instance"; + } + break; + case 4: + warp "test", 12, 12; + break; + case 5: + if (.instid < 0) + { + mes "Error: test instance was not created"; + break; + } + instance_destroy(.instid); + break; + case 6: + goto L_Start; + break; + } + } + break; + case 13: + while(1) + { + switch (select("create mercenary for 10 seconds", "create mercenary for 1 min", "create mercenary for 10 min", "Andrei Sakar", "1205 for test", "back")) + { + case 1: + mercenary_create 1191, 10000; + break; + case 2: + mercenary_create 1191, 60000; + break; + case 3: + mercenary_create 1191, 600000; + break; + case 4: + mercenary_create 1192, 300000; + break; + case 5: + mercenary_create 1205, 300000; + break; + default: + goto L_Start; + break; + } + } + break; + case 14: + while(1) + { + switch (select("set hair 1", "set hair 0", "equip vneck", "unequip vneck", "back")) + { + case 1: + setunitdata(.@npcId, UDT_HAIRSTYLE, 5); + setunitdata(.@npcId, UDT_HAIRCOLOR, 17); + break; + case 2: + .@npcId = getnpcid("npc4"); + setunitdata(.@npcId, UDT_HAIRSTYLE, 0); + break; + case 3: + .@npcId = getnpcid("npc4"); + setunitdata(.@npcId, UDT_HEADTOP, 1301); + break; + case 4: + .@npcId = getnpcid("npc4"); + setunitdata(.@npcId, UDT_HEADTOP, 0); + break; + case 5: + goto L_Start; + break; + } + } + break; + case 15: + while(1) + { + switch (select( + "join sword clan", + "join arc wand clan", + "join golden mace clan", + "join crossbox clan", + "leave clan", + "back")) + { + case 1: + mes(str(clan_join(1))); + break; + case 2: + mes(str(clan_join(2))); + break; + case 3: + mes(str(clan_join(3))); + break; + case 4: + mes(str(clan_join(4))); + break; + case 5: + mes(str(clan_leave())); + break; + case 6: + goto L_Start; + break; + } + } + break; + } + + close; + +OnTouch: + doorTouch; + +OnUnTouch: + doorUnTouch; + +OnTimer340: + doorTimer; + +OnInit: + .sex = G_MALE; + .distance = 5; + .alwaysVisible = true; + waitingroom "test room", 2, "npc1::OnReadyCheck", 1; + // test instance id + .instid = -10; + if (.parent != 0) + { + setnpcdir 0; + } + end; + +OnWhisperGlobal: + mes "cmd: " + @whispervar0$; + close; + +OnReadyCheck: + debugmes "OnReadyCheck"; + $@bgid1 = waitingroom2bg("testbg", 10, 10, "bgnpc1::OnLogout","bgnpc1:OnDie"); + debugmes "bgid=" + str($@bgid1); + setbgteam $@bgid1, 1; + bg_warp $@bgid1, "testbg", 10, 10; +} diff --git a/npc/test/npc3.txt b/npc/test/npc3.txt new file mode 100644 index 0000000..82d5fe3 --- /dev/null +++ b/npc/test/npc3.txt @@ -0,0 +1,7 @@ +// Evol scripts. +// Author: +// 4144 +// Description: +// test npc3 + +test,25,10,0 cashshop npc3 NPC_SHOP_BAG,505:100,502:-1,513:-1,509:-1,2000:-1,1800:-1,3501:-1 diff --git a/npc/test/npc4.txt b/npc/test/npc4.txt new file mode 100644 index 0000000..b85d1bf --- /dev/null +++ b/npc/test/npc4.txt @@ -0,0 +1,30 @@ +// Evol scripts. +// Author: +// 4144 +// Description: +// test npc4 + +test,25,20,0 script npc4 NPC_PLAYER,{ + close; +OnTimer1000: + domovestep; +OnInit: + .walkmask = WALK_WATER; + initpath "move", 20, 20, + "sit", 0, 0, + "dir", 6, 0, + "move", 25, 20, + "emote", 3, 0, +// "class", 104, 0, + "speed", 100, 0, + "wait", 2, 0, + "move", 22, 10, + "rmove", 3, 3, +// "class", 801, 0, + "speed", 200, 0, + "wait", 1, 0, + "warp", 22, 30, + "goto", 0, 0; + initialmove; + initnpctimer; +} diff --git a/npc/test/npc5.txt b/npc/test/npc5.txt new file mode 100644 index 0000000..faa655e --- /dev/null +++ b/npc/test/npc5.txt @@ -0,0 +1,34 @@ +// Evol scripts. +// Author: +// Travolta +// Description: +// test npc5 + +function script npc5TestFunc { + npctalk getarg(0); + return 0; +} + +test,45,25,0 script npc5 NPC_PLAYER,{ + close; + +OnTimer1000: + dographmovestep; + +OnInit: + // .debug = 1; + initmovegraph "topleft", 45, 25, + "topright", 55, 25, + "bottomright", 55, 34, + "bottomleft", 45, 34; + + setmovegraphcmd "topleft", "topright", 30, "dir 0; wait 1", + "topleft", "bottomright", 20, "class 104", + "topleft", "bottomleft", 50, "emote 8; wait 1; warp bottomright", + "topright", "bottomleft", 1, "emote 3; wait 5", + "bottomleft", "topleft", 25, "dir 2; wait 1; call npc5TestFunc Hello=)", + "bottomleft", "bottomright", 10, "speed 40", + "bottomright", "bottomleft", 1, "class 801; speed 100; dir 0; emote 1; wait 4"; + firstmove "wait 1; speed 100; dir 4; emote 7"; + initnpctimer; +} diff --git a/npc/test/rock.txt b/npc/test/rock.txt new file mode 100644 index 0000000..4f769cd --- /dev/null +++ b/npc/test/rock.txt @@ -0,0 +1,178 @@ +// Evol scripts. +// Author: +// Reid +// Description: +// Blacksmith's assistant of Artis +// Variables: +// ArtisQuests_Enora +// Values: +// 0 Default. +// 1 BlackSmith quest delivered. +// 2 Chelios Quest given. +// 3 Chelios Quest done. +// 4 BlackSmith gave the sword. + +test,2,6,0 script rock NPC_PLAYER,{ + + function quest_play { + mes l("Before start witch item do you want to play"); + mes "##B" + l("Drag and drop an item from your inventory.") + "##b"; + + .Item = requestitem(); + if (.Item < 1) + { + mes l("You didn't add a item."); + close; + } + + if (countitem(.Item) < 1) + { + mes l("You don't have the item."); + close; + } + delitem .Item, 1; + goto quest_choose; + } + + function quest_game { + if (.choose == 1){ + mes l("you choose rock."); + next; + } + else if (.choose == 2){ + mes l("you choose scissors."); + next; + } + else { + mes l("you choose paper."); + next; + } + + .npcChoose = rand(3); + if (.npcChoose == 0) + { + mes l("the npc choose rock."); + next; + if (.choose == 1) + { + mes l("draw."); + goto quest_choose; + } + else if (.choose == 2) + { + mes l("you lose"); + close; + } + else if (.choose == 3) + { + mes l("you win"); + getitem .Item, 2; + close; + } + } + else if (.npcChoose == 1) + { + mes l("the npc choose scissors."); + next; + if (.choose == 2) + { + mes l("draw."); + goto quest_choose; + } + else if (.choose == 3) + { + mes l("you lose"); + close; + } + else if (.choose == 1) + { + mes l("you win @@",getitemlink(.Item)); + getitem .Item, 2; + close; + } + } + else if (.npcChoose == 2) + { + mes l("the npc choose paper."); + next; + if (.choose == 3) + { + mes l("draw."); + goto quest_choose; + } + else if (.choose == 1) + { + mes l("you lose"); + close; + } + else if (.choose == 2) + { + mes l("you win"); + getitem .Item, 2; + close; + } + } + close; + } + + + function quest_choose { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("What do you choose?"); + next; + do + { + select + l("Rock"), + l("Scissors"), + l("Paper"); + + switch (@menu) + { + case 1: + .choose = 1; + quest_game; + break; + case 2: + .choose = 2; + quest_game; + break; + case 3: + .choose = 3; + quest_game; + break; + } + } while (@menu != 4); + close; + } + + if (!is_admin()) { + mesc "Error 13: Permission Denied", 1; + close; + } + + speech S_LAST_NEXT, l("Hello do you want to play rock scissors paper?"); + do + { + select + l("Hello"), + menuaction(l("Quit")); + + switch (@menu) + { + case 1: + quest_play; + break; + } + } while (@menu != 2); + + closedialog; + goodbye; + close; + +OnInit: + .sex = G_MALE; + .distance = 3; + end; +} + diff --git a/npc/test/test1.txt b/npc/test/test1.txt new file mode 100644 index 0000000..7297f54 --- /dev/null +++ b/npc/test/test1.txt @@ -0,0 +1,96 @@ +// Evol scripts. +// Author: +// 4144 +// Description: +// script tests + +function script test1function { + .var = .walkmask; + if (.var != 3) + mes "Error: testing test1 npc variables from function."; + .var = getvariableofnpc(.walkmask, "test1"); + if (.var != 3) + mes "Error: testing test1 npc variables from function."; + .var = getvariableofnpc(.walkmask, "test2"); + if (.var != 4) + mes "Error: testing test2 npc variables from function."; + + return; +} + +test,10,5,0 script test1 NPC_HAT_BOX,{ + mes "Npc vars testing..."; + .var = .walkmask; + if (.var != 3) + mes "Error: testing test1 npc variables."; + .var = getvariableofnpc(.walkmask, "test1"); + if (.var != 3) + mes "Error: testing test1 npc variables from function."; + .var = getvariableofnpc(.walkmask, "test2"); + if (.var != 4) + mes "Error: testing test2 npc variables."; + test1function; + mes "Formatting testing for sex: " + str(Sex); + if (l("test @@", "") != "test ") + mes "Error: format string 'l(\"test @@\", \"\")': " + l("test @@", ""); + if (l("test @@", "1") != "test 1") + mes "Error: format string 'l(\"test @@\", \"1\")': " + l("test @@", "1"); + if (l("@@", "") != "") + mes "Error: format string 'l(\"@@\", \"\")': " + l("@@", ""); + if (l("@@") != "@@") + mes "Error: format string 'l(\"@@\")': " + l("@@"); + if (l("@@ @@ @@", "this", "is", "test") != "this is test") + mes "Error: format string 'l(\"@@ @@ @@\", \"this\", \"is\", \"test\") != \"this is test\"': " + l("@@ @@ @@", "this", "is", "test"); + if (l("data @@ @@ @@ data", "this", "is", "test") != "data this is test data") + mes "Error: format string 'l(\"data @@ @@ @@ data\", \"this\", \"is\", \"test\")': " + l("data @@ @@ @@ data", "this", "is", "test"); + if (l("test") != "test") + mes "Error: l(\"test\"): " + l("test"); + if (Sex == 1) + { + if (lg("test") != "test#1") + mes "Error: lg(\"test\"): " + lg("test"); + if (lg("test1", "test2") != "test2#1") + mes "Error: lg(\"test1\", \"test2\"): " + lg("test1", "test2"); + if (lg("test1 @@", "test2 @@", "line") != "test2 line#1") + mes "Error: lg(\"test1 @@\", \"test2 @@\", \"line\"): " + lg("test1 @@", "test2 @@", "line"); + } + else if (Sex == 0) + { + if (lg("test") != "test#0") + mes "Error: lg(\"test\"): " + lg("test"); + if (lg("test1", "test2") != "test1#0") + mes "Error: lg(\"test1\", \"test2\"): " + lg("test1", "test2"); + if (lg("test1 @@", "test2 @@", "line") != "test1 line#0") + mes "Error: lg(\"test1 @@\", \"test2 @@\", \"line\"): " + lg("test1 @@", "test2 @@", "line"); + } + mes "Quest vars testing..."; + .@time = 1000; + setq Test_testing1, 1, 2, 3, .@time; + if (getq(Test_testing1) != 1) + mes "Error: quest variable 1 error. Must be 1, but get " + str(getq(Test_testing1)); + if (getq2(Test_testing1) != 2) + mes "Error: quest variable 2 error. Must be 2, but get " + str(getq(Test_testing1)); + if (getq3(Test_testing1) != 3) + mes "Error: quest variable 3 error. Must be 3, but get " + str(getq(Test_testing1)); + if (getqtime(Test_testing1) != .@time) + mes "Error: quest variable 3 error. Must be 3, but get " + str(getqtime(Test_testing1)); + next; + .@time = 2000; + setq Test_testing1, 2, 3, 4, .@time; + if (getq(Test_testing1) != 2) + mes "Error: quest variable 1 error. Must be 2, but get " + str(getq(Test_testing1)); + if (getq2(Test_testing1) != 3) + mes "Error: quest variable 2 error. Must be 3, but get " + str(getq(Test_testing1)); + if (getq3(Test_testing1) != 4) + mes "Error: quest variable 3 error. Must be 4, but get " + str(getq(Test_testing1)); + if (getqtime(Test_testing1) != .@time) + mes "Error: quest variable 3 error. Must be 3, but get " + str(getqtime(Test_testing1)); + next; + setq Test_testing1, 0; + mes "Tests complete."; + close; + +OnInit: + .walkmask = 3; + end; +} diff --git a/npc/test/test2.txt b/npc/test/test2.txt new file mode 100644 index 0000000..fdc6f84 --- /dev/null +++ b/npc/test/test2.txt @@ -0,0 +1,13 @@ +// Evol scripts. +// Author: +// 4144 +// Description: +// script tests + +test,12,5,0 script test2 NPC_HAT_BOX,{ + close; + +OnInit: + .walkmask = 4; + end; +} |