From cb00f79d48cd19be34cfe83c95d8e86cb04af7f3 Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Sat, 6 Feb 2021 14:18:19 +1300 Subject: [PATCH] Do soemthing i guess? --- DataCollection/gamedata.json | 1721 ++++++----------- .../HorseIsleServer/Game/Messages.cs | 6 +- .../HorseIsleServer/Game/Meta.cs | 2 +- .../HorseIsleServer/Game/Services/Workshop.cs | 51 + .../HorseIsleServer/Server/GameDataJson.cs | 29 + .../HorseIsleServer/Server/GameServer.cs | 21 +- .../HorseIsleServer/Server/PacketBuilder.cs | 2 +- 7 files changed, 748 insertions(+), 1084 deletions(-) create mode 100644 Horse Isle Server/HorseIsleServer/Game/Services/Workshop.cs diff --git a/DataCollection/gamedata.json b/DataCollection/gamedata.json index ddec98b..39b7287 100755 --- a/DataCollection/gamedata.json +++ b/DataCollection/gamedata.json @@ -134,6 +134,12 @@ "venus_flytrap_format":"The Giant Venus Flytrap chomped at you!
OUCH!!
It chomped your pocket, taking $%MONEY% with it!!", "password_input":"
^PLReply:|^PS14|ANSWER^R1", "last_poet":"^R1^LLast Player Poet:%USERNAME% ^R1", + "workshop":{ + "craft_entry":"^I%ICONID%^T6Craft a %ITEMNAME% for $%PRICE%^B4LN%ITEMID%^B4C%CRAFTID%^R1", + "requires":"^H(Requires: %REQUIRES%)", + "require":"%REQCOUNT% %ITEMNAMEPLURAL%", + "and":" and " + }, "drawing_rooms":{ "last_draw":"^R1^LLast Player to Draw:%USERNAME% ^R1", "saved":"Current contents of the Drawing Room saved in your slot #%SLOT%.", @@ -197,6 +203,7 @@ "horses_here":"HORSES HERE:
", "wild_horse":"^I252^T6%NAME%, It's a %BREED%^B3U%RANDOMID%^R1", "cannot_mount_tacked":"Cannot ride horse until fully tacked.", + "dismount_because_tack":"You had to stop riding %HORSENAME% because it no longer had tack.", "horse_timer":"You have 60 seconds to capture the horse. Good luck!", "horse_escaped":"The Horse Evaded Capture.", "hore_caught":"You Captured the Horse!", @@ -546841,264 +546848,7 @@ ], "give_item": 370, "money_cost": 370 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 2, - "required_items": [ - { - "req_item": 372, - "req_quantity": 10 - } - ], - "give_item": 384, - "money_cost": 384 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 3, - "required_items": [ - { - "req_item": 384, - "req_quantity": 1 - }, - { - "req_item": 372, - "req_quantity": 1 - }, - { - "req_item": 78, - "req_quantity": 1 - } - ], - "give_item": 385, - "money_cost": 385 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 4, - "required_items": [ - { - "req_item": 384, - "req_quantity": 1 - }, - { - "req_item": 372, - "req_quantity": 1 - }, - { - "req_item": 77, - "req_quantity": 1 - } - ], - "give_item": 386, - "money_cost": 386 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 5, - "required_items": [ - { - "req_item": 384, - "req_quantity": 1 - }, - { - "req_item": 372, - "req_quantity": 1 - }, - { - "req_item": 75, - "req_quantity": 1 - } - ], - "give_item": 387, - "money_cost": 387 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 6, - "required_items": [ - { - "req_item": 384, - "req_quantity": 1 - }, - { - "req_item": 372, - "req_quantity": 1 - }, - { - "req_item": 347, - "req_quantity": 1 - } - ], - "give_item": 388, - "money_cost": 388 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 7, - "required_items": [ - { - "req_item": 384, - "req_quantity": 1 - }, - { - "req_item": 372, - "req_quantity": 1 - }, - { - "req_item": 3, - "req_quantity": 1 - } - ], - "give_item": 389, - "money_cost": 389 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 8, - "required_items": [ - { - "req_item": 384, - "req_quantity": 1 - }, - { - "req_item": 372, - "req_quantity": 1 - }, - { - "req_item": 74, - "req_quantity": 1 - } - ], - "give_item": 390, - "money_cost": 390 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 9, - "required_items": [ - { - "req_item": 392, - "req_quantity": 10 - } - ], - "give_item": 393, - "money_cost": 393 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 10, - "required_items": [ - { - "req_item": 393, - "req_quantity": 1 - }, - { - "req_item": 392, - "req_quantity": 1 - }, - { - "req_item": 75, - "req_quantity": 1 - } - ], - "give_item": 394, - "money_cost": 394 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 11, - "required_items": [ - { - "req_item": 393, - "req_quantity": 1 - }, - { - "req_item": 392, - "req_quantity": 1 - }, - { - "req_item": 347, - "req_quantity": 1 - } - ], - "give_item": 395, - "money_cost": 395 - } - ] - }, - { - "pos_x": 425, - "pos_y": 145, - "craftable_items": [ - { - "id": 12, - "required_items": [ - { - "req_item": 371, - "req_quantity": 5 - } - ], - "give_item": 440, - "money_cost": 440 - } - ] - }, - { - "pos_x": 314, - "pos_y": 194, - "craftable_items": [ + }, { "id": 13, "required_items": [ @@ -547113,13 +546863,7 @@ ], "give_item": 397, "money_cost": 397 - } - ] - }, - { - "pos_x": 314, - "pos_y": 194, - "craftable_items": [ + }, { "id": 14, "required_items": [ @@ -547134,13 +546878,7 @@ ], "give_item": 398, "money_cost": 398 - } - ] - }, - { - "pos_x": 314, - "pos_y": 194, - "craftable_items": [ + }, { "id": 15, "required_items": [ @@ -547155,13 +546893,7 @@ ], "give_item": 399, "money_cost": 399 - } - ] - }, - { - "pos_x": 314, - "pos_y": 194, - "craftable_items": [ + }, { "id": 16, "required_items": [ @@ -547179,10 +546911,334 @@ } ] }, + { + "pos_x": 372, + "pos_y": 183, + "craftable_items": [ + { + "id": 2, + "required_items": [ + { + "req_item": 372, + "req_quantity": 10 + } + ], + "give_item": 384, + "money_cost": 384 + }, + { + "id": 3, + "required_items": [ + { + "req_item": 384, + "req_quantity": 1 + }, + { + "req_item": 372, + "req_quantity": 1 + }, + { + "req_item": 78, + "req_quantity": 1 + } + ], + "give_item": 385, + "money_cost": 385 + }, + { + "id": 4, + "required_items": [ + { + "req_item": 384, + "req_quantity": 1 + }, + { + "req_item": 372, + "req_quantity": 1 + }, + { + "req_item": 77, + "req_quantity": 1 + } + ], + "give_item": 386, + "money_cost": 386 + }, + { + "id": 5, + "required_items": [ + { + "req_item": 384, + "req_quantity": 1 + }, + { + "req_item": 372, + "req_quantity": 1 + }, + { + "req_item": 75, + "req_quantity": 1 + } + ], + "give_item": 387, + "money_cost": 387 + }, + { + "id": 6, + "required_items": [ + { + "req_item": 384, + "req_quantity": 1 + }, + { + "req_item": 372, + "req_quantity": 1 + }, + { + "req_item": 347, + "req_quantity": 1 + } + ], + "give_item": 388, + "money_cost": 388 + }, + { + "id": 7, + "required_items": [ + { + "req_item": 384, + "req_quantity": 1 + }, + { + "req_item": 372, + "req_quantity": 1 + }, + { + "req_item": 3, + "req_quantity": 1 + } + ], + "give_item": 389, + "money_cost": 389 + }, + { + "id": 8, + "required_items": [ + { + "req_item": 384, + "req_quantity": 1 + }, + { + "req_item": 372, + "req_quantity": 1 + }, + { + "req_item": 74, + "req_quantity": 1 + } + ], + "give_item": 390, + "money_cost": 390 + }, + { + "id": 9, + "required_items": [ + { + "req_item": 392, + "req_quantity": 10 + } + ], + "give_item": 393, + "money_cost": 393 + }, + { + "id": 10, + "required_items": [ + { + "req_item": 393, + "req_quantity": 1 + }, + { + "req_item": 392, + "req_quantity": 1 + }, + { + "req_item": 75, + "req_quantity": 1 + } + ], + "give_item": 394, + "money_cost": 394 + }, + { + "id": 11, + "required_items": [ + { + "req_item": 393, + "req_quantity": 1 + }, + { + "req_item": 392, + "req_quantity": 1 + }, + { + "req_item": 347, + "req_quantity": 1 + } + ], + "give_item": 395, + "money_cost": 395 + }, + { + "id": 89, + "required_items": [ + { + "req_item": 393, + "req_quantity": 1 + }, + { + "req_item": 392, + "req_quantity": 1 + }, + { + "req_item": 760, + "req_quantity": 3 + } + ], + "give_item": 1364, + "money_cost": 1364 + }, + { + "id": 90, + "required_items": [ + { + "req_item": 393, + "req_quantity": 1 + }, + { + "req_item": 392, + "req_quantity": 1 + }, + { + "req_item": 761, + "req_quantity": 3 + } + ], + "give_item": 1365, + "money_cost": 1365 + }, + { + "id": 91, + "required_items": [ + { + "req_item": 393, + "req_quantity": 1 + }, + { + "req_item": 392, + "req_quantity": 1 + }, + { + "req_item": 762, + "req_quantity": 3 + } + ], + "give_item": 1366, + "money_cost": 1366 + }, + { + "id": 92, + "required_items": [ + { + "req_item": 393, + "req_quantity": 1 + }, + { + "req_item": 392, + "req_quantity": 1 + }, + { + "req_item": 763, + "req_quantity": 3 + } + ], + "give_item": 1367, + "money_cost": 1367 + }, + { + "id": 93, + "required_items": [ + { + "req_item": 393, + "req_quantity": 1 + }, + { + "req_item": 392, + "req_quantity": 1 + }, + { + "req_item": 764, + "req_quantity": 3 + } + ], + "give_item": 1368, + "money_cost": 1368 + }, + { + "id": 94, + "required_items": [ + { + "req_item": 393, + "req_quantity": 1 + }, + { + "req_item": 392, + "req_quantity": 1 + }, + { + "req_item": 765, + "req_quantity": 3 + } + ], + "give_item": 1369, + "money_cost": 1369 + }, + { + "id": 95, + "required_items": [ + { + "req_item": 393, + "req_quantity": 1 + }, + { + "req_item": 392, + "req_quantity": 1 + }, + { + "req_item": 766, + "req_quantity": 3 + } + ], + "give_item": 1370, + "money_cost": 1370 + } + ] + }, { "pos_x": 425, "pos_y": 145, "craftable_items": [ + { + "id": 12, + "required_items": [ + { + "req_item": 371, + "req_quantity": 5 + } + ], + "give_item": 440, + "money_cost": 440 + }, { "id": 17, "required_items": [ @@ -547193,13 +547249,7 @@ ], "give_item": 441, "money_cost": 441 - } - ] - }, - { - "pos_x": 425, - "pos_y": 145, - "craftable_items": [ + }, { "id": 18, "required_items": [ @@ -547210,13 +547260,7 @@ ], "give_item": 442, "money_cost": 442 - } - ] - }, - { - "pos_x": 425, - "pos_y": 145, - "craftable_items": [ + }, { "id": 19, "required_items": [ @@ -547227,6 +547271,17 @@ ], "give_item": 443, "money_cost": 443 + }, + { + "id": 56, + "required_items": [ + { + "req_item": 371, + "req_quantity": 25 + } + ], + "give_item": 567, + "money_cost": 567 } ] }, @@ -547244,13 +547299,7 @@ ], "give_item": 446, "money_cost": 446 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 21, "required_items": [ @@ -547269,13 +547318,7 @@ ], "give_item": 448, "money_cost": 448 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 22, "required_items": [ @@ -547294,13 +547337,7 @@ ], "give_item": 449, "money_cost": 449 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 23, "required_items": [ @@ -547319,13 +547356,7 @@ ], "give_item": 450, "money_cost": 450 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 24, "required_items": [ @@ -547344,13 +547375,7 @@ ], "give_item": 451, "money_cost": 451 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 25, "required_items": [ @@ -547369,13 +547394,7 @@ ], "give_item": 453, "money_cost": 453 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 26, "required_items": [ @@ -547394,13 +547413,7 @@ ], "give_item": 454, "money_cost": 454 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 27, "required_items": [ @@ -547419,13 +547432,7 @@ ], "give_item": 456, "money_cost": 456 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 28, "required_items": [ @@ -547444,13 +547451,7 @@ ], "give_item": 457, "money_cost": 457 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 29, "required_items": [ @@ -547469,13 +547470,7 @@ ], "give_item": 458, "money_cost": 458 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 30, "required_items": [ @@ -547494,13 +547489,7 @@ ], "give_item": 459, "money_cost": 459 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 31, "required_items": [ @@ -547519,13 +547508,7 @@ ], "give_item": 460, "money_cost": 460 - } - ] - }, - { - "pos_x": 594, - "pos_y": 306, - "craftable_items": [ + }, { "id": 32, "required_items": [ @@ -547569,13 +547552,7 @@ ], "give_item": 462, "money_cost": 462 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 34, "required_items": [ @@ -547594,13 +547571,7 @@ ], "give_item": 469, "money_cost": 469 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 35, "required_items": [ @@ -547619,13 +547590,7 @@ ], "give_item": 470, "money_cost": 470 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 36, "required_items": [ @@ -547644,13 +547609,7 @@ ], "give_item": 471, "money_cost": 471 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 37, "required_items": [ @@ -547669,13 +547628,7 @@ ], "give_item": 472, "money_cost": 472 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 38, "required_items": [ @@ -547690,13 +547643,7 @@ ], "give_item": 473, "money_cost": 473 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 39, "required_items": [ @@ -547715,13 +547662,7 @@ ], "give_item": 467, "money_cost": 467 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 40, "required_items": [ @@ -547740,226 +547681,7 @@ ], "give_item": 468, "money_cost": 468 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 52, - "required_items": [ - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 52, - "req_quantity": 15 - } - ], - "give_item": 571, - "money_cost": 571 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 53, - "required_items": [ - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 60, - "req_quantity": 15 - } - ], - "give_item": 572, - "money_cost": 572 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 54, - "required_items": [ - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 40, - "req_quantity": 15 - } - ], - "give_item": 573, - "money_cost": 573 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 55, - "required_items": [ - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 53, - "req_quantity": 15 - } - ], - "give_item": 574, - "money_cost": 574 - } - ] - }, - { - "pos_x": 425, - "pos_y": 145, - "craftable_items": [ - { - "id": 56, - "required_items": [ - { - "req_item": 371, - "req_quantity": 25 - } - ], - "give_item": 567, - "money_cost": 567 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 57, - "required_items": [ - { - "req_item": 441, - "req_quantity": 2 - }, - { - "req_item": 439, - "req_quantity": 3 - } - ], - "give_item": 578, - "money_cost": 578 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 58, - "required_items": [ - { - "req_item": 466, - "req_quantity": 1 - }, - { - "req_item": 438, - "req_quantity": 5 - }, - { - "req_item": 444, - "req_quantity": 15 - } - ], - "give_item": 577, - "money_cost": 577 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 59, - "required_items": [ - { - "req_item": 577, - "req_quantity": 1 - }, - { - "req_item": 578, - "req_quantity": 1 - }, - { - "req_item": 442, - "req_quantity": 2 - } - ], - "give_item": 570, - "money_cost": 570 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 60, - "required_items": [ - { - "req_item": 439, - "req_quantity": 5 - }, - { - "req_item": 440, - "req_quantity": 2 - }, - { - "req_item": 567, - "req_quantity": 1 - } - ], - "give_item": 569, - "money_cost": 569 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 61, "required_items": [ @@ -547978,63 +547700,7 @@ ], "give_item": 788, "money_cost": 788 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 62, - "required_items": [ - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 51, - "req_quantity": 15 - } - ], - "give_item": 789, - "money_cost": 789 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 63, - "required_items": [ - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 39, - "req_quantity": 10 - } - ], - "give_item": 790, - "money_cost": 790 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 64, "required_items": [ @@ -548053,13 +547719,7 @@ ], "give_item": 791, "money_cost": 791 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 65, "required_items": [ @@ -548078,13 +547738,7 @@ ], "give_item": 856, "money_cost": 856 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 66, "required_items": [ @@ -548103,13 +547757,7 @@ ], "give_item": 857, "money_cost": 857 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 67, "required_items": [ @@ -548128,13 +547776,7 @@ ], "give_item": 858, "money_cost": 858 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 68, "required_items": [ @@ -548153,113 +547795,7 @@ ], "give_item": 859, "money_cost": 859 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 69, - "required_items": [ - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 43, - "req_quantity": 15 - } - ], - "give_item": 860, - "money_cost": 860 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 70, - "required_items": [ - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 371, - "req_quantity": 15 - } - ], - "give_item": 861, - "money_cost": 861 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 71, - "required_items": [ - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 71, - "req_quantity": 10 - } - ], - "give_item": 862, - "money_cost": 862 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ - { - "id": 72, - "required_items": [ - { - "req_item": 446, - "req_quantity": 4 - }, - { - "req_item": 444, - "req_quantity": 15 - }, - { - "req_item": 54, - "req_quantity": 15 - } - ], - "give_item": 863, - "money_cost": 863 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 77, "required_items": [ @@ -548278,13 +547814,7 @@ ], "give_item": 1089, "money_cost": 1089 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 78, "required_items": [ @@ -548303,13 +547833,7 @@ ], "give_item": 1090, "money_cost": 1090 - } - ] - }, - { - "pos_x": 634, - "pos_y": 139, - "craftable_items": [ + }, { "id": 79, "required_items": [ @@ -548335,6 +547859,268 @@ "pos_x": 228, "pos_y": 171, "craftable_items": [ + { + "id": 52, + "required_items": [ + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 52, + "req_quantity": 15 + } + ], + "give_item": 571, + "money_cost": 571 + }, + { + "id": 53, + "required_items": [ + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 60, + "req_quantity": 15 + } + ], + "give_item": 572, + "money_cost": 572 + }, + { + "id": 54, + "required_items": [ + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 40, + "req_quantity": 15 + } + ], + "give_item": 573, + "money_cost": 573 + }, + { + "id": 55, + "required_items": [ + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 53, + "req_quantity": 15 + } + ], + "give_item": 574, + "money_cost": 574 + }, + { + "id": 57, + "required_items": [ + { + "req_item": 441, + "req_quantity": 2 + }, + { + "req_item": 439, + "req_quantity": 3 + } + ], + "give_item": 578, + "money_cost": 578 + }, + { + "id": 58, + "required_items": [ + { + "req_item": 466, + "req_quantity": 1 + }, + { + "req_item": 438, + "req_quantity": 5 + }, + { + "req_item": 444, + "req_quantity": 15 + } + ], + "give_item": 577, + "money_cost": 577 + }, + { + "id": 59, + "required_items": [ + { + "req_item": 577, + "req_quantity": 1 + }, + { + "req_item": 578, + "req_quantity": 1 + }, + { + "req_item": 442, + "req_quantity": 2 + } + ], + "give_item": 570, + "money_cost": 570 + }, + { + "id": 60, + "required_items": [ + { + "req_item": 439, + "req_quantity": 5 + }, + { + "req_item": 440, + "req_quantity": 2 + }, + { + "req_item": 567, + "req_quantity": 1 + } + ], + "give_item": 569, + "money_cost": 569 + }, + { + "id": 62, + "required_items": [ + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 51, + "req_quantity": 15 + } + ], + "give_item": 789, + "money_cost": 789 + }, + { + "id": 63, + "required_items": [ + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 39, + "req_quantity": 10 + } + ], + "give_item": 790, + "money_cost": 790 + }, + { + "id": 69, + "required_items": [ + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 43, + "req_quantity": 15 + } + ], + "give_item": 860, + "money_cost": 860 + }, + { + "id": 70, + "required_items": [ + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 371, + "req_quantity": 15 + } + ], + "give_item": 861, + "money_cost": 861 + }, + { + "id": 71, + "required_items": [ + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 71, + "req_quantity": 10 + } + ], + "give_item": 862, + "money_cost": 862 + }, + { + "id": 72, + "required_items": [ + { + "req_item": 446, + "req_quantity": 4 + }, + { + "req_item": 444, + "req_quantity": 15 + }, + { + "req_item": 54, + "req_quantity": 15 + } + ], + "give_item": 863, + "money_cost": 863 + }, { "id": 80, "required_items": [ @@ -548353,13 +548139,7 @@ ], "give_item": 1094, "money_cost": 1094 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ + }, { "id": 81, "required_items": [ @@ -548378,13 +548158,7 @@ ], "give_item": 1092, "money_cost": 1092 - } - ] - }, - { - "pos_x": 228, - "pos_y": 171, - "craftable_items": [ + }, { "id": 82, "required_items": [ @@ -548420,13 +548194,7 @@ ], "give_item": 1234, "money_cost": 1234 - } - ] - }, - { - "pos_x": 455, - "pos_y": 97, - "craftable_items": [ + }, { "id": 84, "required_items": [ @@ -548437,13 +548205,7 @@ ], "give_item": 393, "money_cost": 393 - } - ] - }, - { - "pos_x": 455, - "pos_y": 97, - "craftable_items": [ + }, { "id": 85, "required_items": [ @@ -548454,13 +548216,7 @@ ], "give_item": 1235, "money_cost": 1235 - } - ] - }, - { - "pos_x": 455, - "pos_y": 97, - "craftable_items": [ + }, { "id": 86, "required_items": [ @@ -548479,13 +548235,7 @@ ], "give_item": 1240, "money_cost": 1240 - } - ] - }, - { - "pos_x": 455, - "pos_y": 97, - "craftable_items": [ + }, { "id": 87, "required_items": [ @@ -548504,13 +548254,7 @@ ], "give_item": 1241, "money_cost": 1241 - } - ] - }, - { - "pos_x": 455, - "pos_y": 97, - "craftable_items": [ + }, { "id": 88, "required_items": [ @@ -548531,181 +548275,6 @@ "money_cost": 1242 } ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 89, - "required_items": [ - { - "req_item": 393, - "req_quantity": 1 - }, - { - "req_item": 392, - "req_quantity": 1 - }, - { - "req_item": 760, - "req_quantity": 3 - } - ], - "give_item": 1364, - "money_cost": 1364 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 90, - "required_items": [ - { - "req_item": 393, - "req_quantity": 1 - }, - { - "req_item": 392, - "req_quantity": 1 - }, - { - "req_item": 761, - "req_quantity": 3 - } - ], - "give_item": 1365, - "money_cost": 1365 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 91, - "required_items": [ - { - "req_item": 393, - "req_quantity": 1 - }, - { - "req_item": 392, - "req_quantity": 1 - }, - { - "req_item": 762, - "req_quantity": 3 - } - ], - "give_item": 1366, - "money_cost": 1366 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 92, - "required_items": [ - { - "req_item": 393, - "req_quantity": 1 - }, - { - "req_item": 392, - "req_quantity": 1 - }, - { - "req_item": 763, - "req_quantity": 3 - } - ], - "give_item": 1367, - "money_cost": 1367 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 93, - "required_items": [ - { - "req_item": 393, - "req_quantity": 1 - }, - { - "req_item": 392, - "req_quantity": 1 - }, - { - "req_item": 764, - "req_quantity": 3 - } - ], - "give_item": 1368, - "money_cost": 1368 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 94, - "required_items": [ - { - "req_item": 393, - "req_quantity": 1 - }, - { - "req_item": 392, - "req_quantity": 1 - }, - { - "req_item": 765, - "req_quantity": 3 - } - ], - "give_item": 1369, - "money_cost": 1369 - } - ] - }, - { - "pos_x": 372, - "pos_y": 183, - "craftable_items": [ - { - "id": 95, - "required_items": [ - { - "req_item": 393, - "req_quantity": 1 - }, - { - "req_item": 392, - "req_quantity": 1 - }, - { - "req_item": 766, - "req_quantity": 3 - } - ], - "give_item": 1370, - "money_cost": 1370 - } - ] } ] } diff --git a/Horse Isle Server/HorseIsleServer/Game/Messages.cs b/Horse Isle Server/HorseIsleServer/Game/Messages.cs index b5e742f..ef5bbfc 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Messages.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Messages.cs @@ -243,6 +243,7 @@ namespace HISP.Game public static string HorseIsTrainable; public static string HorseCannotMountUntilTackedMessage; + public static string HorseDismountedBecauseNotTackedMessageFormat; public static string HorseMountButtonFormat; public static string HorseDisMountButtonFormat; public static string HorseFeedButtonFormat; @@ -765,7 +766,10 @@ namespace HISP.Game { return HorseCompanionEntryFormat.Replace("%ICONID%", icon.ToString()).Replace("%COUNT%", count.ToString("N0")).Replace("%NAME%", name).Replace("%ID%", id.ToString()); } - + public static string FormatHorseDismountedBecauseTackedMessage(string horsename) + { + return HorseDismountedBecauseNotTackedMessageFormat.Replace("%HORSENAME%", horsename); + } public static string FormatAutoSellConfirmedMessage(int money) { return HorseAutoSellConfirmedFormat.Replace("%MONEY%", money.ToString("N0")); diff --git a/Horse Isle Server/HorseIsleServer/Game/Meta.cs b/Horse Isle Server/HorseIsleServer/Game/Meta.cs index 8663cf9..a97eef3 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Meta.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Meta.cs @@ -1430,7 +1430,7 @@ namespace HISP.Game message += Messages.FormatHorseAdvancedStat(agilityStat.BreedValue, agilityStat.CompanionOffset, agilityStat.TackOffset, agilityStat.MaxValue); message += Messages.FormatHorseAdvancedStat(enduranceStat.BreedValue, enduranceStat.CompanionOffset, enduranceStat.TackOffset, enduranceStat.MaxValue); message += Messages.FormatHorseAdvancedStat(inteligenceStat.BreedValue, inteligenceStat.CompanionOffset, inteligenceStat.TackOffset, inteligenceStat.MaxValue); - message += Messages.FormatHorseAdvancedStat(agilityStat.BreedValue, personalityStat.CompanionOffset, personalityStat.TackOffset, personalityStat.MaxValue); + message += Messages.FormatHorseAdvancedStat(personalityStat.BreedValue, personalityStat.CompanionOffset, personalityStat.TackOffset, personalityStat.MaxValue); message += Messages.FormatHorseBreedDetails(horse.Breed.Name, horse.Breed.Description); message += Messages.FormatHorseHeight(Convert.ToInt32(Math.Floor(HorseInfo.CalculateHands(horse.Breed.BaseStats.MinHeight))), Convert.ToInt32(Math.Floor(HorseInfo.CalculateHands(horse.Breed.BaseStats.MaxHeight)))); diff --git a/Horse Isle Server/HorseIsleServer/Game/Services/Workshop.cs b/Horse Isle Server/HorseIsleServer/Game/Services/Workshop.cs new file mode 100644 index 0000000..dccf782 --- /dev/null +++ b/Horse Isle Server/HorseIsleServer/Game/Services/Workshop.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HISP.Game.Services +{ + public class Workshop + { + public Workshop() + { + CraftableItems = new List(); + } + public class RequiredItem + { + public int RequiredItemId; + public int RequiredItemCount; + } + public class CraftableItem + { + public CraftableItem() + { + RequiredItems = new List(); + } + public int Id; + public int GiveItemId; + public int MoneyCost; + public List RequiredItems; + } + public int X; + public int Y; + public List CraftableItems; + + public static List Workshops = new List(); + + public static CraftableItem GetCraftId(int id) + { + foreach(Workshop wkShop in Workshops) + { + foreach(CraftableItem crftItem in wkShop.CraftableItems) + { + if (crftItem.Id == id) + return crftItem; + } + } + throw new KeyNotFoundException("No craft id " + id + " was found."); + } + + } +} diff --git a/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs b/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs index ea6c3be..ac58b8d 100755 --- a/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs +++ b/Horse Isle Server/HorseIsleServer/Server/GameDataJson.cs @@ -545,6 +545,34 @@ namespace HISP.Server Book book = new Book(id, title, author, text); Logger.DebugPrint("Registered Libary Book: " + book.Id + " " + book.Title + " by " + book.Author); + } + int totalWorkshops = gameData.workshop.Count; + for (int i = 0; i < totalWorkshops; i++) + { + Workshop wkShop = new Workshop(); + wkShop.X = gameData.workshop[i].pos_x; + wkShop.Y = gameData.workshop[i].pos_y; + int totalCraftableItems = gameData.workshop[i].craftable_items.Count; + for(int ii = 0; ii < totalCraftableItems; ii++) + { + Workshop.CraftableItem craftableItem = new Workshop.CraftableItem(); + craftableItem.Id = gameData.workshop[i].craftable_items[ii].id; + craftableItem.GiveItemId = gameData.workshop[i].craftable_items[ii].give_item; + craftableItem.MoneyCost = gameData.workshop[i].craftable_items[ii].money_cost; + int totalItemsRequired = gameData.workshop[i].craftable_items[ii].required_items.Count; + for(int iii = 0; iii < 0; iii++) + { + Workshop.RequiredItem requiredItem = new Workshop.RequiredItem(); + requiredItem.RequiredItemId = totalItemsRequired = gameData.workshop[i].craftable_items[ii].required_items[iii].req_item; + requiredItem.RequiredItemId = totalItemsRequired = gameData.workshop[i].craftable_items[ii].required_items[iii].req_quantity; + craftableItem.RequiredItems.Add(requiredItem); + } + wkShop.CraftableItems.Add(craftableItem); + } + + Workshop.Workshops.Add(wkShop); + Logger.DebugPrint("Registered Workshop at X: " + wkShop.X + " Y: " + wkShop.Y); + } HorseInfo.HorseNames = gameData.horses.names.ToObject(); @@ -759,6 +787,7 @@ namespace HISP.Server Messages.HorseIsTrainable = gameData.messages.meta.horse.horse_inventory.currently_trainable; Messages.HorseCannotMountUntilTackedMessage = gameData.messages.meta.horse.cannot_mount_tacked; + Messages.HorseDismountedBecauseNotTackedMessageFormat = gameData.messages.meta.horse.dismount_because_tack; Messages.HorseMountButtonFormat = gameData.messages.meta.horse.horse_inventory.mount_button; Messages.HorseDisMountButtonFormat = gameData.messages.meta.horse.horse_inventory.dismount_button; Messages.HorseFeedButtonFormat = gameData.messages.meta.horse.horse_inventory.feed_button; diff --git a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs index 8e9a2d6..a81058e 100755 --- a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs +++ b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs @@ -61,7 +61,7 @@ namespace HISP.Server Database.IncAllUsersFreeTime(1); } - if(totalMinutesElapsed % 24 == 0) + if(totalMinutesElapsed % 20 == 0) Database.DoIntrestPayments(ConfigReader.IntrestRate); @@ -477,7 +477,7 @@ namespace HISP.Server } else { - Logger.HackerPrint(sender.LoggedinUser.Username + " Tried to tack at a non existant horse."); + Logger.HackerPrint(sender.LoggedinUser.Username + " Tried to release at a non existant horse."); break; } case PacketBuilder.HORSE_TACK: @@ -712,6 +712,17 @@ namespace HISP.Server byte[] itemUnequipedMessage = PacketBuilder.CreateChat(Messages.FormatUnEquipTackMessage(sender.LoggedinUser.LastViewedHorse.Name), PacketBuilder.CHAT_BOTTOM_RIGHT); sender.SendPacket(itemUnequipedMessage); + if(sender.LoggedinUser.CurrentlyRidingHorse != null) + { + if(sender.LoggedinUser.CurrentlyRidingHorse.RandomId == sender.LoggedinUser.LastViewedHorse.RandomId) + { + sender.LoggedinUser.CurrentlyRidingHorse = null; + sender.LoggedinUser.Facing %= 5; + byte[] disMounted = PacketBuilder.CreateChat(Messages.FormatHorseDismountedBecauseTackedMessage(sender.LoggedinUser.CurrentlyRidingHorse.Name), PacketBuilder.CHAT_BOTTOM_RIGHT); + sender.SendPacket(disMounted); + } + } + sender.LoggedinUser.MetaPriority = true; byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTackMenu(sender.LoggedinUser.LastViewedHorse, sender.LoggedinUser)); sender.SendPacket(metaPacket); @@ -1384,17 +1395,17 @@ namespace HISP.Server sender.SendPacket(metaPacket); } break; - case "33": + case "33": // View All stats (Horse) sender.LoggedinUser.MetaPriority = true; metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildAllBasicStats(sender.LoggedinUser)); sender.SendPacket(metaPacket); break; - case "34": + case "34": // View Basic stats (Horse) sender.LoggedinUser.MetaPriority = true; metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildAllStats(sender.LoggedinUser)); sender.SendPacket(metaPacket); break; - case "38": + case "38": // Read Books sender.LoggedinUser.MetaPriority = true; metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildBooksLibary()); sender.SendPacket(metaPacket); diff --git a/Horse Isle Server/HorseIsleServer/Server/PacketBuilder.cs b/Horse Isle Server/HorseIsleServer/Server/PacketBuilder.cs index e799958..a5df1f9 100755 --- a/Horse Isle Server/HorseIsleServer/Server/PacketBuilder.cs +++ b/Horse Isle Server/HorseIsleServer/Server/PacketBuilder.cs @@ -830,7 +830,7 @@ namespace HISP.Server ms.Seek(0x00, SeekOrigin.Begin); byte[] Packet = ms.ToArray(); ms.Dispose(); - Logger.InfoPrint("Sending load "+(char)type + swf + " packet"); + Logger.DebugPrint("Sending load "+(char)type + swf + " packet"); return Packet; } public static byte[] CreateAnnouncement(string announcement)