tServer now ignores client's "From:" field - vaccinewars - be a doctor and try to vaccinate the world (HTM) git clone git://src.adamsgaard.dk/vaccinewars (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit d3786b088df3c7418938c90b770263d8d52b6c32 (DIR) parent f4eaf3281460590a2efc99b13f9715c1319d73c4 (HTM) Author: Ben Webb <ben@salilab.org> Date: Tue, 12 Sep 2000 17:38:29 +0000 Server now ignores client's "From:" field Diffstat: M po/cat-id-tbl.c | 315 +++++++++++++++---------------- M po/dopewars.pot | 278 +++++++++++++++---------------- M src/message.c | 6 +++++- M src/serverside.c | 211 +++++++++++++++---------------- 4 files changed, 398 insertions(+), 412 deletions(-) --- (DIR) diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c t@@ -541,187 +541,184 @@ Valid variables are listed below:-\n\ {"cannot locate metaserver\n", 441}, {"cannot create socket for metaserver communication\n", 442}, {"cannot read high score file\n", 443}, + {"MaxClients (%d) exceeded - dropping connection", 444}, {"\ -Message is lying about its origin\n\ -%s: %c: %s: %s\n\ -Should be from %s", 444}, - {"MaxClients (%d) exceeded - dropping connection", 445}, +Sorry, but this server has a limit of 1 player, which has been \ +reached.^Please try connecting again later.", 445}, {"\ -Sorry, but this server has a limit of %d %s, which has been reached.^Please \ -try connecting again later.", 446}, - {"player", 447}, - {"players", 448}, - {"%s will now be known as %s", 449}, - {"Your dealing time is up...", 450}, - {"%s: DENIED jet to %s", 451}, - {"%s now spying on %s", 452}, - {"%s spy on %s: DENIED", 453}, - {"%s tipped off the cops to %s", 454}, - {"%s tipoff about %s: DENIED", 455}, - {"--More--", 456}, - {"Pager exited abnormally - using stdout instead...", 457}, - {"Maintaining pid file %s", 458}, - {"Cannot create pid file %s", 459}, +Sorry, but this server has a limit of %d players, which has been \ +reached.^Please try connecting again later.", 446}, + {"%s will now be known as %s", 447}, + {"Your dealing time is up...", 448}, + {"%s: DENIED jet to %s", 449}, + {"%s now spying on %s", 450}, + {"%s spy on %s: DENIED", 451}, + {"%s tipped off the cops to %s", 452}, + {"%s tipoff about %s: DENIED", 453}, + {"--More--", 454}, + {"Pager exited abnormally - using stdout instead...", 455}, + {"Maintaining pid file %s", 456}, + {"Cannot create pid file %s", 457}, {"\ Cannot open high score file %s.\n\ Either ensure you have permissions to access this file and directory, or\n\ -specify an alternate high score file with the -f command line option.", 460}, +specify an alternate high score file with the -f command line option.", 458}, {"\ dopewars server version %s ready and waiting for connections\n\ -on port %d. For assistance with server commands, enter the command \"help\"\n", 461}, - {"Cannot install SIGUSR1 interrupt handler!", 462}, - {"Cannot install SIGINT interrupt handler!", 463}, - {"Cannot install SIGTERM interrupt handler!", 464}, - {"Cannot install SIGHUP interrupt handler!", 465}, - {"Cannot install pipe handler!", 466}, - {"Users currently logged on:-\n", 467}, - {"No users currently logged on!", 468}, - {"Pushing %s", 469}, - {"No such user!", 470}, - {"%s killed", 471}, - {"Unknown command - try \"help\" for help...", 472}, - {"got connection from %s", 473}, - {"%s leaves the server!", 474}, - {"Standard input closed.", 475}, - {"Unable to read high score file %s", 476}, - {"Congratulations! You made the high scores!", 477}, - {"You didn't even make the high score table...", 478}, - {"Unable to write high score file %s", 479}, - {"(R.I.P.)", 480}, - {"%s: Tipoff from %s", 481}, - {"One of your %s was spying for %s.^The spy %s!", 482}, - {"Your spy working with %s has been discovered!^The spy %s!", 483}, - {" The lady next to you on the subway said,^ \"%s\"%s", 484}, - {"^ (at least, you -think- that's what she said)", 485}, - {" You hear someone playing %s", 486}, - {"YN^Would you like to visit %s?", 487}, - {"YN^^Would you like to hire %s %s for %s?", 488}, - {"an", 489}, - {"a", 490}, - {"AE^%s is already here!^Do you Attack, or Evade?", 491}, - {"YN^Officer %s is chasing you!", 492}, - {"YN^Officer %s and %d of his deputies are chasing you!", 493}, - {"^Do you run?", 494}, - {"^Do you Run, or Fight?", 495}, - {"%s: tipoff by %s finished OK.", 496}, - {"Following your tipoff, the cops ambushed %s, who was shot dead", 497}, - {"Following your tipoff, the cops ambushed %s, who escaped with %d %s. ", 498}, - {"^You stand there like an idiot.", 499}, - {"^You lose him in the alleys.", 500}, - {"^You lose them in the alleys.", 501}, - {"^You can't shake him, man!", 502}, - {"^You can't shake them, man!", 503}, - {"^You killed Officer %s! You find %s on his corpse!", 504}, - {"YN^^^^Do you pay a doctor %s to sew your %s up?", 505}, - {"YN^^^^Do you pay a doctor %s to sew you up?", 506}, - {"^You got one, man!", 507}, - {"^You missed!", 508}, - {"^He's firing on you, man! ", 509}, - {"^They're firing on you, man! ", 510}, - {"You've been hit! ", 511}, - {"He wasted you, man! What a drag!", 512}, - {"They wasted you, man! What a drag!", 513}, - {"You lost one of your %s!", 514}, - {"He missed!", 515}, - {"They missed!", 516}, - {"You were mugged in the subway!", 517}, - {"You meet a friend! He gives you %d %s.", 518}, - {"You meet a friend! You give him %d %s.", 519}, - {"Sanitized away a RandomOffer", 520}, +on port %d. For assistance with server commands, enter the command \"help\"\n", 459}, + {"Cannot install SIGUSR1 interrupt handler!", 460}, + {"Cannot install SIGINT interrupt handler!", 461}, + {"Cannot install SIGTERM interrupt handler!", 462}, + {"Cannot install SIGHUP interrupt handler!", 463}, + {"Cannot install pipe handler!", 464}, + {"Users currently logged on:-\n", 465}, + {"No users currently logged on!", 466}, + {"Pushing %s", 467}, + {"No such user!", 468}, + {"%s killed", 469}, + {"Unknown command - try \"help\" for help...", 470}, + {"got connection from %s", 471}, + {"%s leaves the server!", 472}, + {"Standard input closed.", 473}, + {"Unable to read high score file %s", 474}, + {"Congratulations! You made the high scores!", 475}, + {"You didn't even make the high score table...", 476}, + {"Unable to write high score file %s", 477}, + {"(R.I.P.)", 478}, + {"%s: Tipoff from %s", 479}, + {"One of your %s was spying for %s.^The spy %s!", 480}, + {"Your spy working with %s has been discovered!^The spy %s!", 481}, + {" The lady next to you on the subway said,^ \"%s\"%s", 482}, + {"^ (at least, you -think- that's what she said)", 483}, + {" You hear someone playing %s", 484}, + {"YN^Would you like to visit %s?", 485}, + {"YN^^Would you like to hire %s %s for %s?", 486}, + {"an", 487}, + {"a", 488}, + {"AE^%s is already here!^Do you Attack, or Evade?", 489}, + {"YN^Officer %s is chasing you!", 490}, + {"YN^Officer %s and %d of his deputies are chasing you!", 491}, + {"^Do you run?", 492}, + {"^Do you Run, or Fight?", 493}, + {"%s: tipoff by %s finished OK.", 494}, + {"Following your tipoff, the cops ambushed %s, who was shot dead", 495}, + {"Following your tipoff, the cops ambushed %s, who escaped with %d %s. ", 496}, + {"^You stand there like an idiot.", 497}, + {"^You lose him in the alleys.", 498}, + {"^You lose them in the alleys.", 499}, + {"^You can't shake him, man!", 500}, + {"^You can't shake them, man!", 501}, + {"^You killed Officer %s! You find %s on his corpse!", 502}, + {"YN^^^^Do you pay a doctor %s to sew your %s up?", 503}, + {"YN^^^^Do you pay a doctor %s to sew you up?", 504}, + {"^You got one, man!", 505}, + {"^You missed!", 506}, + {"^He's firing on you, man! ", 507}, + {"^They're firing on you, man! ", 508}, + {"You've been hit! ", 509}, + {"He wasted you, man! What a drag!", 510}, + {"They wasted you, man! What a drag!", 511}, + {"You lost one of your %s!", 512}, + {"He missed!", 513}, + {"They missed!", 514}, + {"You were mugged in the subway!", 515}, + {"You meet a friend! He gives you %d %s.", 516}, + {"You meet a friend! You give him %d %s.", 517}, + {"Sanitized away a RandomOffer", 518}, {"\ -Police dogs chase you for %d blocks! You dropped some %s! That's a drag, man!", 521}, - {"You find %d %s on a dead dude in the subway!", 522}, - {"Your mama made brownies with some of your %s! They were great!", 523}, +Police dogs chase you for %d blocks! You dropped some %s! That's a drag, man!", 519}, + {"You find %d %s on a dead dude in the subway!", 520}, + {"Your mama made brownies with some of your %s! They were great!", 521}, {"\ YN^There is some weed that smells like paraquat here!^It looks good! Will \ -you smoke it? ", 524}, - {"You stopped to %s.", 525}, - {"Would you like to buy a bigger trenchcoat for %s?", 526}, - {"YN^Hey dude! I'll help carry your %s for a mere %s. Yes or no?", 527}, - {"YN^Would you like to buy a %s for %s?", 528}, - {"%s: offer was on behalf of %s", 529}, - {"%s has accepted your %s!^Use the G key to contact your spy.", 530}, +you smoke it? ", 522}, + {"You stopped to %s.", 523}, + {"Would you like to buy a bigger trenchcoat for %s?", 524}, + {"YN^Hey dude! I'll help carry your %s for a mere %s. Yes or no?", 525}, + {"YN^Would you like to buy a %s for %s?", 526}, + {"%s: offer was on behalf of %s", 527}, + {"%s has accepted your %s!^Use the G key to contact your spy.", 528}, {"\ You hallucinated for three days on the wildest trip you ever imagined!^Then \ -you died because your brain disintegrated!", 531}, - {"Too late - %s has just left!", 532}, - {"%s has rejected your %s!", 533}, - {"%s has got away!", 534}, - {"%s has run off!", 535}, - {"Coward! You successfully escaped from the fight.", 536}, - {"pitifully armed", 537}, - {"lightly armed", 538}, - {"moderately well armed", 539}, - {"heavily armed", 540}, - {"armed to the teeth", 541}, - {" fires and ", 542}, - {" stands and takes it.", 543}, - {"%s arrives, with %d %s, %s,^%s", 544}, - {"%s arrives, %s,^%s", 545}, - {"%s fires and ", 546}, - {"%s stands and takes it.", 547}, - {"misses you!", 548}, - {"You failed to hit %s.", 549}, - {"You stand and take it.", 550}, - {"hits you, man!", 551}, - {" You've been wasted! What a drag!", 552}, - {"You hit and killed %s", 553}, - {", and loot the body!", 554}, - {"^You lost a %s, man!", 555}, - {"You are paid a bounty of %s in reward for killing^one of %s's %s", 556}, - {"You killed one of %s's %s (%d left)", 557}, - {"You fire, and hit %s!", 558}, - {"YN^Officer %%s spots you dropping %s, and chases you!", 559}, +you died because your brain disintegrated!", 529}, + {"Too late - %s has just left!", 530}, + {"%s has rejected your %s!", 531}, + {"%s has got away!", 532}, + {"%s has run off!", 533}, + {"Coward! You successfully escaped from the fight.", 534}, + {"pitifully armed", 535}, + {"lightly armed", 536}, + {"moderately well armed", 537}, + {"heavily armed", 538}, + {"armed to the teeth", 539}, + {" fires and ", 540}, + {" stands and takes it.", 541}, + {"%s arrives, with %d %s, %s,^%s", 542}, + {"%s arrives, %s,^%s", 543}, + {"%s fires and ", 544}, + {"%s stands and takes it.", 545}, + {"misses you!", 546}, + {"You failed to hit %s.", 547}, + {"You stand and take it.", 548}, + {"hits you, man!", 549}, + {" You've been wasted! What a drag!", 550}, + {"You hit and killed %s", 551}, + {", and loot the body!", 552}, + {"^You lost a %s, man!", 553}, + {"You are paid a bounty of %s in reward for killing^one of %s's %s", 554}, + {"You killed one of %s's %s (%d left)", 555}, + {"You fire, and hit %s!", 556}, + {"YN^Officer %%s spots you dropping %s, and chases you!", 557}, {"\ -YN^Officer %%s and %%d of his deputies spot you dropping %s, and chase you!", 560}, - {"Player removed due to idle timeout", 561}, - {"Player removed due to connect timeout", 562}, - {"%s fails to return fire...", 563}, +YN^Officer %%s and %%d of his deputies spot you dropping %s, and chase you!", 558}, + {"Player removed due to idle timeout", 559}, + {"Player removed due to connect timeout", 560}, + {"%s fails to return fire...", 561}, {"\ This server is version %s, while your client is version %s.\n\ Be warned that different versions may not be fully compatible!\n\ Refer to the website at http://bellatrix.pcl.ox.ac.uk/~ben/dopewars/\n\ -for the latest version.", 564}, - {"Could not find host", 565}, - {"Could not create network socket", 566}, - {"Connection refused or no server present", 567}, - {"Cannot locate metaserver", 568}, - {"Cannot create socket", 569}, - {"Metaserver not running HTTP or connection denied", 570}, - {"AI Player started; attempting to contact server at %s:%d...", 571}, +for the latest version.", 562}, + {"Could not find host", 563}, + {"Could not create network socket", 564}, + {"Connection refused or no server present", 565}, + {"Cannot locate metaserver", 566}, + {"Cannot create socket", 567}, + {"Metaserver not running HTTP or connection denied", 568}, + {"AI Player started; attempting to contact server at %s:%d...", 569}, {"\ Could not connect to dopewars server\n\ (%s)\n\ -AI Player terminating abnormally.", 572}, - {"Connection established\n", 573}, - {"Connection to server lost!\n", 574}, - {"AI Player terminated OK.\n", 575}, - {"Using name %s\n", 576}, - {"Players in this game:-\n", 577}, - {"%s joins the game.\n", 578}, - {"%s has left the game.\n", 579}, - {"Jetting to %s with %s cash and %s debt", 580}, - {"AI Player killed. Terminating normally.\n", 581}, - {"Game time is up. Leaving game.\n", 582}, - {"AI Player pushed from the server.\n", 583}, - {"The server has terminated.\n", 584}, - {"Selling %d %s at %s\n", 585}, - {"Buying %d %s at %s\n", 586}, - {"Buying a %s for %s at the gun shop\n", 587}, - {"Debt of %s paid off to loan shark\n", 588}, - {"Loan shark located at %s\n", 589}, - {"Gun shop located at %s\n", 590}, - {"Pub located at %s\n", 591}, - {"Bank located at %s\n", 592}, - {"Call yourselves drug dealers?", 593}, - {"A trained monkey could do better...", 594}, - {"Think you're hard enough to deal with the likes of me?", 595}, - {"Zzzzz... are you dealing in candy or what?", 596}, - {"Reckon I'll just have to shoot you for your own good.", 597}, +AI Player terminating abnormally.", 570}, + {"Connection established\n", 571}, + {"Connection to server lost!\n", 572}, + {"AI Player terminated OK.\n", 573}, + {"Using name %s\n", 574}, + {"Players in this game:-\n", 575}, + {"%s joins the game.\n", 576}, + {"%s has left the game.\n", 577}, + {"Jetting to %s with %s cash and %s debt", 578}, + {"AI Player killed. Terminating normally.\n", 579}, + {"Game time is up. Leaving game.\n", 580}, + {"AI Player pushed from the server.\n", 581}, + {"The server has terminated.\n", 582}, + {"Selling %d %s at %s\n", 583}, + {"Buying %d %s at %s\n", 584}, + {"Buying a %s for %s at the gun shop\n", 585}, + {"Debt of %s paid off to loan shark\n", 586}, + {"Loan shark located at %s\n", 587}, + {"Gun shop located at %s\n", 588}, + {"Pub located at %s\n", 589}, + {"Bank located at %s\n", 590}, + {"Call yourselves drug dealers?", 591}, + {"A trained monkey could do better...", 592}, + {"Think you're hard enough to deal with the likes of me?", 593}, + {"Zzzzz... are you dealing in candy or what?", 594}, + {"Reckon I'll just have to shoot you for your own good.", 595}, {"\ This binary has been compiled without networking support, and thus cannot \ act as an AI player.\n\ -Recompile passing --enable-networking to the configure script.", 598}, +Recompile passing --enable-networking to the configure script.", 596}, }; -int _msg_tbl_length = 598; +int _msg_tbl_length = 596; (DIR) diff --git a/po/dopewars.pot b/po/dopewars.pot t@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-09-12 15:45+0100\n" +"POT-Creation-Date: 2000-09-12 18:35+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" t@@ -1104,7 +1104,7 @@ msgstr "" msgid "The server has terminated. Reverting to single player mode." msgstr "" -#: src/curses_client.c:646 src/gtk_client.c:337 src/serverside.c:263 +#: src/curses_client.c:646 src/gtk_client.c:337 src/serverside.c:250 #, c-format msgid "%s joins the game!" msgstr "" t@@ -1948,87 +1948,77 @@ msgstr "" msgid "cannot read high score file\n" msgstr "" -#: src/serverside.c:207 -#, c-format -msgid "" -"Message is lying about its origin\n" -"%s: %c: %s: %s\n" -"Should be from %s" -msgstr "" - -#: src/serverside.c:271 +#: src/serverside.c:257 #, c-format msgid "MaxClients (%d) exceeded - dropping connection" msgstr "" -#: src/serverside.c:273 -#, c-format +#: src/serverside.c:261 msgid "" -"Sorry, but this server has a limit of %d %s, which has been reached.^Please " -"try connecting again later." +"Sorry, but this server has a limit of 1 player, which has been " +"reached.^Please try connecting again later." msgstr "" -#: src/serverside.c:275 -msgid "player" -msgstr "" - -#: src/serverside.c:275 -msgid "players" +#: src/serverside.c:266 +#, c-format +msgid "" +"Sorry, but this server has a limit of %d players, which has been " +"reached.^Please try connecting again later." msgstr "" -#: src/serverside.c:284 +#: src/serverside.c:279 #, c-format msgid "%s will now be known as %s" msgstr "" -#: src/serverside.c:299 +#: src/serverside.c:294 msgid "Your dealing time is up..." msgstr "" -#: src/serverside.c:310 +#: src/serverside.c:305 #, c-format msgid "%s: DENIED jet to %s" msgstr "" -#: src/serverside.c:367 +#: src/serverside.c:362 #, c-format msgid "%s now spying on %s" msgstr "" -#: src/serverside.c:375 +#: src/serverside.c:370 #, c-format msgid "%s spy on %s: DENIED" msgstr "" -#: src/serverside.c:381 +#: src/serverside.c:376 #, c-format msgid "%s tipped off the cops to %s" msgstr "" -#: src/serverside.c:389 +#: src/serverside.c:384 #, c-format msgid "%s tipoff about %s: DENIED" msgstr "" -#: src/serverside.c:497 +#: src/serverside.c:492 msgid "--More--" msgstr "" -#: src/serverside.c:508 +#: src/serverside.c:503 msgid "Pager exited abnormally - using stdout instead..." msgstr "" -#: src/serverside.c:523 +#: src/serverside.c:518 #, c-format msgid "Maintaining pid file %s" msgstr "" -#: src/serverside.c:527 +#: src/serverside.c:522 #, c-format msgid "Cannot create pid file %s" msgstr "" -#: src/serverside.c:576 +#: src/serverside.c:571 #, c-format msgid "" "Cannot open high score file %s.\n" t@@ -2036,144 +2026,144 @@ msgid "" "specify an alternate high score file with the -f command line option." msgstr "" -#: src/serverside.c:613 +#: src/serverside.c:608 #, c-format msgid "" "dopewars server version %s ready and waiting for connections\n" "on port %d. For assistance with server commands, enter the command \"help\"\n" msgstr "" -#: src/serverside.c:630 +#: src/serverside.c:625 msgid "Cannot install SIGUSR1 interrupt handler!" msgstr "" -#: src/serverside.c:636 +#: src/serverside.c:631 msgid "Cannot install SIGINT interrupt handler!" msgstr "" -#: src/serverside.c:639 +#: src/serverside.c:634 msgid "Cannot install SIGTERM interrupt handler!" msgstr "" -#: src/serverside.c:642 +#: src/serverside.c:637 msgid "Cannot install SIGHUP interrupt handler!" msgstr "" -#: src/serverside.c:647 +#: src/serverside.c:642 msgid "Cannot install pipe handler!" msgstr "" -#: src/serverside.c:670 +#: src/serverside.c:665 msgid "Users currently logged on:-\n" msgstr "" -#: src/serverside.c:675 +#: src/serverside.c:670 msgid "No users currently logged on!" msgstr "" -#: src/serverside.c:679 +#: src/serverside.c:674 #, c-format msgid "Pushing %s" msgstr "" -#: src/serverside.c:681 src/serverside.c:689 +#: src/serverside.c:676 src/serverside.c:684 msgid "No such user!" msgstr "" -#: src/serverside.c:685 +#: src/serverside.c:680 #, c-format msgid "%s killed" msgstr "" -#: src/serverside.c:691 +#: src/serverside.c:686 msgid "Unknown command - try \"help\" for help..." msgstr "" -#: src/serverside.c:708 +#: src/serverside.c:703 #, c-format msgid "got connection from %s" msgstr "" -#: src/serverside.c:724 +#: src/serverside.c:719 #, c-format msgid "%s leaves the server!" msgstr "" -#: src/serverside.c:792 +#: src/serverside.c:787 msgid "Standard input closed." msgstr "" -#: src/serverside.c:935 +#: src/serverside.c:930 #, c-format msgid "Unable to read high score file %s" msgstr "" -#: src/serverside.c:955 +#: src/serverside.c:950 msgid "Congratulations! You made the high scores!" msgstr "" -#: src/serverside.c:968 +#: src/serverside.c:963 msgid "You didn't even make the high score table..." msgstr "" -#: src/serverside.c:982 +#: src/serverside.c:977 #, c-format msgid "Unable to write high score file %s" msgstr "" -#: src/serverside.c:1001 +#: src/serverside.c:996 msgid "(R.I.P.)" msgstr "" -#: src/serverside.c:1036 +#: src/serverside.c:1031 #, c-format msgid "%s: Tipoff from %s" msgstr "" -#: src/serverside.c:1053 +#: src/serverside.c:1048 #, c-format msgid "One of your %s was spying for %s.^The spy %s!" msgstr "" -#: src/serverside.c:1061 +#: src/serverside.c:1056 #, c-format msgid "Your spy working with %s has been discovered!^The spy %s!" msgstr "" -#: src/serverside.c:1084 +#: src/serverside.c:1079 #, c-format msgid " The lady next to you on the subway said,^ \"%s\"%s" msgstr "" -#: src/serverside.c:1087 +#: src/serverside.c:1082 msgid "^ (at least, you -think- that's what she said)" msgstr "" -#: src/serverside.c:1089 +#: src/serverside.c:1084 #, c-format msgid " You hear someone playing %s" msgstr "" -#: src/serverside.c:1098 src/serverside.c:1107 src/serverside.c:1116 -#: src/serverside.c:1125 +#: src/serverside.c:1093 src/serverside.c:1102 src/serverside.c:1111 +#: src/serverside.c:1120 #, c-format msgid "YN^Would you like to visit %s?" msgstr "" -#: src/serverside.c:1136 +#: src/serverside.c:1131 #, c-format msgid "YN^^Would you like to hire %s %s for %s?" msgstr "" -#: src/serverside.c:1137 +#: src/serverside.c:1132 msgid "an" msgstr "" -#: src/serverside.c:1137 +#: src/serverside.c:1132 msgid "a" msgstr "" -#: src/serverside.c:1149 +#: src/serverside.c:1144 #, c-format msgid "AE^%s is already here!^Do you Attack, or Evade?" msgstr "" t@@ -2182,336 +2172,336 @@ msgstr "" #. The format string used for this purpose can be altered by #. passing non-NULL "LoneMessage" (for unaccompanied Officer #. Hardass) and/or "DeputyMessage" (for him with x deputies) -#: src/serverside.c:1218 +#: src/serverside.c:1213 #, c-format msgid "YN^Officer %s is chasing you!" msgstr "" -#: src/serverside.c:1220 +#: src/serverside.c:1215 #, c-format msgid "YN^Officer %s and %d of his deputies are chasing you!" msgstr "" -#: src/serverside.c:1241 +#: src/serverside.c:1236 msgid "^Do you run?" msgstr "" -#: src/serverside.c:1244 +#: src/serverside.c:1239 msgid "^Do you Run, or Fight?" msgstr "" -#: src/serverside.c:1259 +#: src/serverside.c:1254 #, c-format msgid "%s: tipoff by %s finished OK." msgstr "" -#: src/serverside.c:1265 +#: src/serverside.c:1260 #, c-format msgid "Following your tipoff, the cops ambushed %s, who was shot dead" msgstr "" -#: src/serverside.c:1269 +#: src/serverside.c:1264 #, c-format msgid "Following your tipoff, the cops ambushed %s, who escaped with %d %s. " msgstr "" -#: src/serverside.c:1306 +#: src/serverside.c:1301 msgid "^You stand there like an idiot." msgstr "" -#: src/serverside.c:1310 +#: src/serverside.c:1305 msgid "^You lose him in the alleys." msgstr "" -#: src/serverside.c:1312 +#: src/serverside.c:1307 msgid "^You lose them in the alleys." msgstr "" -#: src/serverside.c:1320 +#: src/serverside.c:1315 msgid "^You can't shake him, man!" msgstr "" -#: src/serverside.c:1322 +#: src/serverside.c:1317 msgid "^You can't shake them, man!" msgstr "" -#: src/serverside.c:1333 +#: src/serverside.c:1328 #, c-format msgid "^You killed Officer %s! You find %s on his corpse!" msgstr "" -#: src/serverside.c:1347 +#: src/serverside.c:1342 #, c-format msgid "YN^^^^Do you pay a doctor %s to sew your %s up?" msgstr "" -#: src/serverside.c:1351 +#: src/serverside.c:1346 #, c-format msgid "YN^^^^Do you pay a doctor %s to sew you up?" msgstr "" -#: src/serverside.c:1362 +#: src/serverside.c:1357 msgid "^You got one, man!" msgstr "" -#: src/serverside.c:1365 +#: src/serverside.c:1360 msgid "^You missed!" msgstr "" -#: src/serverside.c:1369 +#: src/serverside.c:1364 msgid "^He's firing on you, man! " msgstr "" -#: src/serverside.c:1371 +#: src/serverside.c:1366 msgid "^They're firing on you, man! " msgstr "" -#: src/serverside.c:1374 +#: src/serverside.c:1369 msgid "You've been hit! " msgstr "" -#: src/serverside.c:1381 +#: src/serverside.c:1376 msgid "He wasted you, man! What a drag!" msgstr "" -#: src/serverside.c:1383 +#: src/serverside.c:1378 msgid "They wasted you, man! What a drag!" msgstr "" -#: src/serverside.c:1391 +#: src/serverside.c:1386 #, c-format msgid "You lost one of your %s!" msgstr "" -#: src/serverside.c:1400 +#: src/serverside.c:1395 msgid "He missed!" msgstr "" -#: src/serverside.c:1402 +#: src/serverside.c:1397 msgid "They missed!" msgstr "" -#: src/serverside.c:1422 +#: src/serverside.c:1417 msgid "You were mugged in the subway!" msgstr "" -#: src/serverside.c:1433 +#: src/serverside.c:1428 #, c-format msgid "You meet a friend! He gives you %d %s." msgstr "" -#: src/serverside.c:1438 +#: src/serverside.c:1433 #, c-format msgid "You meet a friend! You give him %d %s." msgstr "" -#: src/serverside.c:1445 +#: src/serverside.c:1440 msgid "Sanitized away a RandomOffer" msgstr "" -#: src/serverside.c:1450 +#: src/serverside.c:1445 #, c-format msgid "" "Police dogs chase you for %d blocks! You dropped some %s! That's a drag, man!" msgstr "" -#: src/serverside.c:1464 +#: src/serverside.c:1459 #, c-format msgid "You find %d %s on a dead dude in the subway!" msgstr "" -#: src/serverside.c:1476 +#: src/serverside.c:1471 #, c-format msgid "Your mama made brownies with some of your %s! They were great!" msgstr "" -#: src/serverside.c:1484 +#: src/serverside.c:1479 msgid "" "YN^There is some weed that smells like paraquat here!^It looks good! Will " "you smoke it? " msgstr "" -#: src/serverside.c:1491 +#: src/serverside.c:1486 #, c-format msgid "You stopped to %s." msgstr "" -#: src/serverside.c:1512 +#: src/serverside.c:1507 #, c-format msgid "Would you like to buy a bigger trenchcoat for %s?" msgstr "" -#: src/serverside.c:1517 +#: src/serverside.c:1512 #, c-format msgid "YN^Hey dude! I'll help carry your %s for a mere %s. Yes or no?" msgstr "" -#: src/serverside.c:1529 +#: src/serverside.c:1524 #, c-format msgid "YN^Would you like to buy a %s for %s?" msgstr "" -#: src/serverside.c:1630 src/serverside.c:1741 +#: src/serverside.c:1625 src/serverside.c:1736 #, c-format msgid "%s: offer was on behalf of %s" msgstr "" -#: src/serverside.c:1633 +#: src/serverside.c:1628 #, c-format msgid "%s has accepted your %s!^Use the G key to contact your spy." msgstr "" -#: src/serverside.c:1679 +#: src/serverside.c:1674 msgid "" "You hallucinated for three days on the wildest trip you ever imagined!^Then " "you died because your brain disintegrated!" msgstr "" -#: src/serverside.c:1718 +#: src/serverside.c:1713 #, c-format msgid "Too late - %s has just left!" msgstr "" -#: src/serverside.c:1744 +#: src/serverside.c:1739 #, c-format msgid "%s has rejected your %s!" msgstr "" -#: src/serverside.c:1779 +#: src/serverside.c:1774 #, c-format msgid "%s has got away!" msgstr "" -#: src/serverside.c:1820 +#: src/serverside.c:1815 #, c-format msgid "%s has run off!" msgstr "" -#: src/serverside.c:1832 +#: src/serverside.c:1827 msgid "Coward! You successfully escaped from the fight." msgstr "" -#: src/serverside.c:1888 +#: src/serverside.c:1883 msgid "pitifully armed" msgstr "" -#: src/serverside.c:1889 +#: src/serverside.c:1884 msgid "lightly armed" msgstr "" -#: src/serverside.c:1890 +#: src/serverside.c:1885 msgid "moderately well armed" msgstr "" -#: src/serverside.c:1891 +#: src/serverside.c:1886 msgid "heavily armed" msgstr "" -#: src/serverside.c:1892 +#: src/serverside.c:1887 msgid "armed to the teeth" msgstr "" -#: src/serverside.c:1893 +#: src/serverside.c:1888 msgid " fires and " msgstr "" -#: src/serverside.c:1894 +#: src/serverside.c:1889 msgid " stands and takes it." msgstr "" -#: src/serverside.c:1897 +#: src/serverside.c:1892 #, c-format msgid "%s arrives, with %d %s, %s,^%s" msgstr "" -#: src/serverside.c:1901 +#: src/serverside.c:1896 #, c-format msgid "%s arrives, %s,^%s" msgstr "" -#: src/serverside.c:1906 +#: src/serverside.c:1901 #, c-format msgid "%s fires and " msgstr "" -#: src/serverside.c:1908 +#: src/serverside.c:1903 #, c-format msgid "%s stands and takes it." msgstr "" -#: src/serverside.c:1920 +#: src/serverside.c:1915 msgid "misses you!" msgstr "" -#: src/serverside.c:1921 +#: src/serverside.c:1916 #, c-format msgid "You failed to hit %s." msgstr "" -#: src/serverside.c:1924 +#: src/serverside.c:1919 msgid "You stand and take it." msgstr "" -#: src/serverside.c:1928 +#: src/serverside.c:1923 msgid "hits you, man!" msgstr "" -#: src/serverside.c:1931 +#: src/serverside.c:1926 msgid " You've been wasted! What a drag!" msgstr "" -#: src/serverside.c:1932 +#: src/serverside.c:1927 #, c-format msgid "You hit and killed %s" msgstr "" -#: src/serverside.c:1947 src/serverside.c:1980 +#: src/serverside.c:1942 src/serverside.c:1975 msgid ", and loot the body!" msgstr "" -#: src/serverside.c:1956 +#: src/serverside.c:1951 #, c-format msgid "^You lost a %s, man!" msgstr "" -#: src/serverside.c:1961 +#: src/serverside.c:1956 #, c-format msgid "You are paid a bounty of %s in reward for killing^one of %s's %s" msgstr "" -#: src/serverside.c:1969 +#: src/serverside.c:1964 #, c-format msgid "You killed one of %s's %s (%d left)" msgstr "" -#: src/serverside.c:1987 +#: src/serverside.c:1982 #, c-format msgid "You fire, and hit %s!" msgstr "" -#: src/serverside.c:2026 +#: src/serverside.c:2021 msgid "YN^Officer %%s spots you dropping %s, and chases you!" msgstr "" -#: src/serverside.c:2028 +#: src/serverside.c:2023 msgid "" "YN^Officer %%s and %%d of his deputies spot you dropping %s, and chase you!" msgstr "" -#: src/serverside.c:2183 +#: src/serverside.c:2178 msgid "Player removed due to idle timeout" msgstr "" -#: src/serverside.c:2193 +#: src/serverside.c:2188 msgid "Player removed due to connect timeout" msgstr "" -#: src/serverside.c:2199 src/serverside.c:2205 +#: src/serverside.c:2194 src/serverside.c:2200 #, c-format msgid "%s fails to return fire..." msgstr "" -#: src/message.c:433 +#: src/message.c:437 #, c-format msgid "" "This server is version %s, while your client is version %s.\n" t@@ -2520,27 +2510,27 @@ msgid "" "for the latest version." msgstr "" -#: src/message.c:572 +#: src/message.c:576 msgid "Could not find host" msgstr "" -#: src/message.c:573 +#: src/message.c:577 msgid "Could not create network socket" msgstr "" -#: src/message.c:574 src/message.c:607 +#: src/message.c:578 src/message.c:611 msgid "Connection refused or no server present" msgstr "" -#: src/message.c:753 +#: src/message.c:757 msgid "Cannot locate metaserver" msgstr "" -#: src/message.c:754 +#: src/message.c:758 msgid "Cannot create socket" msgstr "" -#: src/message.c:756 +#: src/message.c:760 msgid "Metaserver not running HTTP or connection denied" msgstr "" (DIR) diff --git a/src/message.c b/src/message.c t@@ -100,7 +100,11 @@ void SendClientMessage(Player *From,char AICode,char Code, if (!Network) { #endif if (From) ServerFrom=GetPlayerByName(GetPlayerName(From),FirstServer); - else ServerFrom=NULL; + else if (FirstServer) ServerFrom=(Player *)(FirstServer->data); + else { + ServerFrom=g_new(Player,1); + FirstServer=AddPlayer(0,ServerFrom,FirstServer); + } HandleServerMessage(text->str,ServerFrom); #if NETWORKING } else { (DIR) diff --git a/src/serverside.c b/src/serverside.c t@@ -187,219 +187,214 @@ void HandleServerPlayer(Player *Play) { } } -void HandleServerMessage(gchar *buf,Player *ReallyFrom) { -/* Given a message "buf" which identifies itself as being from player */ -/* "ReallyFrom" by the incoming socket, performs processing and sends */ -/* suitable replies. */ - Player *From,*To,*tmp,*pt; +void HandleServerMessage(gchar *buf,Player *Play) { +/* Given a message "buf", from player "Play", performs processing and */ +/* sends suitable replies. */ + Player *To,*tmp,*pt; GSList *list; char Code,*Data,AICode; + gchar *text; DopeEntry NewEntry; int i; price_t money; - if (ProcessMessage(buf,&From,&AICode,&Code,&To,&Data,FirstServer)==-1) { +/* Ignore client's From: field (bin it in tmp) - should always be "Play" */ + if (ProcessMessage(buf,&tmp,&AICode,&Code,&To,&Data,FirstServer)==-1) { g_warning("Bad message"); return; } - if (From!=ReallyFrom && (From!=&Noone || - (Code!=C_NAME && Code!=C_ABILITIES && Code!=C_NETMESSAGE))) { - g_warning(_("Message is lying about its origin\n%s: %c: %s: %s\n" - "Should be from %s"),From ? GetPlayerName(From) : "",Code, - To ? GetPlayerName(To) : "",Data, - ReallyFrom ? GetPlayerName(ReallyFrom) : "NULL"); - g_free(Data); - return; - } switch(Code) { case C_MSGTO: if (Network) { - g_message("%s->%s: %s",GetPlayerName(From),GetPlayerName(To),Data); + g_message("%s->%s: %s",GetPlayerName(Play),GetPlayerName(To),Data); } - SendServerMessage(From,AICode,Code,To,Data); + SendServerMessage(Play,AICode,Code,To,Data); break; case C_NETMESSAGE: g_message("Net:%s\n",Data); -/* shutdown(ReallyFrom->fd,SD_RECV);*/ +/* shutdown(Play->fd,SD_RECV);*/ /* Make sure they do actually disconnect, eventually! */ if (ConnectTimeout) { - ReallyFrom->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; + Play->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; } break; case C_ABILITIES: - ReceiveAbilities(ReallyFrom,Data); + ReceiveAbilities(Play,Data); break; case C_NAME: pt=GetPlayerByName(Data,FirstServer); - if (pt && pt!=From) { + if (pt && pt!=Play) { if (ConnectTimeout) { - ReallyFrom->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; + Play->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; } - SendServerMessage(NULL,C_NONE,C_NEWNAME,ReallyFrom,NULL); - } else if (((ReallyFrom && strlen(GetPlayerName(ReallyFrom))==0 && - Network) || (!Network && From==&Noone)) && Data[0]) { + SendServerMessage(NULL,C_NONE,C_NEWNAME,Play,NULL); + } else if (strlen(GetPlayerName(Play))==0 && Data[0]) { if (CountPlayers(FirstServer)<MaxClients || !Network) { - SendAbilities(ReallyFrom); - CombineAbilities(ReallyFrom); - SendInitialData(ReallyFrom); - SendMiscData(ReallyFrom); - if (!Network) { - From=g_new(Player,1); - FirstServer=AddPlayer(0,From,FirstServer); - } else From=ReallyFrom; - SetPlayerName(From,Data); + SendAbilities(Play); + CombineAbilities(Play); + SendInitialData(Play); + SendMiscData(Play); + SetPlayerName(Play,Data); for (list=FirstServer;list;list=g_slist_next(list)) { pt=(Player *)list->data; - if (pt!=From) { - SendServerMessage(NULL,C_NONE,C_LIST,From, + if (pt!=Play) { + SendServerMessage(NULL,C_NONE,C_LIST,Play, GetPlayerName(pt)); } } - SendServerMessage(NULL,C_NONE,C_ENDLIST,From,NULL); + SendServerMessage(NULL,C_NONE,C_ENDLIST,Play,NULL); RegisterWithMetaServer(TRUE,FALSE); - From->ConnectTimeout=0; + Play->ConnectTimeout=0; if (Network) { - g_message(_("%s joins the game!"),GetPlayerName(From)); + g_message(_("%s joins the game!"),GetPlayerName(Play)); } - BroadcastToClients(C_NONE,C_JOIN,GetPlayerName(From),NULL,From); - From->EventNum=E_ARRIVE; - SendPlayerData(From); - SendEvent(From); + BroadcastToClients(C_NONE,C_JOIN,GetPlayerName(Play),NULL,Play); + Play->EventNum=E_ARRIVE; + SendPlayerData(Play); + SendEvent(Play); } else { - From=ReallyFrom; g_message(_("MaxClients (%d) exceeded - dropping connection"), MaxClients); - sprintf(buf,_("Sorry, but this server has a limit of %d " -"%s, which has been reached.^Please try connecting again later."), - MaxClients,MaxClients==1 ? _("player") : _("players")); - SendServerMessage(NULL,C_NONE,C_PRINTMESSAGE,From,buf); -/* shutdown(From->fd,SD_RECV);*/ + if (MaxClients==1) { + text=g_strdup_printf( + _("Sorry, but this server has a limit of 1 " + "player, which has been reached.^" + "Please try connecting again later.")); + } else { + text=g_strdup_printf( + _("Sorry, but this server has a limit of %d " + "players, which has been reached.^" + "Please try connecting again later."),MaxClients); + } + SendServerMessage(NULL,C_NONE,C_PRINTMESSAGE,Play,text); + g_free(text); +/* shutdown(Play->fd,SD_RECV);*/ /* Make sure they do actually disconnect, eventually! */ if (ConnectTimeout) { - From->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; + Play->ConnectTimeout=time(NULL)+(time_t)ConnectTimeout; } } } else { - g_message(_("%s will now be known as %s"),GetPlayerName(From),Data); - BroadcastToClients(C_NONE,C_RENAME,Data,From,From); - SetPlayerName(From,Data); + g_message(_("%s will now be known as %s"),GetPlayerName(Play),Data); + BroadcastToClients(C_NONE,C_RENAME,Data,Play,Play); + SetPlayerName(Play,Data); } break; case C_WANTQUIT: - if (From->EventNum!=E_FINISH) FinishGame(From,NULL); + if (Play->EventNum!=E_FINISH) FinishGame(Play,NULL); break; case C_REQUESTJET: i=atoi(Data); - if (From->EventNum==E_ATTACK || From->EventNum==E_DEFEND || - From->EventNum==E_WAITATTACK || From->EventNum==E_FREEFORALL) { - BreakoffCombat(From,FALSE); + if (Play->EventNum==E_ATTACK || Play->EventNum==E_DEFEND || + Play->EventNum==E_WAITATTACK || Play->EventNum==E_FREEFORALL) { + BreakoffCombat(Play,FALSE); } - if (NumTurns>0 && From->Turn>=NumTurns && From->EventNum!=E_FINISH) { - FinishGame(From,_("Your dealing time is up...")); - } else if (i!=From->IsAt && (NumTurns==0 || From->Turn<NumTurns) && - From->EventNum==E_NONE && From->Health>0) { - From->IsAt=(char)i; - From->Turn++; - From->Debt=(price_t)((float)From->Debt*1.1); - From->Bank=(price_t)((float)From->Bank*1.05); - SendPlayerData(From); - From->EventNum=E_SUBWAY; - SendEvent(From); + if (NumTurns>0 && Play->Turn>=NumTurns && Play->EventNum!=E_FINISH) { + FinishGame(Play,_("Your dealing time is up...")); + } else if (i!=Play->IsAt && (NumTurns==0 || Play->Turn<NumTurns) && + Play->EventNum==E_NONE && Play->Health>0) { + Play->IsAt=(char)i; + Play->Turn++; + Play->Debt=(price_t)((float)Play->Debt*1.1); + Play->Bank=(price_t)((float)Play->Bank*1.05); + SendPlayerData(Play); + Play->EventNum=E_SUBWAY; + SendEvent(Play); } else { - g_warning(_("%s: DENIED jet to %s"),GetPlayerName(From), + g_warning(_("%s: DENIED jet to %s"),GetPlayerName(Play), Location[i].Name); } break; case C_REQUESTSCORE: - SendHighScores(From,FALSE,NULL); + SendHighScores(Play,FALSE,NULL); break; case C_CONTACTSPY: for (list=FirstServer;list;list=g_slist_next(list)) { tmp=(Player *)list->data; - if (tmp!=From && GetListEntry(&(tmp->SpyList),From)>=0) { - SendSpyReport(From,tmp); + if (tmp!=Play && GetListEntry(&(tmp->SpyList),Play)>=0) { + SendSpyReport(Play,tmp); } } break; case C_DEPOSIT: money=strtoprice(Data); - if (From->Bank+money >=0 && From->Cash-money >=0) { - From->Bank+=money; From->Cash-=money; - SendPlayerData(From); + if (Play->Bank+money >=0 && Play->Cash-money >=0) { + Play->Bank+=money; Play->Cash-=money; + SendPlayerData(Play); } break; case C_PAYLOAN: money=strtoprice(Data); - if (From->Debt-money >=0 && From->Cash-money >=0) { - From->Debt-=money; From->Cash-=money; - SendPlayerData(From); + if (Play->Debt-money >=0 && Play->Cash-money >=0) { + Play->Debt-=money; Play->Cash-=money; + SendPlayerData(Play); } break; case C_BUYOBJECT: - BuyObject(From,Data); + BuyObject(Play,Data); break; case C_FIGHTACT: - if (From->EventNum==E_ATTACK || From->EventNum==E_FREEFORALL) { - AttackPlayer(From,From->Attacked, - TotalGunsCarried(From)>0 ? AT_SHOOT : 0); - } else if (From->EventNum==E_DEFEND) { + if (Play->EventNum==E_ATTACK || Play->EventNum==E_FREEFORALL) { + AttackPlayer(Play,Play->Attacked, + TotalGunsCarried(Play)>0 ? AT_SHOOT : 0); + } else if (Play->EventNum==E_DEFEND) { for (list=FirstServer;list;list=g_slist_next(list)) { tmp=(Player *)list->data; if ((tmp->EventNum==E_FREEFORALL || tmp->EventNum==E_WAITATTACK) - && tmp->Attacked==From) { - AttackPlayer(From,tmp, - TotalGunsCarried(From)>0 ? AT_SHOOT : 0); + && tmp->Attacked==Play) { + AttackPlayer(Play,tmp, + TotalGunsCarried(Play)>0 ? AT_SHOOT : 0); } } } break; case C_ANSWER: - HandleAnswer(From,To,Data); + HandleAnswer(Play,To,Data); break; case C_DONE: - if (From->EventNum!=E_NONE && From->EventNum<E_OUTOFSYNC) { - From->EventNum++; SendEvent(From); + if (Play->EventNum!=E_NONE && Play->EventNum<E_OUTOFSYNC) { + Play->EventNum++; SendEvent(Play); } break; case C_SPYON: - if (From->Cash >= Prices.Spy) { - g_message(_("%s now spying on %s"),GetPlayerName(From), + if (Play->Cash >= Prices.Spy) { + g_message(_("%s now spying on %s"),GetPlayerName(Play), GetPlayerName(To)); - From->Cash -= Prices.Spy; - LoseBitch(From,NULL,NULL); - NewEntry.Play=From; NewEntry.Turns=-1; + Play->Cash -= Prices.Spy; + LoseBitch(Play,NULL,NULL); + NewEntry.Play=Play; NewEntry.Turns=-1; AddListEntry(&(To->SpyList),&NewEntry); - SendPlayerData(From); + SendPlayerData(Play); } else { - g_warning(_("%s spy on %s: DENIED"),GetPlayerName(From), + g_warning(_("%s spy on %s: DENIED"),GetPlayerName(Play), GetPlayerName(To)); } break; case C_TIPOFF: - if (From->Cash >= Prices.Tipoff) { - g_message(_("%s tipped off the cops to %s"),GetPlayerName(From), + if (Play->Cash >= Prices.Tipoff) { + g_message(_("%s tipped off the cops to %s"),GetPlayerName(Play), GetPlayerName(To)); - From->Cash -= Prices.Tipoff; - LoseBitch(From,NULL,NULL); - NewEntry.Play=From; NewEntry.Turns=0; + Play->Cash -= Prices.Tipoff; + LoseBitch(Play,NULL,NULL); + NewEntry.Play=Play; NewEntry.Turns=0; AddListEntry(&(To->TipList),&NewEntry); - SendPlayerData(From); + SendPlayerData(Play); } else { - g_warning(_("%s tipoff about %s: DENIED"),GetPlayerName(From), + g_warning(_("%s tipoff about %s: DENIED"),GetPlayerName(Play), GetPlayerName(To)); } break; case C_SACKBITCH: - LoseBitch(From,NULL,NULL); - SendPlayerData(From); + LoseBitch(Play,NULL,NULL); + SendPlayerData(Play); break; case C_MSG: - if (Network) g_message("%s: %s",GetPlayerName(From),Data); - BroadcastToClients(C_NONE,C_MSG,Data,From,From); + if (Network) g_message("%s: %s",GetPlayerName(Play),Data); + BroadcastToClients(C_NONE,C_MSG,Data,Play,Play); break; default: - g_warning("%s:%c:%s:%s",GetPlayerName(From),Code, + g_warning("%s:%c:%s:%s",GetPlayerName(Play),Code, GetPlayerName(To),Data); break; }