 |
|
GxNapoleon
|
|
Stankarp is right, this damn bug killed Call to Power 2 in multiplay. MODMAKERS, maybe there are some of you out there who are able and willing to fix that bug so that we can play ctp2 multiplay again. Its so said that it is dead because its such a great game. SO COME ON AND FIX IT !
Napoleon, webmaster
http://www.guardiansclan.de
http://www.the-battlefield.com
|
|
|  |
 |
|
Peter Triggs
|
|
Gone Fishin, Canada
Jan 2000 time: 05:17
|
|
Hi, GxNapoleon
I've never played multiplayer so I don't really know how it works. I assume that everyone has to use the Host's files, otherwise it would just be impossible. So I've written some code that prevents the host - and hence everyone else, I hope, from rush buying anything. It's not a proper fix, but I don't know how to begin to deal with a situation where someone can do something when it's not their turn. I can't test this so I need you and one of your mates to try it out.
It's in the attached small .slc file. Put this file in ...\Call To Power 2\ctp2data\default\gamedata. In the same folder there's a file called script.slc. At the bottom of it add the line #include "MultiPlayerCheatWorkaround.slc" as follows:
code:
#include "feats.slc"
// #including scenario.slc here will pick up the empty scenario.slc in
// this directory, unless a scenario provides a file named scenario.slc in
// its own gamedata directory.
#include "scenario.slc"
#include "diplomacy.slc"
#include "MultiPlayerCheatWorkaround.slc"
Now you need to test it with one of your mates. Start a game with you as the host. (Don't get him to install the workaround.) See if he can cheat, if he can't it works and the next thing I have to do is to try to change it so that it only kicks in when you want to play multiplayer.
Keep your fingers crossed.
Peter
Attachment: multiplayercheatworkaround.slc
This has been downloaded 8 time(s).
|
|
|  |
 |
|
Peter Triggs
|
|
Gone Fishin, Canada
Jan 2000 time: 05:17
|
|
I forgot about that event. So what about :
code: HandleEvent(BuyFront) 'KillBug' pre {
int_t tmpPlayer;
tmpPlayer=city[0].owner;
if (g.player!=tmpPlayer) {
return STOP;
}
}
|
|
|  |
 |
|
Peter Triggs
|
|
Gone Fishin, Canada
Jan 2000 time: 05:17
|
|
I guess it's time to come out of the closet and admit I was born and raised in Canada. 5-2!!! We won the hockey gold medal for the first time since 1952!!!
IW - think Wembley 66
Locutus - think 74/78
Martin - I can't suggest anything to you: you guys win all the god damned time. (Except for Pedro's people)
I'll get back to this tomorrow when I've sobered up.
|
|
|  |
 |
|
stankarp
|
|
australia
Feb 2002 time: 05:17
|
|
I understand the rush buy bug only works during multiplayer and only if you execute during the other persons turn. Correct me if I am wrong.
However, eliminating rush buy altogether is not the complete solution. It will require an official patch of somekind and then separate lobbies to play it.
There was a lot of confusion in GL sometime back when people appeared in the rankings and we had never seen them playing. It was then realised that they were playing without the official Activision patch so they were in there own non patch lobbies.
|
|
|  |
 |
|
Locutus
|
|
ACS CTP1/2 Manager & Civ4 Co-Manager
|
 |
Hengelo, The Netherlands
Nov 1999 time: 06:17
|
|
Peter,
Euh... we lost in both '74 and '78, still a big trauma over here... (we should have won of course, it was the referee being against us that made us loose in both cases ). But I get your point, congrats on the victory 
Thanks Oerdin and stankarp, it seems I used the wrong description in making my code.
quote: Originally posted by Martin Gühmann
I did not know that you can remove an item from the build queque, afterwards you rush bought. But it is possible if you rush bought it from the empire screen and not from the build manager. Another odd behaviour is that the rush buy button on the global tab is disabled once the item just need one turn to be finished. The three other buttons are still enabled. |
I didn't know about any of this either, but found out soon enough when I started playing around with it.
quote: So far as I understood it you can in MP during the turn of your opponent press the button and the building will be complete immediately. And than you can rush buy the next item, without paying something for it. I was able to recreate this bug in SP once as I played with some code that makes the AI to build a happiness improvement, if the happiness drops under a certain level. For testing purpose I enabled the code for the human player, I rush bought something the turn before and the next item was than rush bought for free.
I think a possibility to recreate the bug in SP would be to write a handler that will prevent the AI from ending its turn, than a you will get a message that will allow you to finish the AI turn. So you should be able to do everthing during the AI's turn. |
Yes, that would seem like a very useful trick. But as stankarp pointed out, just creating a fix (which is easy enough, simply disabling rush-buy during the opponents turn does the trick, as posted above) isn't enough, you also have to somehow ensure that all players are actually using the code, that's a lot trickier...
|
|
|  |
 |
|  |
 |
|
MarkyMark
|
|
Sure you are right. Rushbuying can destroying a Game.
But a really good Player never use this!!!!!
And the Clan are a fair one, we are fair Player and we want fun. This is the Content for The Battlefield. Take a look you will like it.
When another men plays unreal (much buildings and much units) he will be disbanded from the Battlefield
Maybe we can make a rule to disband Wonders in League Games, this will be weaken the Rush buy trick but in Ladder its free for all .
Come enter and play with us:
http://ctp2.the-battlefield.com
Thank you MarkyMark
|
|
|  |
 |
|
MarkyMark
|
|
A Game has his rules and this rules are valued for all Players.
A good Player will win within this rules not outside this Rules. Then the Truth is:
When he wins Games outside this Rules, he lost really.....This is the truth, surely he can do he plays fair but he knows himself he havent won really. And our Rule is no using this Bug!!!!
And this is for everyman.
And Remember:
CTP2 is just a game not more with talk and fun. I like this, winning isn`t so important for me.
Greetings Mark.
|
|
|  |
 |
|
Martin Gühmann
|
 |
Berlin, Germany
Mar 2001 time: 06:17
|
|
quote: Originally posted by Locutus
Yes, that would seem like a very useful trick. But as stankarp pointed out, just creating a fix (which is easy enough, simply disabling rush-buy during the opponents turn does the trick, as posted above) isn't enough, you also have to somehow ensure that all players are actually using the code, that's a lot trickier... |
I think we can't seperate the players field without this fix and with the fix, so the only sollution would be a code that detects the number rush buy events and point out if this event occurs more than once in a single city during the opponents turns. So a slic spy function, that should also work if it is just on one computer installed. Yeah an alert box that pops up if someone rushed bought an item too much:
HUMAN_PLAYER_CHEATS "Sir, a most troubling developement has occured: {player[0].leader_name} has cheated by exploiting the infinite builds bug."
That should be a nice message espeacily if the cheater receives the message, too. 
-Martin
|
|
|  |
 |
|  |
 |
|
Peter Triggs
|
|
Gone Fishin, Canada
Jan 2000 time: 05:17
|
|
Well, I'm back in the land of the living.
Locutus, glad you got the point. I wasn't very clearheaded when I wrote that, didn't even get Pedrunn's name right.
This is looking good, but like you say it really needs to be tested in a multiplayer environment. Hopefully some multiplayer volunteers will come forward.
|
|
|  |
 |
|
Locutus
|
|
ACS CTP1/2 Manager & Civ4 Co-Manager
|
 |
Hengelo, The Netherlands
Nov 1999 time: 06:17
|
|
Peter,
Welcome back. I guess that was the flush of victory 
Child of Thor,
I very much appreciate the offer but it would help an awful lot if you had ICQ or something, then we could communicate the details before and during testing. I suppose email, forums and the in-game chat will do, but you'd have to agree in advance to be online and working on testing the code at the same time. However, the earliest I have time for this again is probably Sunday, so I'm afraid I'm gonna have to leave this to someone else to test. What needs to be tested AFAICS is the following:
1. A game without extra code, to try and recreate the bug and see it in action (only if any of the testers are SLICers without experience with the bug).
2. A game where only the host has the anti-cheat code, to see for which players rush-buying is prevented and if the warning message is displayed properly.
3. A game where a single non-host player has the code, to test the same things as with 2.
4. A game where all non-host players have the code, to test the same as with 2 (could be merged with 3).
5. A game where all non-host players have the code, to confirm that noone can exploit the bug.
The test probably need to be performed on the original game, to ensure differences in modifications don't affect the test results. The code that needs to be tested is the following:
in scenario.slc:
code: trigger 'TestMultiplayerPatch1' on "BuildEditorWindow.RushBuyButton" when (1) {
tmpPlayer=city[0].owner;
if (g.player!=tmpPlayer) {
return STOP;
}
}
trigger 'TestMultiplayerPatch12' on
"ControlPanelWindow.ControlPanel.ControlTabPanel.CityTab.TabPanel.RushBuyButton"
when (1) {
int_t tmpPlayer;
tmpPlayer=city[0].owner;
if (g.player!=tmpPlayer) {
return STOP;
}
}
trigger 'TestMultiplayerPatch13' on
"CityWindow.Globals.Tabs.QueueTab.TabPanel.RushBuyButton" when (1) {
tmpPlayer=city[0].owner;
if (g.player!=tmpPlayer) {
return STOP;
}
}
trigger 'TestMultiplayerPatch14' on
"CityStatusWin.TabGroup.Tab2.TabPanel.RushBuyButton" when (1) {
tmpPlayer=city[0].owner;
if (g.player!=tmpPlayer) {
return STOP;
}
}
HandleEvent(BuyFront) 'LOQ_KillRushBuyBug' post {
if (g.player != city[0].owner) {
player[0] = city[0].owner;
MessageAll('LOQ_KillRushBuyBug_M');
}
}
Alertbox 'LOQ_KillRushBuyBug_M' {
Text(ID_LOQ_KILL_RUSHBUY_BUG);
}
and in scen_str.txt:
LOQ_KILL_RUSHBUY_BUG "Sir, a most troubling developement has occured: {player[0].leader_name} has cheated by exploiting the infinite builds bug."
I hope I got all this right, it's already pretty late over here and I'm tired...
Last edited by Locutus on 28-02-2002 at 05:08
|
|
|  |
 |
|  |
All times are GMT. The time now is 05:17. Apolyton Time is 00:17. |
top of page
|
| archivepost |
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|