Offline KI 3.6

Announcements and discussion regarding any projects related to Cyan Worlds' Plasma Engine including (but not limited to) CyanWorlds.com Engine, Drizzle, OfflineKI, PyPRP, and libHSPlasma.

Offline KI 3.6

Postby diafero » Sat Feb 26, 2011 11:09 am

The Offline KI brings the KI and other changes you are used to from UU and MOUL to your CC/TPOTS game. It allows you to reach fan ages and Cyan ages converted by Drizzle (from MOUL, Myst V or any of the other supported games): All of them are integrated into the existing environment. In addition, it lets you create and play marker missions and use flymode to inspect ages. It features a lot of KI commands useful while developing and debugging ages. On Alcugs Shards, it also fixes a lot of multiplayer issues.

Version 3.6 of my Offline KI is now available for download: See http://alcugs.almlys.org/Offline-KI for installation instructions and further information, and check your UAM for downloading it (DI-Shard already has it installed). As of this version, I also make the Python source code of the Offline KI available (see the wiki for download locations).
The further changes of this release are as follows:

- Added commands for camera tours (based on old AdminKI code): /tour, /tourstop, /printcam
- Added /getsparklies command to collect all the sparklies at once (for the lazy ones...)
- Added /rotsphere command to rotate the spheres in the MOUL version of Ahnonay without animation glitches (thanks to Sirius). This also works for non-admins, unlike the old /set sphere command!
- Added global Python scripts for fan-ages by D'Lanor: xDynamicPanel, xMoviePlayer, xAgeSDLBoolTagRespond, xRandomResp
- Auto-detect how Python File Mod initialization has to be done in some global scripts (so that it works for both dynamically an statically loaded pages)
- Auto-detect missing POTS patches and tell the user how to apply them if necessary
- remove useless, broken and obsolete <hiddentext> "feature" (thanks to Sirius)
- Fix for Kadish sparkly: it now moves with the pillar correctly (thanks to D'Lanor)

If you are an age writer and want to create a cover for your book or a linking picture for your age, please read the technical documentation for further information.

I hope you enjoy it, please let me know if there are any problems (though it is also always nice to hear things are working properly :) )
I prefer e-mails to "diafero arcor de" (after adding the at and the dot) over PMs.

"Many people's horizon is a circle with a radius of zero. They call it their point of view."

Deep Island Shard | Offline KI
diafero
Deep Island Admin
 
Posts: 2966
Joined: Mon May 05, 2008 5:50 am
Location: Germany

Re: Offline KI 3.6

Postby BahroFan » Tue Mar 01, 2011 11:39 am

Any reason why this release REMOVES support for /reltostars?
Image
I have freed only ONE Bahro.
User avatar
BahroFan
 
Posts: 26
Joined: Sun Apr 18, 2010 7:25 pm

Re: Offline KI 3.6

Postby Chacal » Tue Mar 01, 2011 10:41 pm

Looks more like a bug to me.
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2508
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: Offline KI 3.6

Postby diafero » Wed Mar 02, 2011 5:24 am

:oops: Oops, sorry for that... one seemingly can't test enough before a release. Next version will fix this.
I prefer e-mails to "diafero arcor de" (after adding the at and the dot) over PMs.

"Many people's horizon is a circle with a radius of zero. They call it their point of view."

Deep Island Shard | Offline KI
diafero
Deep Island Admin
 
Posts: 2966
Joined: Mon May 05, 2008 5:50 am
Location: Germany

Re: Offline KI 3.6

Postby Sirius » Wed Mar 02, 2011 5:57 am

I think I found a small error in xUserKIBase.py...
Original:
Code: Select all
    if (cmnd in ['reltostars', 'noreltostars']):
        age = PtGetAgeName()
        if (age != 'Personal'):
            ki.IDoErrorChatMessage('This can only be done in your Relto')
            return True
        for name in ['skyhigh', 'sunglow', 'sunround', 'cameraclouds']:
            object = PtFindSceneobject(name, age)
            object.netForce(1)
            if (cmnd == 'reltostars'):
                object.draw.disable()
            else:
                object.draw.enable()
        if (cmnd == 'reltostars'):
            PtConsoleNet('Graphics.Renderer.Fog.SetDefLinear 0 0 0', 1)
            PtConsoleNet('Graphics.Renderer.SetClearColor .5 .5 .5', 1)
            xUserKI.ApplyStruct('reltostars2')
            if (not (silent)):
                ki.IAddRTChat(None, 'Decorated your Relto with some stars', 0)
        else:
            PtConsoleNet('Graphics.Renderer.Fog.SetDefLinear 1 900 2', 1)
            PtConsoleNet('Graphics.Renderer.SetClearColor .4 .4 .5', 1)
            xUserKIAdmin.ApplyStruct('noreltostars')
            if (not (silent)):
                ki.IAddRTChat(None, 'Removed the stars from your Relto', 0)
        return True

New version:
Code: Select all
    if (cmnd in ['reltostars', 'noreltostars']):
        if (PtGetAgeName() != 'Personal'):
            ki.IDoErrorChatMessage('This can only be done in your Relto')
            return True
        for name in ['skyhigh', 'sunglow', 'sunround', 'cameraclouds']:
            object = PtFindSceneobject(name, age)
            object.netForce(1)
            if (cmnd == 'reltostars'):
                object.draw.disable()
            else:
                object.draw.enable()
        if (cmnd == 'reltostars'):
            PtConsoleNet('Graphics.Renderer.Fog.SetDefLinear 0 0 0', 1)
            PtConsoleNet('Graphics.Renderer.SetClearColor .5 .5 .5', 1)
            xUserKI.ApplyStruct('reltostars2')
            if (not (silent)):
                ki.IAddRTChat(None, 'Decorated your Relto with some stars', 0)
        else:
            PtConsoleNet('Graphics.Renderer.Fog.SetDefLinear 1 900 2', 1)
            PtConsoleNet('Graphics.Renderer.SetClearColor .4 .4 .5', 1)
            xUserKIAdmin.ApplyStruct('noreltostars')
            if (not (silent)):
                ki.IAddRTChat(None, 'Removed the stars from your Relto', 0)
        return True


The test to find if the player is in the Relto in the second line of the new version is different:
Code: Select all
if (PtGetAgeName() != 'Personal'):
In the original, the PtGetAgeName() was assigned to the 'age' variable:
Code: Select all
age = PtGetAgeName()
if (age != 'Personal'):

Ok, nothing that might be a problem here. It makes the script shorter. But:
Code: Select all
        for name in ['skyhigh', 'sunglow', 'sunround', 'cameraclouds']:
            object = PtFindSceneobject(name, age)
Here, every names in this list are assigned to the 'name' variable. Next line, the PtFindSceneObject() is assigned to the 'object' variable. This function uses the 'name' variable, and the 'age' variable. But this one no longer exists, so it might be the bug. The log says "local variable 'age' referenced before assignment" ; I guess this variable was used elsewhere ('call' and 'goto' it seems) and this is why it doesn't say "name 'age' is not defined".

Is that right ?
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Offline KI 3.6

Postby Chacal » Wed Mar 02, 2011 7:32 am

Godd job, Sherlock!
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2508
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: Offline KI 3.6

Postby diafero » Wed Mar 02, 2011 10:48 am

Yes, that was the issue, I already fixed it :) (installed on DI, will be in next release)
I prefer e-mails to "diafero arcor de" (after adding the at and the dot) over PMs.

"Many people's horizon is a circle with a radius of zero. They call it their point of view."

Deep Island Shard | Offline KI
diafero
Deep Island Admin
 
Posts: 2966
Joined: Mon May 05, 2008 5:50 am
Location: Germany

Re: Offline KI 3.6

Postby Inugami_Eishin » Wed Mar 09, 2011 3:33 am

Is it possible/recommended to use this tool for Online Play on DI?
From its name I thought it'd be an offline utility but it says "fixes a lot of multiplayer issues" on the post?
Inugami_Eishin
 
Posts: 18
Joined: Mon Mar 07, 2011 9:34 am

Re: Offline KI 3.6

Postby Egon » Wed Mar 09, 2011 3:51 am

Inugami_Eishin wrote:Is it possible/recommended to use this tool for Online Play on DI?
From its name I thought it'd be an offline utility but it says "fixes a lot of multiplayer issues" on the post?

Yes it is. Despite its name it is used in online play wherever server administrator install it.

diafero wrote:Version 3.6 of my Offline KI is now available for download: See http://alcugs.almlys.org/Offline-KI for installation instructions and further information, and check your UAM for downloading it (DI-Shard already has it installed).
Egon #2052375
Who You gonna call? Guild of Doorcallers! #5356672
Eder Tsogal/Delin Marathon
Image
User avatar
Egon
 
Posts: 284
Joined: Fri Nov 16, 2007 9:45 pm

Re: Offline KI 3.6

Postby kaelisebonrai » Wed Mar 09, 2011 3:52 am

Inugami_Eishin wrote:Is it possible/recommended to use this tool for Online Play on DI?
From its name I thought it'd be an offline utility but it says "fixes a lot of multiplayer issues" on the post?


You definitely shouldn't install it for DI, DI comes with this built in.

When playing on a shard, you should never install addons unless the shard admin explicitly says its ok.
User avatar
kaelisebonrai
 
Posts: 849
Joined: Sun Feb 03, 2008 3:27 am
Location: Perth, Western Australia

Next

Return to Plasma Development

Who is online

Users browsing this forum: No registered users and 0 guests