Page 3 of 9

Re: [plugin] Dedimania

Posted: 14 Jan 2011, 11:04
by aseco
Yesterday, there has been a new release of ManiaLive, on this occasion I created a new package of the Dedimania plugin which includes the changes for the new ManiaLib location.

Download here:
http://files.manialive.com/plugins/Dedimania_r1828.zip
Or at the Manialink manialive:plugins

Re: [plugin] Dedimania

Posted: 10 Feb 2011, 09:07
by Xymph
Yesterday at least two servers using the "ManiaLive-179" version of this Dedimania plugin submitted records for multiple tracks with the wrong number of checkpoints. Those have been deleted, and while the version numbering is confusing I'm taking this 179 version to be obsolete, therefore it has been disabled on the Dedimania master server. Only the "ManiaLive-2028" version is still allowed, but that too will be disabled if it's found to repeatedly pollute the database with bogus entries.

Re: [plugin] Dedimania

Posted: 10 Feb 2011, 09:46
by Knutselmaaster
The version numbering has been changed.
The ManiaLive-179 is in fact the newest version.
You managed to crash all running manialives with the latest version in one mouseclick :lol:

Tip to all serveradmins that come here asking why their ManiaLives have suddenly stopped and won't restart;
Disable the dedi plugin in your config.ini, until this problem has been solved.

Re: [plugin] Dedimania

Posted: 10 Feb 2011, 14:46
by corto-72
Correct me if I am wrong, but I don't believe there are any sanity checks to the score/CP times submited (as it exists on current dedi server managers)... I believe this should be part of the main code, not a specific plugin

Re: [plugin] Dedimania

Posted: 10 Feb 2011, 21:01
by Xymph
Knutselmaaster wrote:The version numbering has been changed.
The ManiaLive-179 is in fact the newest version.
That wasn't clear from this thread, nor the ManiaLive website (which doesn't seem to list these optional plugins at all). If they're hosted on that site, there should be a webpage listing the current versions (not a Manialink, I don't have TMF running all the time).
Knutselmaaster wrote:You managed to crash all running manialives with the latest version in one mouseclick
MySQL statement, actually. :lol:

Ok, I've disabled "ManiaLive-2028" and (hesistantly) re-enabled "ManiaLive-179". But if it keeps polluting the database it gets disabled again, and someone will have to release a non-broken version.

Re: [plugin] Dedimania

Posted: 10 Feb 2011, 21:38
by aseco
Xymph wrote:
Knutselmaaster wrote:The version numbering has been changed.
The ManiaLive-179 is in fact the newest version.
That wasn't clear from this thread, nor the ManiaLive website (which doesn't seem to list these optional plugins at all). If they're hosted on that site, there should be a webpage listing the current versions (not a Manialink, I don't have TMF running all the time).
Knutselmaaster wrote:You managed to crash all running manialives with the latest version in one mouseclick
MySQL statement, actually. :lol:

Ok, I've disabled "ManiaLive-2028" and (hesistantly) re-enabled "ManiaLive-179". But if it keeps polluting the database it gets disabled again, and someone will have to release a non-broken version.
Ok, thanks for changing the version number and sorry for late response on that topic.
I implemented the sanity checks today, though I need to finish a new ManiaLive version to be able to release the Dedimania plugin because it's linked to some just implemented features.
This will hopefully happen before otherwise on monday.
For now I've done a checkpoint comparison: record to dedimania value if totalRaces > 0.
And furthermore a check on all times, if they are increasing and last checkpoint must be equal to finish time.
Is there anything else I can check?

Re: [plugin] Dedimania

Posted: 11 Feb 2011, 00:19
by Xymph
aseco wrote:For now I've done a checkpoint comparison: record to dedimania value if totalRaces > 0.
Not sure what you mean by that.
aseco wrote:And furthermore a check on all times, if they are increasing and last checkpoint must be equal to finish time.
Good.
aseco wrote:Is there anything else I can check?
XAseco also checks that CheckpointIndex-es in PlayerCheckpoint callbacks are consecutive, and CheckpointIndex >= 0 && TimeOrScore > 0, but that was only abused in the earliest cheats and is probably irrelevant now.

The most important thing for Dedimania is that in TA and Laps modes, the submitted number of checkpoints matches NbCheckpoints (from BeginChallenge/BeginRace or GetCurrentChallengeInfo), and in Rounds/Cup/Team modes it matches NbCheckpoints * NbLaps.

Also, RoundForcedLaps != 0 is not allowed, and Laps mode should submit the single best lap, not all laps together.

Re: [plugin] Dedimania

Posted: 12 Feb 2011, 10:22
by weerwolf
Flo, i came upon something i think is not right.
In /logs/Dedimania_log_XmlRpc.txt

Code: Select all

REQUEST:
<?xml version="1.0" encoding="utf-8" ?><methodCall><methodName>system.multicall</methodName><params><param><value><struct>
	<member><name>methodName</name><value><string>dedimania.CurrentChallenge</string></value></member>
	<member><name>params</name><value><array><data>
	<value><string>7iF8NhXKxfxGGs7F8HoNCN5Q9dl</string></value>
	<value><string>$f00Boston-$fffBlockade-$f00no.2</string></value>
	<value><string>Stadium</string></value>
	<value><string>poisinivy</string></value>
	<value><string>TMF</string></value>
	<value><int>1</int></value>
	<value><struct>
	<member><name>SrvName</name><value><string>FreeZone $000[$f00LYNX$000]$09fFastlanes</string></value></member>
	<member><name>Comment</name><value><string>$fc3$w MANIA$09fLIVE $000r2028</string></value></member>
	<member><name>Private</name><value><boolean>0</boolean></value></member>
	<member><name>SrvIP</name><value><string>127.0.0.1</string></value></member>
	<member><name>SrvPort</name><value><int>3000</int></value></member>
	<member><name>XmlrpcPort</name><value><int>5001</int></value></member>
	<member><name>NumPlayers</name><value><int>2</int></value></member>
	<member><name>MaxPlayers</name><value><int>40</int></value></member>
	<member><name>NumSpecs</name><value><int>0</int></value></member>
	<member><name>MaxSpecs</name><value><int>16</int></value></member>
	<member><name>LadderMode</name><value><int>1</int></value></member>
</struct></value>
Server IP is stated as 127.0.0.1 , but is maybay correct because its localhost, but...
XmlrpcPort is not correct, i think it uses standard known port, but its not theportnumber for my server.
The rest of the data is fine.

Re: [plugin] Dedimania

Posted: 12 Feb 2011, 10:29
by w1lla
weerwolf:

Go to libraries\ManiaLivePlugins\Standard\Dedimania and open up Dedimania.php.

look for this:

Code: Select all

protected function getServerInfoArray()
	{
		return array
		(
			'SrvName' => $this->storage->server->name,
			'Comment' => $this->storage->server->comment,
			'Private' => isset($this->server->password),
			'SrvIP' => '127.0.0.1',
			'SrvPort' => 3000,
			'XmlrpcPort' => 5001,
			'NumPlayers' => count($this->storage->players),
			'MaxPlayers' => $this->storage->server->currentMaxPlayers,
			'NumSpecs' => count($this->storage->spectators),
			'MaxSpecs' => $this->storage->server->currentMaxSpectators,
			'LadderMode' => $this->storage->server->currentLadderMode
		);
	}

Code: Select all

$			'SrvIP' => '127.0.0.1',
			'SrvPort' => 3000,
			'XmlrpcPort' => 5001,
Those are standard and aren't edited by every new challenge by the server controller.

Just a heads up.

Re: [plugin] Dedimania

Posted: 12 Feb 2011, 20:59
by Slig
w1lla wrote: 'SrvIP' => '127.0.0.1',
'SrvPort' => 3000,
'XmlrpcPort' => 5001,
Indeed, it would be nicer to have them filled with the real values from the GetSystemInfo dedicated method...