mirror of
https://github.com/islehorse/HISP.git
synced 2025-04-12 07:59:48 +12:00
Add socials to the game.
This commit is contained in:
parent
4e333d1387
commit
ba64c364f4
11 changed files with 699 additions and 122 deletions
|
@ -209,6 +209,7 @@
|
||||||
"end_of_meta":"^Z",
|
"end_of_meta":"^Z",
|
||||||
"back_to_map":"^M",
|
"back_to_map":"^M",
|
||||||
"back_to_map_horse":"^MM",
|
"back_to_map_horse":"^MM",
|
||||||
|
"r1":"^R1",
|
||||||
"long_full_line":"^L",
|
"long_full_line":"^L",
|
||||||
"fountain":"Although it's not recommended, you could drink from this fountain if you are thirsty...^T6Drink from the public fountain. ^B1D^R1^X^Z",
|
"fountain":"Although it's not recommended, you could drink from this fountain if you are thirsty...^T6Drink from the public fountain. ^B1D^R1^X^Z",
|
||||||
"venus_flytrap_format":"The Giant Venus Flytrap chomped at you!<BR><B>OUCH!!</B><BR>It chomped your pocket, taking $%MONEY% with it!!",
|
"venus_flytrap_format":"The Giant Venus Flytrap chomped at you!<BR><B>OUCH!!</B><BR>It chomped your pocket, taking $%MONEY% with it!!",
|
||||||
|
@ -218,13 +219,17 @@
|
||||||
"player_interaction":{
|
"player_interaction":{
|
||||||
"players_here":"<B>Players Here:</B>",
|
"players_here":"<B>Players Here:</B>",
|
||||||
"menu":"^I%PLAYERICON%^T1%PLAYERNAME%%BUTTONS%^R1",
|
"menu":"^I%PLAYERICON%^T1%PLAYERNAME%%BUTTONS%^R1",
|
||||||
"multiple_players_menu":"^B5AHUG^B5BDOG PILE^B5CDANCE^B5DHUDDLE^B5EHOWL^R1",
|
|
||||||
"profiile_button":"^B1L%PLAYERID%",
|
"profiile_button":"^B1L%PLAYERID%",
|
||||||
"social_button":"^B1S%PLAYERID%",
|
"social_button":"^B1S%PLAYERID%",
|
||||||
"trade_button":"^B1T%PLAYERID%",
|
"trade_button":"^B1T%PLAYERID%",
|
||||||
"buddy_button":"^B1B%PLAYERID%",
|
"buddy_button":"^B1B%PLAYERID%",
|
||||||
"tag_button":"^B1X%PLAYERID%",
|
"tag_button":"^B1X%PLAYERID%",
|
||||||
"pm_button":"^B1P%PLAYERNAME%",
|
"pm_button":"^B1P%PLAYERNAME%",
|
||||||
|
"socials":{
|
||||||
|
"socials_button":"^B5%ID%%SOCIALNAME%",
|
||||||
|
"socials_message":"<FONT COLOR='#BA0042'>* %SOCIALMSG% *</FONT>",
|
||||||
|
"socials_menu_type":"^L%TYPE%:^R1"
|
||||||
|
},
|
||||||
"trade":{
|
"trade":{
|
||||||
"trading_with":"^ATTrading with %PLAYERNAME%",
|
"trading_with":"^ATTrading with %PLAYERNAME%",
|
||||||
|
|
||||||
|
@ -644,6 +649,8 @@
|
||||||
"cant_release_currently_riding":"You cannot release the horse you are riding!",
|
"cant_release_currently_riding":"You cannot release the horse you are riding!",
|
||||||
"released_horse":"You released the horse! It now roams Horse Isle freely. It will disappear in an hour.",
|
"released_horse":"You released the horse! It now roams Horse Isle freely. It will disappear in an hour.",
|
||||||
"horse_bucked":"Your inexperienced horse has become frustrated and has <B>bucked you off</B>! (Horse gained 1exp)",
|
"horse_bucked":"Your inexperienced horse has become frustrated and has <B>bucked you off</B>! (Horse gained 1exp)",
|
||||||
|
"llama_bucked":"Your inexperienced llama has become tired and <B>lain down</B>! (Llama gained 1exp)",
|
||||||
|
"camel_bucked":"Your inexperienced camel got frustrated and <B>spat angrily</B>, bumping you off! (Camel gained 1exp)",
|
||||||
|
|
||||||
"auto_sell_success":"Horse %HORSENAME% Purchase Completed!",
|
"auto_sell_success":"Horse %HORSENAME% Purchase Completed!",
|
||||||
"auto_sell_insufficent_money":"You cannot afford that horse!",
|
"auto_sell_insufficent_money":"You cannot afford that horse!",
|
||||||
|
@ -1013,112 +1020,6 @@
|
||||||
},
|
},
|
||||||
"seperator":"<BR>",
|
"seperator":"<BR>",
|
||||||
},
|
},
|
||||||
"socials":{
|
|
||||||
"for_sender":{
|
|
||||||
"friendly":{
|
|
||||||
"smile":"<FONT COLOR='#BA0042'>* You smile at %USERNAME%. *</FONT>",
|
|
||||||
"wave":"<FONT COLOR='#BA0042'>* You wave enthusiastically at %USERNAME%! *</FONT>",
|
|
||||||
"wink":"<FONT COLOR='#BA0042'>* You sneak a wink off to %USERNAME%. *</FONT>",
|
|
||||||
"laugh":"<FONT COLOR='#BA0042'>* You laugh at %USERNAME%'s humor. *</FONT>",
|
|
||||||
"high5":"<FONT COLOR='#BA0042'>* You give a big high-five to %USERNAME%! *</FONT>",
|
|
||||||
"clap":"<FONT COLOR='#BA0042'>* You clap at what %USERNAME% has done! *</FONT>",
|
|
||||||
"hug":"<FONT COLOR='#BA0042'>* You give %USERNAME% a welcome hug. *</FONT>",
|
|
||||||
"bearhug":"<FONT COLOR='#BA0042'>* You nearly crush %USERNAME% with your massive bearhug! *</FONT>",
|
|
||||||
"dance":"<FONT COLOR='#BA0042'>* You do a little dance with %USERNAME%! *</FONT>",
|
|
||||||
"nod":"<FONT COLOR='#BA0042'>* You nod at %USERNAME%. *</FONT>",
|
|
||||||
"tickle":"<FONT COLOR='#BA0042'>* You tickle %USERNAME%'s sides. *</FONT>",
|
|
||||||
"thumbsup":"<FONT COLOR='#BA0042'>* You give %USERNAME% an enthusiastic thumbs up. *</FONT>",
|
|
||||||
"shoulderpat":"<FONT COLOR='#BA0042'>* You pat %USERNAME% comfortingly on the shoulder. *</FONT>",
|
|
||||||
"circle":"<FONT COLOR='#BA0042'>* You run circles around %USERNAME% making them dizzy. *</FONT>",
|
|
||||||
"glomp":"<FONT COLOR='#BA0042'>* You surprise %USERNAME% by tackling and hugging them very tightly! %USERNAME% squeaks in surprise! *</FONT>",
|
|
||||||
"beam":"<FONT COLOR='#BA0042'>* You produce one of the biggest, happiest faces possible towards %USERNAME%! *</FONT>",
|
|
||||||
"handshake":"<FONT COLOR='#BA0042'>* You shake hands with %USERNAME% enthusiastically. *</FONT>",
|
|
||||||
"rofl":"<FONT COLOR='#BA0042'>* %USERNAME% is so funny you end up rolling on the floor from laughing so hard!! *</FONT>",
|
|
||||||
"spin":"<FONT COLOR='#BA0042'>* You playfully spin %USERNAME% in circles making them dizzy. *</FONT>",
|
|
||||||
"sing":"<FONT COLOR='#BA0042'>* You sing a silly song to %USERNAME% hoping they laugh. *</FONT>",
|
|
||||||
"flail":"<FONT COLOR='#BA0042'>* You flail wildly at %USERNAME%! *</FONT>"
|
|
||||||
},
|
|
||||||
"unfriendly":{
|
|
||||||
"frown":"<FONT COLOR='#BA0042'>* You frown upon %USERNAME%'s behavior. *</FONT>",
|
|
||||||
"poke":"<FONT COLOR='#BA0042'>* You poke %USERNAME% right in the ribs! *</FONT>",
|
|
||||||
"ignore":"<FONT COLOR='#BA0042'>* You stick your nose in the air and ignore %USERNAME%s childish behavior! *</FONT>",
|
|
||||||
"growl":"<FONT COLOR='#BA0042'>* In a deep growling voice, you attempt to frighten %USERNAME%! *</FONT>",
|
|
||||||
"point":"<FONT COLOR='#BA0042'>* You point jokingly at %USERNAME%! *</FONT>",
|
|
||||||
"burp":"<FONT COLOR='#BA0042'>* BuuuuuuuurrrrP! *</FONT>",
|
|
||||||
"cry":"<FONT COLOR='#BA0042'>* %USERNAME% has made you cry like a little baby! *</FONT>",
|
|
||||||
"yell":"<FONT COLOR='#BA0042'>* You start yelling angrily at %USERNAME%. *</FONT>",
|
|
||||||
"nudge":"<FONT COLOR='#BA0042'>* You nudge %USERNAME% carefully out of your way. *</FONT>",
|
|
||||||
"yawn":"<FONT COLOR='#BA0042'>* YYYYAAAAWWWWNNNNN... Boy %USERNAME% is boring... *</FONT>",
|
|
||||||
"tease":"<FONT COLOR='#BA0042'>* You laughingly tease %USERNAME% about their silly shoes. *</FONT>",
|
|
||||||
"quack":"<FONT COLOR='#BA0042'>* You make weird animal noises at %USERNAME% trying to sound like a ferocious... duck. *</FONT>",
|
|
||||||
"snore":"<FONT COLOR='#BA0042'>* ZZzzzzz.... %USERNAME% has bored you to the point of SNORING!! Wow.. now, that is boring.. *</FONT>",
|
|
||||||
"scream":"<FONT COLOR='#BA0042'>* AAAAAAAAAAAAAHHH!!!! You scream loudly at %USERNAME%.. . maybe overreacting? *</FONT>",
|
|
||||||
"hide":"<FONT COLOR='#BA0042'>* You quickly hide in the shadows, hoping %USERNAME% does not see you. . . *</FONT>",
|
|
||||||
"trip":"<FONT COLOR='#BA0042'>* Poor %USERNAME% tripped over your giant hobbitty feet!! *</FONT>",
|
|
||||||
"roar":"<FONT COLOR='#BA0042'>* From the bottom of your being you release the loudest roar possible!. . Only. . on its way out, your voice squeaks a little, and that takes away from the intimidation. . . *</FONT>",
|
|
||||||
"boo":"<FONT COLOR='#BA0042'>* BOOOOO! You frighten %USERNAME% really bad! They did not see that coming! *</FONT>"
|
|
||||||
},
|
|
||||||
"horse":{
|
|
||||||
"wink":"<FONT COLOR='#BA0042'>* Your horse winks at %USERNAME%. *</FONT>",
|
|
||||||
"neigh":"<FONT COLOR='#BA0042'>* Your horse neighs loudly at %USERNAME%. *</FONT>",
|
|
||||||
"whinny":"<FONT COLOR='#BA0042'>* Your horse whinnies softly and happily towards %USERNAME%. *</FONT>",
|
|
||||||
"snort":"<FONT COLOR='#BA0042'>* Your horse rudely snorts towards %USERNAME%! *</FONT>",
|
|
||||||
"buck":"<FONT COLOR='#BA0042'>* Your horse bucks you lightly. Must have been excited to see %USERNAME%. *</FONT>"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"for_others":{
|
|
||||||
"friendly":{
|
|
||||||
"smile":"<FONT COLOR='#BA0042'>* %USERNAME% smiles at you. *</FONT>",
|
|
||||||
"wave":"<FONT COLOR='#BA0042'>* %USERNAME% is waving at you very enthusiastically! *</FONT>",
|
|
||||||
"wink":"<FONT COLOR='#BA0042'>* %USERNAME% winks at you secretively. *</FONT>",
|
|
||||||
"laugh":"<FONT COLOR='#BA0042'>* %USERNAME% laughs at your humor. *</FONT>",
|
|
||||||
"high5":"<FONT COLOR='#BA0042'>* %USERNAME% comes at you with a high-five! You manage to meet the clap in time! *</FONT>",
|
|
||||||
"clap":"<FONT COLOR='#BA0042'>* %USERNAME% is clapping at what you have accomplished! *</FONT>",
|
|
||||||
"hug":"<FONT COLOR='#BA0042'>* %USERNAME% gives you a hug. *</FONT>",
|
|
||||||
"bearhug":"<FONT COLOR='#BA0042'>* %USERNAME% nearly crushes you with a massive bearhug! *</FONT>",
|
|
||||||
"dance":"<FONT COLOR='#BA0042'>* %USERNAME% and you do a little dance! *</FONT>",
|
|
||||||
"nod":"<FONT COLOR='#BA0042'>* %USERNAME% nods at you. *</FONT>",
|
|
||||||
"tickle":"<FONT COLOR='#BA0042'>* %USERNAME% tickles your sides until you fall over laughing. *</FONT>",
|
|
||||||
"thumbsup":"<FONT COLOR='#BA0042'>* %USERNAME% gives you an enthusiastic thumbs up. *</FONT>",
|
|
||||||
"shoulderpat":"<FONT COLOR='#BA0042'>* %USERNAME% comfortingly pats you on the shoulder. *</FONT>",
|
|
||||||
"circle":"<FONT COLOR='#BA0042'>* %USERNAME% excitedly runs circles around you causing your head to spin. *</FONT>",
|
|
||||||
"glomp":"<FONT COLOR='#BA0042'>* All of a sudden %USERNAME% tackles you and starts to hug you very tightly! You squeak in surprise! *</FONT>",
|
|
||||||
"beam":"<FONT COLOR='#BA0042'>* %USERNAME% produces one of the biggest, happiest faces you've ever seen towards you!!! Wow, you must have made them happy. *</FONT>",
|
|
||||||
"handshake":"<FONT COLOR='#BA0042'>* %USERNAME% shakes hands with you enthusiastically. *</FONT>",
|
|
||||||
"rofl":"<FONT COLOR='#BA0042'>* You were so funny that %USERNAME% is rolling on the floor from laughing so hard!! *</FONT>",
|
|
||||||
"spin":"<FONT COLOR='#BA0042'>* %USERNAME% playfully spins you in circles. You are getting quite dizzy. *</FONT>",
|
|
||||||
"sing":"<FONT COLOR='#BA0042'>* %USERNAME% sings you a silly song. You burst out laughing. *</FONT>",
|
|
||||||
"flail":"<FONT COLOR='#BA0042'>* You must have done something exciting, because %USERNAME% is flailing at you wildly! *</FONT>"
|
|
||||||
},
|
|
||||||
"unfriendly":{
|
|
||||||
"frown":"<FONT COLOR='#BA0042'>* Upon your behavior, %USERNAME% frowns deeply. *</FONT>",
|
|
||||||
"poke":"<FONT COLOR='#BA0042'>* %USERNAME% has poked you right in the ribs! *</FONT>",
|
|
||||||
"ignore":"<FONT COLOR='#BA0042'>* %USERNAME% sticks their nose in the air ignoring your childish behavior! *</FONT>",
|
|
||||||
"growl":"<FONT COLOR='#BA0042'>* You are frightened by a deep growl! It's directed at you from %USERNAME%! *</FONT>",
|
|
||||||
"point":"<FONT COLOR='#BA0042'>* %USERNAME% points jokingly at you! *</FONT>",
|
|
||||||
"burp":"<FONT COLOR='#BA0042'>* Buuurrrp! You can't believe %USERNAME% just did that towards you! *</FONT>",
|
|
||||||
"cry":"<FONT COLOR='#BA0042'>* %USERNAME% is crying like a little baby because of you now! *</FONT>",
|
|
||||||
"yell":"<FONT COLOR='#BA0042'>* %USERNAME% is yelling at you! You must have done something wrong. *</FONT>",
|
|
||||||
"nudge":"<FONT COLOR='#BA0042'>* %USERNAME% gives you a careful nudge out of the way. *</FONT>",
|
|
||||||
"yawn":"<FONT COLOR='#BA0042'>* YYYAAAWWWNN... you are boring %USERNAME%! *</FONT>",
|
|
||||||
"tease":"<FONT COLOR='#BA0042'>* %USERNAME% laughingly teases you about your silly shoes. *</FONT>",
|
|
||||||
"quack":"<FONT COLOR='#BA0042'>* %USERNAME% makes weird animal noises at you. Was that a duck? *</FONT>",
|
|
||||||
"snore":"<FONT COLOR='#BA0042'>* ZZzzzzz.... You have bored %USERNAME% to the point of SNORING!! Ooops! *</FONT>",
|
|
||||||
"scream":"<FONT COLOR='#BA0042'>* AAAAAAAAAAAAAHHH!!!! %USERNAME% screams loudly at you.. . overreacting a bit!? *</FONT>",
|
|
||||||
"hide":"<FONT COLOR='#BA0042'>* %USERNAME% quickly hides in the shadows, hoping you do not see them. . . *</FONT>",
|
|
||||||
"trip":"<FONT COLOR='#BA0042'>* You tripped over %USERNAME%'s giant hobbitty feet!! Poor you! *</FONT>",
|
|
||||||
"roar":"<FONT COLOR='#BA0042'>* From the bottom of %USERNAME%'s being they release the loudest roar possible towards you!. . Only. . on its way out, their voice squeaks a little, and that takes away from the intimidation. . . *</FONT>",
|
|
||||||
"boo":"<FONT COLOR='#BA0042'>* BOOOOOOOO! %USERNAME% frightens you really bad! You did not see that coming! *</FONT>"
|
|
||||||
},
|
|
||||||
"horse":{
|
|
||||||
"wink":"<FONT COLOR='#BA0042'>* %USERNAME%'s horse winks at you! *</FONT>",
|
|
||||||
"neigh":"<FONT COLOR='#BA0042'>* %USERNAME%'s horse neighs loudly at you. *</FONT>",
|
|
||||||
"whinny":"<FONT COLOR='#BA0042'>* %USERNAME%'s horse whinnies softly and happily towards you. *</FONT>",
|
|
||||||
"snort":" <FONT COLOR='#BA0042'>* %USERNAME%'s horse rudely snorts towards you! *</FONT>",
|
|
||||||
"buck":"<FONT COLOR='#BA0042'>* %USERNAME%'s horse bucks lightly. Must have been excited to see you. *</FONT>"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"chat":{
|
"chat":{
|
||||||
"for_others":{
|
"for_others":{
|
||||||
"global_format":"<FONT COLOR='#880000'><B>%USERNAME%:</B> %MESSAGE%</FONT>",
|
"global_format":"<FONT COLOR='#880000'><B>%USERNAME%:</B> %MESSAGE%</FONT>",
|
||||||
|
@ -550751,6 +550652,420 @@
|
||||||
{"trainer_id":9,"improves_stat":"agility","improves_amount":10,"thirst_cost":50,"mood_cost":20,"hunger_cost":50,"money_cost":750,"experience":10},
|
{"trainer_id":9,"improves_stat":"agility","improves_amount":10,"thirst_cost":50,"mood_cost":20,"hunger_cost":50,"money_cost":750,"experience":10},
|
||||||
{"trainer_id":10,"improves_stat":"endurance","improves_amount":10,"thirst_cost":80,"mood_cost":20,"hunger_cost":80,"money_cost":750,"experience":5}
|
{"trainer_id":10,"improves_stat":"endurance","improves_amount":10,"thirst_cost":80,"mood_cost":20,"hunger_cost":80,"money_cost":750,"experience":5}
|
||||||
],
|
],
|
||||||
|
"social_types":[
|
||||||
|
{
|
||||||
|
"type": "FRIENDLY",
|
||||||
|
"socials": [
|
||||||
|
{
|
||||||
|
"social_id": 1,
|
||||||
|
"button_name": "SMILE",
|
||||||
|
"for_sender": "You smile at %TARGETNAME%.",
|
||||||
|
"for_target": "%SENDERNAME% smiles at you.",
|
||||||
|
"for_everyone": "%SENDERNAME% smiled at %TARGETNAME%.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 2,
|
||||||
|
"button_name": "WAVE",
|
||||||
|
"for_sender": "You wave enthusiastically at %TARGETNAME%!",
|
||||||
|
"for_target": "%SENDERNAME% is waving at you very enthusiastically!",
|
||||||
|
"for_everyone": "%SENDERNAME% waved at %TARGETNAME%.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 3,
|
||||||
|
"button_name": "WINK",
|
||||||
|
"for_sender": "You sneak a wink off to %TARGETNAME%.",
|
||||||
|
"for_target": "%SENDERNAME% winks at you secretively.",
|
||||||
|
"for_everyone": null,
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 4,
|
||||||
|
"button_name": "LAUGH",
|
||||||
|
"for_sender": "You laugh at %TARGETNAME%'s humor.",
|
||||||
|
"for_target": "%SENDERNAME% laughs at your humor.",
|
||||||
|
"for_everyone": "%SENDERNAME% laughs heartily at %TARGETNAME%'s humor.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 11,
|
||||||
|
"button_name": "HIGH5",
|
||||||
|
"for_sender": "You give a big high-five to %TARGETNAME%!",
|
||||||
|
"for_target": "%SENDERNAME% comes at you with a high-five! You manage to meet the clap in time!",
|
||||||
|
"for_everyone": "%TARGETNAME% is being high-fived by %SENDERNAME% for some reason.",
|
||||||
|
"sound_effect": "HI5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 12,
|
||||||
|
"button_name": "CLAP",
|
||||||
|
"for_sender": "You clap at what %TARGETNAME% has done!",
|
||||||
|
"for_target": "%SENDERNAME% is clapping at what you have accomplished!",
|
||||||
|
"for_everyone": "%SENDERNAME% is clapping for %TARGETNAME%.",
|
||||||
|
"sound_effect": "CLAP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 13,
|
||||||
|
"button_name": "HUG",
|
||||||
|
"for_sender": "You give %TARGETNAME% a welcome hug.",
|
||||||
|
"for_target": "%SENDERNAME% gives you a hug.",
|
||||||
|
"for_everyone": "%SENDERNAME% gave %TARGETNAME% a hug.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 14,
|
||||||
|
"button_name": "BEARHUG",
|
||||||
|
"for_sender": "You nearly crush %TARGETNAME% with your massive bearhug!",
|
||||||
|
"for_target": "%SENDERNAME% nearly crushes you with a massive bearhug!",
|
||||||
|
"for_everyone": "Wow! %TARGETNAME% was almost crushed by %SENDERNAME%'s bearhug!",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 15,
|
||||||
|
"button_name": "DANCE",
|
||||||
|
"for_sender": "You do a little dance with %TARGETNAME%!",
|
||||||
|
"for_target": "%SENDERNAME% and you do a little dance! ",
|
||||||
|
"for_everyone": "%SENDERNAME% and %TARGETNAME% do a little dance around the place..",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 17,
|
||||||
|
"button_name": "NOD",
|
||||||
|
"for_sender": "You nod at %TARGETNAME%.",
|
||||||
|
"for_target": "%SENDERNAME% nods at you.",
|
||||||
|
"for_everyone": "%SENDERNAME% nods at %TARGETNAME%.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 18,
|
||||||
|
"button_name": "TICKLE",
|
||||||
|
"for_sender": "You tickle %TARGETNAME%'s sides.",
|
||||||
|
"for_target": "%SENDERNAME% tickles your sides until you fall over laughing.",
|
||||||
|
"for_everyone": "%SENDERNAME% is tickling %TARGETNAME%'s sides.",
|
||||||
|
"sound_effect": "TICL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 21,
|
||||||
|
"button_name": "THUMBS UP",
|
||||||
|
"for_sender": "You give %TARGETNAME% an enthusiastic thumbs up.",
|
||||||
|
"for_target": "%SENDERNAME% gives you an enthusiastic thumbs up.",
|
||||||
|
"for_everyone": "%SENDERNAME% is giving %TARGETNAME% a thumbs up for some reason.",
|
||||||
|
"sound_effect": "THUP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 23,
|
||||||
|
"button_name": "SHOULDER PAT",
|
||||||
|
"for_sender": "You pat %TARGETNAME% comfortingly on the shoulder.",
|
||||||
|
"for_target": "%SENDERNAME% comfortingly pats you on the shoulder.",
|
||||||
|
"for_everyone": "%SENDERNAME% pats %TARGETNAME% on the shoulder.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 24,
|
||||||
|
"button_name": "CIRCLE",
|
||||||
|
"for_sender": "You run circles around %TARGETNAME% making them dizzy.",
|
||||||
|
"for_target": "%SENDERNAME% excitedly runs circles around you causing your head to spin.",
|
||||||
|
"for_everyone": "%SENDERNAME% runs circles around %TARGETNAME% making %TARGETNAME% dizzy.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 38,
|
||||||
|
"button_name": "GLOMP",
|
||||||
|
"for_sender": "You surprise %TARGETNAME% by tackling and hugging them very tightly! %TARGETNAME% squeaks in surprise!",
|
||||||
|
"for_target": "All of a sudden %SENDERNAME% tackles you and starts to hug you very tightly! You squeak in surprise!",
|
||||||
|
"for_everyone": "All of a sudden %SENDERNAME% tackles %TARGETNAME% and starts to hug them very tightly! %TARGETNAME% squeaks in surprise!",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 40,
|
||||||
|
"button_name": "BEAM",
|
||||||
|
"for_sender": "You produce one of the biggest, happiest faces possible towards %TARGETNAME%!",
|
||||||
|
"for_target": "%SENDERNAME% produces one of the biggest, happiest faces you've ever seen towards you!!! Wow, you must have made them happy.",
|
||||||
|
"for_everyone": "%SENDERNAME% produces one of the biggest, happiest faces you've ever seen towards %TARGETNAME%!!!",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 45,
|
||||||
|
"button_name": "HANDSHAKE",
|
||||||
|
"for_sender": "You shake hands with %TARGETNAME% enthusiastically.",
|
||||||
|
"for_target": "%SENDERNAME% shakes hands with you enthusiastically.",
|
||||||
|
"for_everyone": "%SENDERNAME% is shaking hands with %TARGETNAME% quite enthusiastically.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 46,
|
||||||
|
"button_name": "ROFL",
|
||||||
|
"for_sender": "%TARGETNAME% is so funny you end up rolling on the floor from laughing so hard!!",
|
||||||
|
"for_target": "You were so funny that %SENDERNAME% is rolling on the floor from laughing so hard!!",
|
||||||
|
"for_everyone": "%SENDERNAME% is laughing so hard at %TARGETNAME% that %SENDERNAME% is rolling on the floor!!",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 48,
|
||||||
|
"button_name": "SPIN",
|
||||||
|
"for_sender": "You playfully spin %TARGETNAME% in circles making them dizzy.",
|
||||||
|
"for_target": "%SENDERNAME% playfully spins you in circles. You are getting quite dizzy.",
|
||||||
|
"for_everyone": "%SENDERNAME% is spinning %TARGETNAME% in circles. You are getting dizzy just watching!",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 51,
|
||||||
|
"button_name": "SING",
|
||||||
|
"for_sender": "You sing a silly song to %TARGETNAME% hoping they laugh.",
|
||||||
|
"for_target": "%SENDERNAME% sings you a silly song. You burst out laughing. ",
|
||||||
|
"for_everyone": "%SENDERNAME% is singing a silly song to %TARGETNAME%. You can't help but laugh yourself.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 52,
|
||||||
|
"button_name": "FLAIL",
|
||||||
|
"for_sender": "You flail wildly at %TARGETNAME%!",
|
||||||
|
"for_target": "You must have done something exciting, because %SENDERNAME% is flailing at you wildly!",
|
||||||
|
"for_everyone": "%TARGETNAME% must have done something exciting, because %SENDERNAME% is flailing at %TARGETNAME% wildly!",
|
||||||
|
"sound_effect": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "UNFRIENDLY",
|
||||||
|
"socials": [
|
||||||
|
{
|
||||||
|
"social_id": 5,
|
||||||
|
"button_name": "FROWN",
|
||||||
|
"for_sender": "You frown upon %TARGETNAME%'s behavior.",
|
||||||
|
"for_target": "Upon your behavior, %SENDERNAME% frowns deeply.",
|
||||||
|
"for_everyone": "%SENDERNAME% frowns upon %TARGETNAME%'s behavior.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 6,
|
||||||
|
"button_name": "POKE",
|
||||||
|
"for_sender": "You poke %TARGETNAME% right in the ribs!",
|
||||||
|
"for_target": "%SENDERNAME% has poked you right in the ribs!",
|
||||||
|
"for_everyone": "%SENDERNAME% poked %TARGETNAME% right in the ribs!",
|
||||||
|
"sound_effect": "POKE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 7,
|
||||||
|
"button_name": "IGNORE",
|
||||||
|
"for_sender": "You stick your nose in the air and ignore %TARGETNAME%s childish behavior!",
|
||||||
|
"for_target": "%SENDERNAME% sticks their nose in the air ignoring your childish behavior!",
|
||||||
|
"for_everyone": "%SENDERNAME% is ignoring %TARGETNAME%'s childish behavior.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 8,
|
||||||
|
"button_name": "GROWL",
|
||||||
|
"for_sender": "In a deep growling voice, you attempt to frighten %TARGETNAME%!",
|
||||||
|
"for_target": "You are frightened by a deep growl! It's directed at you from %SENDERNAME%!",
|
||||||
|
"for_everyone": "A scary growl emanating from %SENDERNAME% is directed at %TARGETNAME%. You try to stay away.",
|
||||||
|
"sound_effect": "GRWL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 9,
|
||||||
|
"button_name": "POINT",
|
||||||
|
"for_sender": "You point jokingly at %TARGETNAME%!",
|
||||||
|
"for_target": "%SENDERNAME% points jokingly at you!",
|
||||||
|
"for_everyone": "%SENDERNAME% points jokingly at %TARGETNAME%!",
|
||||||
|
"sound_effect": "PNT"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 10,
|
||||||
|
"button_name": "BURP",
|
||||||
|
"for_sender": "BuuuuuuuurrrrP!",
|
||||||
|
"for_target": "Buuurrrp! You can't believe %SENDERNAME% just did that towards you!",
|
||||||
|
"for_everyone": "BuuuurrrP! %SENDERNAME% just made a gross sound towards %TARGETNAME%!",
|
||||||
|
"sound_effect": "BURP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 16,
|
||||||
|
"button_name": "CRY",
|
||||||
|
"for_sender": "%TARGETNAME% has made you cry like a little baby!",
|
||||||
|
"for_target": "%SENDERNAME% is crying like a little baby because of you now!",
|
||||||
|
"for_everyone": "%TARGETNAME% has made %SENDERNAME% cry like a little baby! How sad.",
|
||||||
|
"sound_effect": "CRY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 19,
|
||||||
|
"button_name": "YELL",
|
||||||
|
"for_sender": "You start yelling angrily at %TARGETNAME%.",
|
||||||
|
"for_target": "%SENDERNAME% is yelling at you! You must have done something wrong.",
|
||||||
|
"for_everyone": "%SENDERNAME% is yelling at %TARGETNAME%!",
|
||||||
|
"sound_effect": "YELL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 20,
|
||||||
|
"button_name": "NUDGE",
|
||||||
|
"for_sender": "You nudge %TARGETNAME% carefully out of your way.",
|
||||||
|
"for_target": "%SENDERNAME% gives you a careful nudge out of the way.",
|
||||||
|
"for_everyone": "%TARGETNAME% was nudged out of %SENDERNAME%'s way.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 22,
|
||||||
|
"button_name": "YAWN",
|
||||||
|
"for_sender": "YYYYAAAAWWWWNNNNN... Boy %TARGETNAME% is boring...",
|
||||||
|
"for_target": "YYYAAAWWWNN... you are boring %SENDERNAME%!",
|
||||||
|
"for_everyone": "%SENDERNAME% just yawned at %TARGETNAME%.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 37,
|
||||||
|
"button_name": "TEASE",
|
||||||
|
"for_sender": "You laughingly tease %TARGETNAME% about their silly shoes.",
|
||||||
|
"for_target": "%SENDERNAME% laughingly teases you about your silly shoes.",
|
||||||
|
"for_everyone": "%SENDERNAME% is laughingly teasing %TARGETNAME% about their silly shoes. You don't see anything silly about them.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 39,
|
||||||
|
"button_name": "QUACK",
|
||||||
|
"for_sender": "You make weird animal noises at %TARGETNAME% trying to sound like a ferocious... duck.",
|
||||||
|
"for_target": "%SENDERNAME% makes weird animal noises at you. Was that a duck?",
|
||||||
|
"for_everyone": "%SENDERNAME% makes weird animal noises at %TARGETNAME%. Was that a duck?",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 41,
|
||||||
|
"button_name": "SNORE",
|
||||||
|
"for_sender": "ZZzzzzz.... %TARGETNAME% has bored you to the point of SNORING!! Wow.. now, that is boring.. ",
|
||||||
|
"for_target": "ZZzzzzz.... You have bored %SENDERNAME% to the point of SNORING!! Ooops! ",
|
||||||
|
"for_everyone": "ZZzzzzz.... %TARGETNAME% has bored %SENDERNAME% to the point of SNORING!! Wow.. now, that is boring.. ",
|
||||||
|
"sound_effect": "SNOR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 42,
|
||||||
|
"button_name": "SCREAM",
|
||||||
|
"for_sender": "AAAAAAAAAAAAAHHH!!!! You scream loudly at %TARGETNAME%.. . maybe overreacting?",
|
||||||
|
"for_target": "AAAAAAAAAAAAAHHH!!!! %SENDERNAME% screams loudly at you.. . overreacting a bit!?",
|
||||||
|
"for_everyone": "AAAAAAAAAAAAAHHH!!!! %SENDERNAME% screams loudly at %TARGETNAME%.. . overreacting a bit?",
|
||||||
|
"sound_effect": "SCRM"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 43,
|
||||||
|
"button_name": "HIDE",
|
||||||
|
"for_sender": "You quickly hide in the shadows, hoping %TARGETNAME% does not see you. . .",
|
||||||
|
"for_target": "%SENDERNAME% quickly hides in the shadows, hoping you do not see them. . .",
|
||||||
|
"for_everyone": "%SENDERNAME% quickly hides in the shadows, hoping %TARGETNAME% does not see them. . .",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 44,
|
||||||
|
"button_name": "TRIP",
|
||||||
|
"for_sender": "Poor %TARGETNAME% tripped over your giant hobbitty feet!!",
|
||||||
|
"for_target": "You tripped over %SENDERNAME%'s giant hobbitty feet!! Poor you!",
|
||||||
|
"for_everyone": "Poor %TARGETNAME% tripped over %SENDERNAME%'s giant hobbitty feet!!",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 49,
|
||||||
|
"button_name": "ROAR",
|
||||||
|
"for_sender": "From the bottom of your being you release the loudest roar possible!. . Only. . on its way out, your voice squeaks a little, and that takes away from the intimidation. . . ",
|
||||||
|
"for_target": "From the bottom of %SENDERNAME%'s being they release the loudest roar possible towards you!. . Only. . on its way out, their voice squeaks a little, and that takes away from the intimidation. . . ",
|
||||||
|
"for_everyone": "From the bottom of %SENDERNAME%'s being they release the loudest roar possible towards %TARGETNAME%!. . Only. . on its way out, their voice squeaks a little, and that takes away from the intimidation. . . ",
|
||||||
|
"sound_effect": "ROAR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 50,
|
||||||
|
"button_name": "BOO",
|
||||||
|
"for_sender": "BOOOOO! You frighten %TARGETNAME% really bad! They did not see that coming!",
|
||||||
|
"for_target": "BOOOOOOOO! %SENDERNAME% frightens you really bad! You did not see that coming!",
|
||||||
|
"for_everyone": "BOOOOO! %SENDERNAME% frightens %TARGETNAME% really bad! They did not see that coming!",
|
||||||
|
"sound_effect": "BOO"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "HORSE",
|
||||||
|
"socials": [
|
||||||
|
{
|
||||||
|
"social_id": 26,
|
||||||
|
"button_name": "WINK",
|
||||||
|
"for_sender": "Your horse winks at %TARGETNAME%.",
|
||||||
|
"for_target": "%SENDERNAME%'s horse winks at you!",
|
||||||
|
"for_everyone": "%SENDERNAME%'s horse winks at %TARGETNAME%.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 27,
|
||||||
|
"button_name": "NEIGH",
|
||||||
|
"for_sender": "Your horse neighs loudly at %TARGETNAME%.",
|
||||||
|
"for_target": "%SENDERNAME%'s horse neighs loudly at you.",
|
||||||
|
"for_everyone": "%SENDERNAME%'s horse neighs loudly at %TARGETNAME%.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 29,
|
||||||
|
"button_name": "WHINNY",
|
||||||
|
"for_sender": "Your horse whinnies softly and happily towards %TARGETNAME%.",
|
||||||
|
"for_target": "%SENDERNAME%'s horse whinnies softly and happily towards you.",
|
||||||
|
"for_everyone": "%SENDERNAME%'s horse whinnies softly and happily towards %TARGETNAME%.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 30,
|
||||||
|
"button_name": "SNORT",
|
||||||
|
"for_sender": "Your horse rudely snorts towards %TARGETNAME%!",
|
||||||
|
"for_target": "%SENDERNAME%'s horse rudely snorts towards you!",
|
||||||
|
"for_everyone": "%SENDERNAME%'s horse rudely snorts towards %TARGETNAME%!",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 31,
|
||||||
|
"button_name": "BUCK",
|
||||||
|
"for_sender": "Your horse bucks you lightly. Must have been excited to see %TARGETNAME%.",
|
||||||
|
"for_target": "%SENDERNAME%'s horse bucks lightly. Must have been excited to see you.",
|
||||||
|
"for_everyone": "%SENDERNAME%'s horse bucks lightly. Must have been excited to see %TARGETNAME%.",
|
||||||
|
"sound_effect": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GROUP",
|
||||||
|
"socials": [
|
||||||
|
{
|
||||||
|
"social_id": 32,
|
||||||
|
"button_name": "HUG",
|
||||||
|
"for_sender": "You initiated a group hug!! It has risen the spirits of everyone involved!",
|
||||||
|
"for_target": "%SENDERNAME% initiated a group hug!! It has risen the spirits of everyone involved!",
|
||||||
|
"for_everyone": "%SENDERNAME% initiated a group hug!! It has risen the spirits of everyone involved!",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 33,
|
||||||
|
"button_name": "DOG PILE",
|
||||||
|
"for_sender": "You yell DOGPILE! Suddenly everyone here has leapt on top of you, and you find yourself smothered at the bottom.",
|
||||||
|
"for_target": "%SENDERNAME% yells DOGPILE! Suddenly everyone here including you has leapt on top of %SENDERNAME%, smothering them at the bottom.",
|
||||||
|
"for_everyone": "%SENDERNAME% yells DOGPILE! Suddenly everyone here including you has leapt on top of %SENDERNAME%, smothering them at the bottom.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 34,
|
||||||
|
"button_name": "DANCE",
|
||||||
|
"for_sender": "You call everyone together for a ballet! Everyone here joins in.. You are the moon, another is the princess, and you're not sure what the others are supposed to be. . . ",
|
||||||
|
"for_target": "%SENDERNAME% calls everyone together for a ballet! Everyone here joins in.. %SENDERNAME% is the moon, another is the princess, and you're not sure what the others are supposed to be. . . ",
|
||||||
|
"for_everyone": "%SENDERNAME% calls everyone together for a ballet! Everyone here joins in.. %SENDERNAME% is the moon, another is the princess, and you're not sure what the others are supposed to be. . . ",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 35,
|
||||||
|
"button_name": "HUDDLE",
|
||||||
|
"for_sender": "You call everyone for a huddle. You discuss your secret plans here.",
|
||||||
|
"for_target": null,
|
||||||
|
"for_everyone": "%SENDERNAME% has called a huddle. You all discuss your secret plans here.",
|
||||||
|
"sound_effect": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"social_id": 36,
|
||||||
|
"button_name": "HOWL",
|
||||||
|
"for_sender": "You howl at the moon loudly. Soon everyone here has joined in. The noise is intensely terrifying!",
|
||||||
|
"for_target": "%SENDERNAME% howls at the moon loudly. Soon you and everyone else here has joined in. The noise is intensely terrifying!",
|
||||||
|
"for_everyone": "%SENDERNAME% howls at the moon loudly. Soon you and everyone else here has joined in. The noise is intensely terrifying!",
|
||||||
|
"sound_effect": "HOWL"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"arena":[
|
"arena":[
|
||||||
{"arena_id":1,"arena_type":"JUMPING","entry_cost":1000,"race_every":60,"slots":6,"timeout":2},
|
{"arena_id":1,"arena_type":"JUMPING","entry_cost":1000,"race_every":60,"slots":6,"timeout":2},
|
||||||
{"arena_id":2,"arena_type":"RACING","entry_cost":1000,"race_every":60,"slots":6,"timeout":2},
|
{"arena_id":2,"arena_type":"RACING","entry_cost":1000,"race_every":60,"slots":6,"timeout":2},
|
||||||
|
|
64
Horse Isle Server/HorseIsleServer/Game/Chat/SocialType.cs
Normal file
64
Horse Isle Server/HorseIsleServer/Game/Chat/SocialType.cs
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace HISP.Game.Chat
|
||||||
|
{
|
||||||
|
public class SocialType
|
||||||
|
{
|
||||||
|
public SocialType(string type)
|
||||||
|
{
|
||||||
|
Socials = new List<Social>();
|
||||||
|
Type = type;
|
||||||
|
SocialTypes.Add(this);
|
||||||
|
}
|
||||||
|
public static List<SocialType> SocialTypes = new List<SocialType>();
|
||||||
|
public string Type;
|
||||||
|
public List<Social> Socials;
|
||||||
|
public class Social
|
||||||
|
{
|
||||||
|
public SocialType BaseSocialType;
|
||||||
|
|
||||||
|
public int Id;
|
||||||
|
public string ButtonName;
|
||||||
|
public string ForSender;
|
||||||
|
public string ForTarget;
|
||||||
|
public string ForEveryone;
|
||||||
|
public string SoundEffect;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Social GetSocial(int socialId)
|
||||||
|
{
|
||||||
|
foreach (SocialType sType in SocialTypes)
|
||||||
|
foreach (Social social in sType.Socials)
|
||||||
|
if (social.Id == socialId)
|
||||||
|
return social;
|
||||||
|
throw new KeyNotFoundException("Social " + socialId.ToString() + " not found!");
|
||||||
|
}
|
||||||
|
public static SocialType GetSocialType(string type)
|
||||||
|
{
|
||||||
|
foreach (SocialType stype in SocialTypes)
|
||||||
|
if (stype.Type == type)
|
||||||
|
return stype;
|
||||||
|
throw new KeyNotFoundException("SocialType " + type + " NOT FOUND!");
|
||||||
|
}
|
||||||
|
public static void AddNewSocial(string type, Social social)
|
||||||
|
{
|
||||||
|
foreach(SocialType stype in SocialTypes)
|
||||||
|
{
|
||||||
|
if(stype.Type == type)
|
||||||
|
{
|
||||||
|
social.BaseSocialType = stype;
|
||||||
|
stype.Socials.Add(social);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SocialType sType = new SocialType(type);
|
||||||
|
social.BaseSocialType = sType;
|
||||||
|
sType.Socials.Add(social);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,6 +13,11 @@ namespace HISP.Game
|
||||||
// Mod isle
|
// Mod isle
|
||||||
public static string ModIsleMessage;
|
public static string ModIsleMessage;
|
||||||
|
|
||||||
|
// Socials
|
||||||
|
public static string SocialButton;
|
||||||
|
public static string SocialMessageFormat;
|
||||||
|
public static string SocialTypeFormat;
|
||||||
|
|
||||||
// Trading
|
// Trading
|
||||||
public static string TradeWithPlayerFormat;
|
public static string TradeWithPlayerFormat;
|
||||||
|
|
||||||
|
@ -85,7 +90,6 @@ namespace HISP.Game
|
||||||
|
|
||||||
// Player Interaction
|
// Player Interaction
|
||||||
public static string PlayerHereMenuFormat;
|
public static string PlayerHereMenuFormat;
|
||||||
public static string PlayerHereMulitpleMenuFormat;
|
|
||||||
|
|
||||||
public static string PlayerHereProfileButton;
|
public static string PlayerHereProfileButton;
|
||||||
public static string PlayerHereSocialButton;
|
public static string PlayerHereSocialButton;
|
||||||
|
@ -577,6 +581,8 @@ namespace HISP.Game
|
||||||
public static string ViewBaiscStats;
|
public static string ViewBaiscStats;
|
||||||
public static string ViewAdvancedStats;
|
public static string ViewAdvancedStats;
|
||||||
public static string HorseBuckedYou;
|
public static string HorseBuckedYou;
|
||||||
|
public static string HorseLlamaBuckedYou;
|
||||||
|
public static string HorseCamelBuckedYou;
|
||||||
|
|
||||||
public static string HorseRidingMessageFormat;
|
public static string HorseRidingMessageFormat;
|
||||||
public static string HorseNameYoursFormat;
|
public static string HorseNameYoursFormat;
|
||||||
|
@ -905,6 +911,7 @@ namespace HISP.Game
|
||||||
public static string BackToMapHorse;
|
public static string BackToMapHorse;
|
||||||
public static string LongFullLine;
|
public static string LongFullLine;
|
||||||
public static string MetaTerminator;
|
public static string MetaTerminator;
|
||||||
|
public static string R1;
|
||||||
|
|
||||||
// Pawneer
|
// Pawneer
|
||||||
public static string PawneerUntackedHorsesICanBuy;
|
public static string PawneerUntackedHorsesICanBuy;
|
||||||
|
@ -985,7 +992,23 @@ namespace HISP.Game
|
||||||
// Click
|
// Click
|
||||||
public static string NothingInterestingHere;
|
public static string NothingInterestingHere;
|
||||||
|
|
||||||
|
// Socials
|
||||||
|
public static string FormatSocialButton(int socialId, string buttonName)
|
||||||
|
{
|
||||||
|
string id = "" + Convert.ToChar(0x21 + socialId);
|
||||||
|
return SocialButton.Replace("%ID%", id).Replace("%SOCIALNAME%", buttonName);
|
||||||
|
}
|
||||||
|
public static string FormatSocialMessage(string socialMsg, string targetName, string senderName)
|
||||||
|
{
|
||||||
|
return SocialMessageFormat.Replace("%SOCIALMSG%", socialMsg.Replace("%TARGETNAME%", targetName).Replace("%SENDERNAME%", senderName));
|
||||||
|
}
|
||||||
|
public static string FormatSocialMenuType(string type)
|
||||||
|
{
|
||||||
|
return SocialTypeFormat.Replace("%TYPE%", Converters.CapitalizeFirstLetter(type.ToLower()));
|
||||||
|
}
|
||||||
|
|
||||||
// Trading
|
// Trading
|
||||||
|
|
||||||
public static string FormatTradeYouReceived(int money)
|
public static string FormatTradeYouReceived(int money)
|
||||||
{
|
{
|
||||||
return TradeYouReceivedMoneyMessageFormat.Replace("%MONEY%", money.ToString("N0", CultureInfo.InvariantCulture));
|
return TradeYouReceivedMoneyMessageFormat.Replace("%MONEY%", money.ToString("N0", CultureInfo.InvariantCulture));
|
||||||
|
|
|
@ -8,6 +8,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using HISP.Game.Chat;
|
||||||
|
|
||||||
namespace HISP.Game
|
namespace HISP.Game
|
||||||
{
|
{
|
||||||
|
@ -62,7 +63,14 @@ namespace HISP.Game
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count >= 2)
|
if(count >= 2)
|
||||||
playersHere += Messages.PlayerHereMulitpleMenuFormat;
|
{
|
||||||
|
SocialType stype = SocialType.GetSocialType("GROUP");
|
||||||
|
foreach(SocialType.Social social in stype.Socials)
|
||||||
|
{
|
||||||
|
playersHere += Messages.FormatSocialButton(social.Id, social.ButtonName);
|
||||||
|
}
|
||||||
|
playersHere += Messages.R1;
|
||||||
|
}
|
||||||
|
|
||||||
if (count <= 0)
|
if (count <= 0)
|
||||||
return "";
|
return "";
|
||||||
|
@ -141,7 +149,7 @@ namespace HISP.Game
|
||||||
message += Messages.ThingsIAmSelling;
|
message += Messages.ThingsIAmSelling;
|
||||||
foreach (InventoryItem item in itemList)
|
foreach (InventoryItem item in itemList)
|
||||||
{
|
{
|
||||||
message += "^R1";
|
message += Messages.R1;
|
||||||
Item.ItemInformation itemInfo = Item.GetItemById(item.ItemId);
|
Item.ItemInformation itemInfo = Item.GetItemById(item.ItemId);
|
||||||
|
|
||||||
int count = item.ItemInstances.Count;
|
int count = item.ItemInstances.Count;
|
||||||
|
@ -163,7 +171,7 @@ namespace HISP.Game
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check whats avalilble to be sold
|
// Check whats avalilble to be sold
|
||||||
message += "^R1" + Messages.ThingsYouSellMe;
|
message += Messages.R1 + Messages.ThingsYouSellMe;
|
||||||
InventoryItem[] shopperItemList = shopperInventory.GetItemList();
|
InventoryItem[] shopperItemList = shopperInventory.GetItemList();
|
||||||
|
|
||||||
foreach (InventoryItem shopperitem in shopperItemList)
|
foreach (InventoryItem shopperitem in shopperItemList)
|
||||||
|
@ -179,14 +187,14 @@ namespace HISP.Game
|
||||||
string countStr = count.ToString();
|
string countStr = count.ToString();
|
||||||
|
|
||||||
|
|
||||||
message += "^R1";
|
message += Messages.R1;
|
||||||
message += Messages.FormatShopEntry(itemInfo.IconId, countStr, itemInfo.Name, shop.CalculateSellCost(itemInfo));
|
message += Messages.FormatShopEntry(itemInfo.IconId, countStr, itemInfo.Name, shop.CalculateSellCost(itemInfo));
|
||||||
message += Messages.FormatSellButton(shopperitem.ItemInstances[0].RandomId);
|
message += Messages.FormatSellButton(shopperitem.ItemInstances[0].RandomId);
|
||||||
message += Messages.FormatSellAllButton(itemInfo.Id);
|
message += Messages.FormatSellAllButton(itemInfo.Id);
|
||||||
message += Messages.FormatItemInformationButton(shopperitem.ItemInstances[0].RandomId);
|
message += Messages.FormatItemInformationButton(shopperitem.ItemInstances[0].RandomId);
|
||||||
}
|
}
|
||||||
|
|
||||||
message += "^R1" + Messages.ExitThisPlace;
|
message += Messages.R1 + Messages.ExitThisPlace;
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -363,7 +371,7 @@ namespace HISP.Game
|
||||||
{
|
{
|
||||||
message += Messages.NpcNoChatpoints;
|
message += Messages.NpcNoChatpoints;
|
||||||
}
|
}
|
||||||
message += "^R1";
|
message += Messages.R1;
|
||||||
}
|
}
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
@ -445,6 +453,28 @@ namespace HISP.Game
|
||||||
return message;
|
return message;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public static string BuildSocialMenu(bool onHorse)
|
||||||
|
{
|
||||||
|
string message = "";
|
||||||
|
foreach(SocialType sType in SocialType.SocialTypes)
|
||||||
|
{
|
||||||
|
if (sType.Type == "GROUP")
|
||||||
|
continue;
|
||||||
|
if (sType.Type == "HORSE")
|
||||||
|
if (!onHorse)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
message += Messages.FormatSocialMenuType(sType.Type);
|
||||||
|
foreach(SocialType.Social social in sType.Socials)
|
||||||
|
{
|
||||||
|
message += Messages.FormatSocialButton(social.Id, social.ButtonName);
|
||||||
|
}
|
||||||
|
message += Messages.R1;
|
||||||
|
}
|
||||||
|
message += Messages.BackToMap;
|
||||||
|
message += Messages.MetaTerminator;
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
public static string BuildTradeAddItem(int totalItems)
|
public static string BuildTradeAddItem(int totalItems)
|
||||||
{
|
{
|
||||||
|
@ -1957,7 +1987,7 @@ namespace HISP.Game
|
||||||
message += Messages.FormatItemThrowButton(randomId);
|
message += Messages.FormatItemThrowButton(randomId);
|
||||||
|
|
||||||
message += Messages.FormatItemInformationButton(randomId);
|
message += Messages.FormatItemInformationButton(randomId);
|
||||||
message += "^R1";
|
message += Messages.R1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message += Messages.BackToMap;
|
message += Messages.BackToMap;
|
||||||
|
@ -2101,7 +2131,7 @@ namespace HISP.Game
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
message += "^R1";
|
message += Messages.R1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,7 @@ namespace HISP.Player
|
||||||
public Highscore Highscores;
|
public Highscore Highscores;
|
||||||
public Riddler LastRiddle;
|
public Riddler LastRiddle;
|
||||||
public Award Awards;
|
public Award Awards;
|
||||||
|
public User SocializingWith;
|
||||||
public int CapturingHorseId;
|
public int CapturingHorseId;
|
||||||
public DateTime LoginTime;
|
public DateTime LoginTime;
|
||||||
public string LastSeenWeather;
|
public string LastSeenWeather;
|
||||||
|
|
|
@ -6,7 +6,6 @@ using HISP.Game.SwfModules;
|
||||||
using HISP.Security;
|
using HISP.Security;
|
||||||
using HISP.Server;
|
using HISP.Server;
|
||||||
using HISP.Game.Services;
|
using HISP.Game.Services;
|
||||||
|
|
||||||
namespace HISP
|
namespace HISP
|
||||||
{
|
{
|
||||||
public class Program
|
public class Program
|
||||||
|
|
|
@ -1154,7 +1154,7 @@ namespace HISP.Server
|
||||||
{
|
{
|
||||||
db.Open();
|
db.Open();
|
||||||
MySqlCommand sqlCommand = db.CreateCommand();
|
MySqlCommand sqlCommand = db.CreateCommand();
|
||||||
sqlCommand.CommandText = "INSERT INTO RiddlesComplete VALUES(@riddleId, @playerId, \"YES\")";
|
sqlCommand.CommandText = "INSERT INTO RiddlesComplete VALUES(@playerId, @riddleId, \"YES\")";
|
||||||
sqlCommand.Parameters.AddWithValue("@riddleId", riddleId);
|
sqlCommand.Parameters.AddWithValue("@riddleId", riddleId);
|
||||||
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
||||||
sqlCommand.Prepare();
|
sqlCommand.Prepare();
|
||||||
|
|
|
@ -408,6 +408,9 @@ namespace HISP.Server
|
||||||
case PacketBuilder.PACKET_PLAYER_INTERACTION:
|
case PacketBuilder.PACKET_PLAYER_INTERACTION:
|
||||||
GameServer.OnPlayerInteration(this, Packet);
|
GameServer.OnPlayerInteration(this, Packet);
|
||||||
break;
|
break;
|
||||||
|
case PacketBuilder.PACKET_SOCIALS:
|
||||||
|
GameServer.OnSocialPacket(this, Packet);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
Logger.ErrorPrint("Unimplemented Packet: " + BitConverter.ToString(Packet).Replace('-', ' '));
|
Logger.ErrorPrint("Unimplemented Packet: " + BitConverter.ToString(Packet).Replace('-', ' '));
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -793,6 +793,28 @@ namespace HISP.Server
|
||||||
Logger.DebugPrint("Registered Leaser: " + leaser.LeaseId.ToString() + " For a " + leaser.HorseName);
|
Logger.DebugPrint("Registered Leaser: " + leaser.LeaseId.ToString() + " For a " + leaser.HorseName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Register Socials
|
||||||
|
int totalSocials = gameData.social_types.Count;
|
||||||
|
for (int i = 0; i < totalSocials; i++)
|
||||||
|
{
|
||||||
|
string socialType = gameData.social_types[i].type;
|
||||||
|
int totalSocialsOfType = gameData.social_types[i].socials.Count;
|
||||||
|
for (int ii = 0; ii < totalSocialsOfType; ii++)
|
||||||
|
{
|
||||||
|
SocialType.Social social = new SocialType.Social();
|
||||||
|
|
||||||
|
social.Id = gameData.social_types[i].socials[ii].social_id;
|
||||||
|
social.ButtonName = gameData.social_types[i].socials[ii].button_name;
|
||||||
|
social.ForSender = gameData.social_types[i].socials[ii].for_sender;
|
||||||
|
social.ForTarget = gameData.social_types[i].socials[ii].for_target;
|
||||||
|
social.ForEveryone = gameData.social_types[i].socials[ii].for_everyone;
|
||||||
|
social.SoundEffect = gameData.social_types[i].socials[ii].sound_effect;
|
||||||
|
|
||||||
|
SocialType.AddNewSocial(socialType, social);
|
||||||
|
Logger.DebugPrint("Registered Social: " + social.ButtonName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
HorseInfo.HorseNames = gameData.horses.names.ToObject<string[]>();
|
HorseInfo.HorseNames = gameData.horses.names.ToObject<string[]>();
|
||||||
|
|
||||||
Item.Present = gameData.item.special.present;
|
Item.Present = gameData.item.special.present;
|
||||||
|
@ -825,6 +847,11 @@ namespace HISP.Server
|
||||||
Map.ModIsleX = gameData.messages.commands.mod_isle.x;
|
Map.ModIsleX = gameData.messages.commands.mod_isle.x;
|
||||||
Map.ModIsleY = gameData.messages.commands.mod_isle.y;
|
Map.ModIsleY = gameData.messages.commands.mod_isle.y;
|
||||||
|
|
||||||
|
// Socials
|
||||||
|
Messages.SocialButton = gameData.messages.meta.player_interaction.socials.socials_button;
|
||||||
|
Messages.SocialMessageFormat = gameData.messages.meta.player_interaction.socials.socials_message;
|
||||||
|
Messages.SocialTypeFormat = gameData.messages.meta.player_interaction.socials.socials_menu_type;
|
||||||
|
|
||||||
// Trade
|
// Trade
|
||||||
Messages.TradeWithPlayerFormat = gameData.messages.meta.player_interaction.trade.trading_with;
|
Messages.TradeWithPlayerFormat = gameData.messages.meta.player_interaction.trade.trading_with;
|
||||||
|
|
||||||
|
@ -898,7 +925,6 @@ namespace HISP.Server
|
||||||
// Player Interation
|
// Player Interation
|
||||||
|
|
||||||
Messages.PlayerHereMenuFormat = gameData.messages.meta.player_interaction.menu;
|
Messages.PlayerHereMenuFormat = gameData.messages.meta.player_interaction.menu;
|
||||||
Messages.PlayerHereMulitpleMenuFormat = gameData.messages.meta.player_interaction.multiple_players_menu;
|
|
||||||
|
|
||||||
Messages.PlayerHereProfileButton = gameData.messages.meta.player_interaction.profiile_button;
|
Messages.PlayerHereProfileButton = gameData.messages.meta.player_interaction.profiile_button;
|
||||||
Messages.PlayerHereSocialButton = gameData.messages.meta.player_interaction.social_button;
|
Messages.PlayerHereSocialButton = gameData.messages.meta.player_interaction.social_button;
|
||||||
|
@ -1382,6 +1408,8 @@ namespace HISP.Server
|
||||||
Messages.ViewBaiscStats = gameData.messages.meta.horse.view_basic_stats;
|
Messages.ViewBaiscStats = gameData.messages.meta.horse.view_basic_stats;
|
||||||
Messages.ViewAdvancedStats = gameData.messages.meta.horse.view_advanced_stats;
|
Messages.ViewAdvancedStats = gameData.messages.meta.horse.view_advanced_stats;
|
||||||
Messages.HorseBuckedYou = gameData.messages.meta.horse.horse_bucked;
|
Messages.HorseBuckedYou = gameData.messages.meta.horse.horse_bucked;
|
||||||
|
Messages.HorseLlamaBuckedYou = gameData.messages.meta.horse.llama_bucked;
|
||||||
|
Messages.HorseCamelBuckedYou = gameData.messages.meta.horse.camel_bucked;
|
||||||
|
|
||||||
Messages.HorseRidingMessageFormat = gameData.messages.meta.horse.riding_message;
|
Messages.HorseRidingMessageFormat = gameData.messages.meta.horse.riding_message;
|
||||||
Messages.HorseNameYoursFormat = gameData.messages.meta.horse.horse_inventory.your_horse_format;
|
Messages.HorseNameYoursFormat = gameData.messages.meta.horse.horse_inventory.your_horse_format;
|
||||||
|
@ -1663,8 +1691,11 @@ namespace HISP.Server
|
||||||
|
|
||||||
Messages.NoPitchforkMeta = gameData.messages.meta.hay_pile.no_pitchfork;
|
Messages.NoPitchforkMeta = gameData.messages.meta.hay_pile.no_pitchfork;
|
||||||
Messages.HasPitchforkMeta = gameData.messages.meta.hay_pile.pitchfork;
|
Messages.HasPitchforkMeta = gameData.messages.meta.hay_pile.pitchfork;
|
||||||
|
Messages.R1 = gameData.messages.meta.r1;
|
||||||
Messages.PasswordEntry = gameData.messages.meta.password_input;
|
Messages.PasswordEntry = gameData.messages.meta.password_input;
|
||||||
|
|
||||||
|
// Venus Fly Trap
|
||||||
|
|
||||||
Messages.VenusFlyTrapFormat = gameData.messages.meta.venus_flytrap_format;
|
Messages.VenusFlyTrapFormat = gameData.messages.meta.venus_flytrap_format;
|
||||||
|
|
||||||
// Shortcut
|
// Shortcut
|
||||||
|
|
|
@ -321,7 +321,8 @@ namespace HISP.Server
|
||||||
}
|
}
|
||||||
catch(FormatException)
|
catch(FormatException)
|
||||||
{
|
{
|
||||||
Logger.InfoPrint(sender.LoggedinUser.Username + " tried to trade with User ID NaN.");
|
Logger.ErrorPrint(sender.LoggedinUser.Username + " tried to trade with User ID NaN.");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if(IsUserOnline(playerId))
|
if(IsUserOnline(playerId))
|
||||||
{
|
{
|
||||||
|
@ -354,6 +355,105 @@ namespace HISP.Server
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
public static void OnSocialPacket(GameClient sender, byte[] packet)
|
||||||
|
{
|
||||||
|
if (!sender.LoggedIn)
|
||||||
|
{
|
||||||
|
Logger.ErrorPrint(sender.RemoteIp + " Tried to be socialable, but has no account and therefor no friends.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
byte method = packet[1];
|
||||||
|
|
||||||
|
switch (method)
|
||||||
|
{
|
||||||
|
case PacketBuilder.SOCIALS_MENU:
|
||||||
|
string packetStr = Encoding.UTF8.GetString(packet);
|
||||||
|
string playerIdStr = packetStr.Substring(2, packetStr.Length - 4);
|
||||||
|
int playerId = -1;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
playerId = int.Parse(playerIdStr);
|
||||||
|
}
|
||||||
|
catch (FormatException)
|
||||||
|
{
|
||||||
|
Logger.ErrorPrint(sender.LoggedinUser.Username + " tried to socialize with User ID NaN.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(IsUserOnline(playerId))
|
||||||
|
{
|
||||||
|
sender.LoggedinUser.SocializingWith = GetUserById(playerId);
|
||||||
|
sender.LoggedinUser.MetaPriority = true;
|
||||||
|
byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildSocialMenu(sender.LoggedinUser.CurrentlyRidingHorse != null));
|
||||||
|
sender.SendPacket(metaPacket);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.ErrorPrint(sender.LoggedinUser.Username + " tried to socialize with User #"+playerId.ToString()+" but there not online.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PacketBuilder.SOCIALS_USE:
|
||||||
|
int socialId = Convert.ToInt32(packet[2] - (byte)0x21);
|
||||||
|
SocialType.Social social = SocialType.GetSocial(socialId);
|
||||||
|
|
||||||
|
foreach(User user in GetUsersAt(sender.LoggedinUser.X, sender.LoggedinUser.Y, true, true))
|
||||||
|
{
|
||||||
|
if (social.BaseSocialType.Type != "GROUP")
|
||||||
|
if (user.Id == sender.LoggedinUser.SocializingWith.Id)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (user.Id == sender.LoggedinUser.Id)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (user.MuteAll || user.MuteSocials)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
byte[] msgEveryone = PacketBuilder.CreateChat(Messages.FormatSocialMessage(social.ForEveryone, sender.LoggedinUser.SocializingWith.Username, sender.LoggedinUser.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
user.LoggedinClient.SendPacket(msgEveryone);
|
||||||
|
}
|
||||||
|
if(social.ForTarget != null)
|
||||||
|
{
|
||||||
|
if(sender.LoggedinUser.SocializingWith != null)
|
||||||
|
{
|
||||||
|
if (social.BaseSocialType.Type != "GROUP")
|
||||||
|
{
|
||||||
|
if (!sender.LoggedinUser.SocializingWith.MuteAll || !sender.LoggedinUser.SocializingWith.MuteSocials)
|
||||||
|
{
|
||||||
|
byte[] msgTarget = PacketBuilder.CreateChat(Messages.FormatSocialMessage(social.ForTarget, sender.LoggedinUser.SocializingWith.Username, sender.LoggedinUser.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
sender.LoggedinUser.SocializingWith.LoggedinClient.SendPacket(msgTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(social.ForSender != null)
|
||||||
|
{
|
||||||
|
if (sender.LoggedinUser.SocializingWith != null)
|
||||||
|
{
|
||||||
|
byte[] msgSender = PacketBuilder.CreateChat(Messages.FormatSocialMessage(social.ForSender, sender.LoggedinUser.SocializingWith.Username, sender.LoggedinUser.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
sender.SendPacket(msgSender);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach(User user in GetUsersAt(sender.LoggedinUser.X, sender.LoggedinUser.Y, true, true))
|
||||||
|
{
|
||||||
|
if (social.SoundEffect != null)
|
||||||
|
{
|
||||||
|
if (user.MuteAll || user.MuteSocials)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
byte[] soundEffect = PacketBuilder.CreatePlaysoundPacket(social.SoundEffect);
|
||||||
|
user.LoggedinClient.SendPacket(soundEffect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Logger.ErrorPrint(sender.LoggedinUser.Username + " unknown social: " + method.ToString("X") + " packet dump: " + BitConverter.ToString(packet).Replace("-", " "));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
public static void OnBirdMapRequested(GameClient sender, byte[] packet)
|
public static void OnBirdMapRequested(GameClient sender, byte[] packet)
|
||||||
{
|
{
|
||||||
if (!sender.LoggedIn)
|
if (!sender.LoggedIn)
|
||||||
|
@ -3960,9 +4060,16 @@ namespace HISP.Server
|
||||||
if(GameServer.RandomNumberGenerator.Next(0, 100) >= 97 || sender.LoggedinUser.Username.ToLower() == "dream")
|
if(GameServer.RandomNumberGenerator.Next(0, 100) >= 97 || sender.LoggedinUser.Username.ToLower() == "dream")
|
||||||
{
|
{
|
||||||
loggedInUser.CurrentlyRidingHorse.BasicStats.Experience++;
|
loggedInUser.CurrentlyRidingHorse.BasicStats.Experience++;
|
||||||
|
byte[] horseBuckedMessage;
|
||||||
|
if(loggedInUser.CurrentlyRidingHorse.Breed.Type == "llama")
|
||||||
|
horseBuckedMessage = PacketBuilder.CreateChat(Messages.HorseLlamaBuckedYou, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
else if (loggedInUser.CurrentlyRidingHorse.Breed.Type == "camel")
|
||||||
|
horseBuckedMessage = PacketBuilder.CreateChat(Messages.HorseCamelBuckedYou, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
else
|
||||||
|
horseBuckedMessage = PacketBuilder.CreateChat(Messages.HorseBuckedYou, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||||
|
|
||||||
sender.LoggedinUser.CurrentlyRidingHorse = null;
|
sender.LoggedinUser.CurrentlyRidingHorse = null;
|
||||||
sender.LoggedinUser.Facing %= 5;
|
sender.LoggedinUser.Facing %= 5;
|
||||||
byte[] horseBuckedMessage = PacketBuilder.CreateChat(Messages.HorseBuckedYou, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
|
||||||
sender.SendPacket(horseBuckedMessage);
|
sender.SendPacket(horseBuckedMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,10 @@ namespace HISP.Server
|
||||||
public const byte PACKET_SWFMODULE = 0x50;
|
public const byte PACKET_SWFMODULE = 0x50;
|
||||||
public const byte PACKET_AUCTION = 0x24;
|
public const byte PACKET_AUCTION = 0x24;
|
||||||
public const byte PACKET_PLAYER_INTERACTION = 0x2A;
|
public const byte PACKET_PLAYER_INTERACTION = 0x2A;
|
||||||
|
public const byte PACKET_SOCIALS = 0x5A;
|
||||||
|
|
||||||
|
public const byte SOCIALS_MENU = 0x14;
|
||||||
|
public const byte SOCIALS_USE = 0x15;
|
||||||
|
|
||||||
public const byte PLAYER_INTERACTION_TRADE = 0x28;
|
public const byte PLAYER_INTERACTION_TRADE = 0x28;
|
||||||
public const byte PLAYER_INTERACTION_ADD_ITEM = 0x29;
|
public const byte PLAYER_INTERACTION_ADD_ITEM = 0x29;
|
||||||
|
|
Loading…
Add table
Reference in a new issue