PtokaX forum

Archive => Archived 5.0 boards => Finished Scripts => Topic started by: ??????Hawk?????? on 16 April, 2005, 01:25:49

Title: Jumble - LUA 5
Post by: ??????Hawk?????? on 16 April, 2005, 01:25:49
hi peeps

Re-posted here for Easy Finding.

This Game is Also one of the games included in my All-In-One bot   Xsthetic Netserver

Both the  CFG  and  the LUA file

Jumble.cfg  

-- JumbleFever
-- Author: RabidWombat
-- Converted to LUA 5 by ??????Hawk??????
--                  03/03/2005
-- This is the config file to set values.
-- Do so at your own risk.

sBotName = "JumbleFever";

sTranslator = "Your name here";
-- NOTE: this file is a lua file. JumbleFever calls dofile on it. So
-- you can do anything in here that you would want to occur in the
-- PtokaX Main event.

sJumbleWordsFile = "Jumble\\English.txt";
sJumbleScoresFile = "JumbleScores.txt";

sHintChar = "?"

iDisplayScores = 10; --  displays top 10 scores
-- iDisplayScores = nil; -- displays all scores

-- In seconds
iPauseTime = 10;
iHintTime = 60;
iGameEndTime = 120;
iBonusTimeLimit = 10;

-- FORMULA SYSTEM --
-- Scores and Hint are now formula strings that have variables:
-- iLength = length of phrase (minus spaces)
-- iBonusTime = bonus time remaining
-- additional math functions such as min, max, floor, etc can be used
-- If you're not a scripter, don't change this.
-- Cause I don't want to help 20 people with nil problems :-P

sScoreFormula = "6"; -- score equals 6
-- sScoreFormula = "$iLength"; -- score equals length of phrase
-- sScoreFormula = "2 * $iLength + 3" -- score equals length of phrase times 2 plus 3
-- sScoreFormula = "min($iLength - 5, 0) * 2 + 6"; -- score equals 6 plus 2 for every letter beyond 5
sBonusFormula = "$iBonusTime"; -- bonus score equals bonus time
sHintFormula = "math.floor(.4 * $iLength + .5)";

-- Command table.
-- Format: ["cmdname"] = { FunctionName, OperatorOnly, "Description"}

tCommands = {
[string.lower("a.start")] = { StartJumbleGame, 0, "Start the jumble game. Can be used with language selction (a.start language)"},
[string.lower("a.stop")] = { StopJumbleGame, 0, "Stop the jumble game."},
[string.lower("a.phrase")] = { DisplayJumblePhrase, 0, "Display the current jumble phrase."},
[string.lower("a.help")] = { DisplayJumbleHelp, 0, "Display this message."},
[string.lower("a.scores")] = { DisplayJumbleScores, 0, "Display current scores."},
[string.lower("a.myscore")] = { DisplayMyJumbleScore, 0, "Display your score."},
[string.lower("a.hint")] = { DisplayJumbleHint, 0, "Display the hint."},

[string.lower("a.join")] = { JoinJumble, 0, "Join the private jumble game."},
[string.lower("a.leave")] = { LeaveJumble, 0, "Leave the private jumble game."},

[string.lower("a.private")] = { SetPrivateJumbleGame, 1, "Set Jumble to be private."},
[string.lower("a.public")] = { SetPublicJumbleGame, 1, "Set Jumble to be public."},
}

-- This string table is dynamic. You define GLOBAL variables with $varname. To define "$"
-- user $$. All above values are considered globals. All others in this table have easy
-- names so I hope everyone understands without an explaination. Try to use common sense
-- when selecting global variables in a string. If you don't think it will be set at the
-- time the string is displayed, it probably isn't :-P

tStringTable = {
[1] = "\r\n$sBotName designed by: $sAuthor Email: $sEmail\r\n"..
"Play word jumble with your hub mates! Any text in the main chat is \r\n"..
"considered a guess for the jumble phrase. Here are the commands:\r\n",
[2] = "$sCmd\t- $sDesc\r\n",
[3] = "10 seconds left!!!",
[4] = "$sUserName recieves $iScore points and $iBonus time bonus. Rank $iRank/$iRankTotal (Score: $iUserScore)",
[5] = "$sUserName recieves $iScore points. Rank $iRank/$iRankTotal (Score: $iUserScore)",
[6] = "$sUserName has started a new $sBotName game!!!",
[7] = "Type \"$sJumbleHelp\" for help.",
[8] = "$sUserName has stopped the $sBotName game. :-(",
[9] = "The Jumble Phrase is: $sJumblePhrase", -- fix
[10] = "Rank: $iRank/$iRankTotal Score: $iUserScore",
[11] = "You don\'t have a score! Loser. :-)",
[12] = "$sUserName has joined the jumble game.",
[13] = "Hello $sUserName",
[14] = "$sUserName has left the jumble game.",
[15] = "The Jumble Phrase was: $sActualPhrase",
[16] = "Top $iDisplayScores $sBotName Players\r\n\r\n",
[17] = "All $sBotName Players\r\n\r\n",
[18] = "No Scores",
[19] = "$iPos) Name: $sUserName - Score: $iUserScore\r\n",
[20] = "Here\'s a hint: $sHint",
[21] = "The $sBotName has stopped automatically. :-("
};
Title:
Post by: ??????Hawk?????? on 16 April, 2005, 01:26:43
Jumble.lua_5.0.lua  
sAuthor = "RabidWombat";
sEmail = "cbarber@dwc.edu";
sConversion = " Converted to LUA 5 by ??????Hawk?????? 03/03/2005"
bGameRunning, bGamePaused = nil, nil;
sJumblePhrase, sActualPhrases, NoSpacePhrase = nil,nil,nil;
iLength, iBonusTime = 0, 0;
sScoreOutput, sHintOutput, sHelpOutput, sOpHelpOutput = nil, nil, nil, "";
iTimeCount, iGameNoReplyCount = 0, 0;
tScores, tScoresByName  = { n = 0 }, {};
tChannelUsers, iChannelCount = {}, nil;

-- PtokaX Events --

function Main()
dofile("jumble.cfg");

sScoreFormula = "return "..sScoreFormula;
sBonusFormula = "return "..sBonusFormula;
sHintFormula  = "return "..sHintFormula;

frmHub:RegBot(sBotName);

sHelpOutput = StrReplace(tStringTable[1]);

for cmd,tTemp in tCommands do
if(tTemp[1] == DisplayJumbleHelp) then
sJumbleHelp = cmd;
end

sCmd, sDesc = cmd, tTemp[3];

if(tTemp[2] == 0) then
sHelpOutput = sHelpOutput..StrReplace(tStringTable[2]);
else
sOpHelpOutput = sOpHelpOutput..StrReplace(tStringTable[2]);
end
end

OldSendToAll = SendToAll;
UserDisconnected = LeaveJumble;
OpDisconnected = LeaveJumble;

SetTimer(1000);

ReadScoresFromFile();
SetScores();
end

function OnTimer()
if(bGamePaused) then
iTimeCount = iTimeCount + 1;

if(iTimeCount >= iPauseTime) then
StartJumblePhrase();
end
elseif(bGameRunning) then
iTimeCount = iTimeCount + 1;

if(iTimeCount == iHintTime) then
SendToAll(sBotName, sHintOutput);
elseif (iTimeCount == iGameEndTime - 10) then
SendToAll(sBotName, StrReplace(tStringTable[3]));
elseif (iTimeCount == iGameEndTime) then
StopJumblePhrase();
if(iGameNoReplyCount >= 3) then
StopJumbleGame();
end
else

end
else

end
end



function ChatArrival(curUser, sData)
local s, e, sNewData, chat, cmd, args = string.find(sData, "(%b<>%s+((%S+)%s*([^%|]*)))%|$");
local s, e, sTo = string.find(sData, "^%$To: (%S+)");

if(cmd == nil or (sTo and sTo ~= sBotName)) then return 0; end

sUserName = curUser.sName;

if(sTo) then
curUser.SendData = curUser.SendPM;
end

cmd = string.lower(cmd);

if(tCommands[cmd] and (tCommands[cmd][2] == 0 or curUser.bOperator)) then
curUser:SendData(sData);
tCommands[cmd][1](curUser, args);
return 1;
else
if (not(iChannelCount) and string.sub(sData,1,1) == "<") then
iGameNoReplyCount = 0;
end

if(iChannelCount and string.find(sData, "$To: "..sBotName, 1, 1) == 1 and cmd == "!me") then
sNewData = "* "..sUserName..string.sub(chat, 4);
end

if(bGameRunning and bGamePaused == nil and string.find(string.upper(chat), sActualPhrase, 1, 1)) then
SendToAll(sNewData);

iBonusTime = math.max(iBonusTimeLimit - iTimeCount, 0);

iScore = assert(loadstring(StrReplace(sScoreFormula)))();
iBonus = assert(loadstring(StrReplace(sBonusFormula)))();

if(tScoresByName[sUserName]) then
tScoresByName[sUserName][2] = tScoresByName[sUserName][2] + iScore + iBonus;
else
tScoresByName[sUserName] = {sUserName, iScore + iBonus};
table.insert(tScores, tScoresByName[sUserName]);
end

iRank = SetScores(sUserName);
iRankTotal = table.getn(tScores);
iUserScore = tScoresByName[sUserName][2];

WriteScoresToFile();

StopJumblePhrase();

if(iBonusTime ~= 0) then
SendToAll(sBotName, StrReplace(tStringTable[4]));
else
SendToAll(sBotName, StrReplace(tStringTable[5]));
end

iGameNoReplyCount = 0;

return 1;
else
if(iChannelCount and string.find(sData, "^$To: "..sBotName, 1, 1) == 1) then
if(tChannelUsers[sUserName] == nil) then
JoinJumble(curUser);
else
SendToAll(sNewData);
iGameNoReplyCount = 0;
end

return 1;
end
end

end
end

-- Command Functions --

function StartJumbleGame(curUser, args)
if(bGameRunning) then return; end
if(args ~= "") then
HubGameActive = 2
local s, e, args = string.find(args, "([%w%s]+)$");
args = "Jumble\\"..args..".txt";
local f,e = io.open(args,"r")
if f then
sJumbleWordsFile = args;
f:close(f)
end
end
OldSendToAll(sBotName, StrReplace(tStringTable[6]));
StartJumblePhrase();
SendToAll(sBotName, StrReplace(tStringTable[7]));

iGameNoReplyCount = 0;
end

function StopJumbleGame(curUser)
if not(bGameRunning) then return; end

if not(bGamePaused) then
StopJumblePhrase();
end

if(curUser) then
OldSendToAll(sBotName, StrReplace(tStringTable[8]));
else
OldSendToAll(sBotName, StrReplace(tStringTable[21]));
-- TODO: fix numbers
end

bGameRunning, bGamePaused = nil, nil;
iBonusTime, iLength = 0, 0;
StopTimer();
end

function DisplayJumblePhrase(curUser)
if(bGameRunning and not bGamePaused) then
if(curUser == nil) then
SendToAll(sBotName, StrReplace(tStringTable[9]));
else
curUser:SendData(sBotName, StrReplace(tStringTable[9]));
end
end
end

function DisplayJumbleHelp(curUser)
if(curUser.bOperator) then
curUser:SendData(sBotName, sHelpOutput..sOpHelpOutput);
else
curUser:SendData(sBotName, sHelpOutput);
end
end

function DisplayJumbleScores(curUser)
curUser:SendData(sBotName, sScoresOutput);
end

function DisplayMyJumbleScore(curUser)
iRank = tScoresByName[curUser.sName][3];
iRankTotal = table.getn(tScores);
iUserScore = tScoresByName[sUserName][2];

if(tScoresByName[curUser.sName]) then
curUser:SendData(sBotName, StrReplace(tStringTable[10]));
else
curUser:SendData(sBotName, StrReplace(tStringTable[11]));
end
end

function DisplayJumbleHint(curUser)
if(iTimeCount >= iHintTime) then
curUser:SendData(sBotName, sHintOutput);
end
end

function JoinJumble(curUser)
if(iChannelCount and tChannelUsers[curUser.sName] == nil) then
SendToAll(sBotName, StrReplace(tStringTable[12]));

curUser:SendPM(sBotName, StrReplace(tStringTable[13]));
curUser.SendData = curUser.SendPM;

DisplayJumblePhrase(curUser);
DisplayJumbleHint(curUser);

tChannelUsers[curUser.sName] = 1;
iChannelCount = iChannelCount + 1;
end
end

function LeaveJumble(curUser)
if(iChannelCount and tChannelUsers[curUser.sName]) then
sUserName = curUser.sName;
SendToAll(sBotName, StrReplace(tStringTable[14]));

tChannelUsers[curUser.sName] = nil;
iChannelCount = iChannelCount - 1;

if(iChannelCount <= 0) then
iChannelCount = 0;
StopJumbleGame();
end
end
end

function SetPrivateJumbleGame(curUser)
if(iChannelCount == nil) then
SendToAll = SendToAllInChannel;
iChannelCount = 0;
end
end

function SetPublicJumbleGame(curUser)
if(iChannelCount) then
SendToAll = OldSendToAll;
tChannelUsers = {};
iChannelCount = nil;
end
end

-- Jumble Phrase Functions --

function JumbleString(str)
local tStr = { n = 0; };
local newString = "";

string.gsub(str, "(.)", function(c) table.insert(tStr, c); end);

math.randomseed(os.clock());

-- Fisher-Yates shuffle
for n = table.getn(tStr), 1, -1 do
local pos = math.random(n);
newString = tStr[pos].." "..newString;
tStr[pos] = tStr[n];
end

return newString;
end

function JumblePhrase(phr)
return string.sub(string.gsub(phr, "(%S+)", function (w) return JumbleString(w).."  "; end), 1, -2);
end

function StartJumblePhrase()
local hFile,Er = io.open(sJumbleWordsFile, "r");
if(hFile == nil) then
SendToAll(sBotName, "Error opening "..sJumbleWordsFile);
return;
end
local _, phr = nil, nil;
local iFileSize = hFile:seek("end")
math.randomseed(os.clock());
while(phr == nil) do
hFile:seek("set", math.random(iFileSize)-1);
  _, phr = hFile:read( "*l", "*l");
end
hFile:close();
sActualPhrase = string.upper(phr);
sNoSpacePhrase = string.gsub(sActualPhrase, "%s", "");
sJumblePhrase = JumblePhrase(sActualPhrase);
iLength = string.len(sNoSpacePhrase);

SetJumbleHint();

SendToAll(sBotName, StrReplace(tStringTable[9]));

iTimeCount = 0;
bGameRunning = 1;
bGamePaused = nil;
StopTimer(); StartTimer();
end

function StopJumblePhrase()
SendToAll(sBotName, StrReplace(tStringTable[15]));
sActualPhrase, sNoSpacePhrase, sJumblePhrase = nil, nil, nil;

iTimeCount = 0;
bGamePaused = 1;
iGameNoReplyCount = iGameNoReplyCount + 1;
end

-- String Functions --

function StrReplace(sString)
sString = string.gsub(sString, "%$(%w+)", function (w)
if(string.sub(w,1,1) == "$") then
return string.sub(w,2,-1);
else
return _G[w] or "nil";
end
end);

return sString;
end

-- Score Functions --

function SetScores(sName)
local iCount = table.getn(tScores);
iDisplayCount = iDisplayScores or iCount

if(iDisplayScores) then
sScoresOutput = StrReplace(tStringTable[16]);
else
sScoresOutput = StrReplace(tStringTable[17]);
end

if(iCount == 0) then
sScoresOutput = StrReplace(tStringTable[18]);
else
table.sort(tScores, function(a, b) return a[2] > b[2]; end);

for i = 1, iCount, 1 do
tScores[i][3] = i; -- set ranks for all users
end

for i = 1, math.min(iDisplayCount, iCount), 1 do
iPos = i;
sUserName = tScores[iPos][1];
iUserScore = tScores[iPos][2];
sScoresOutput = sScoresOutput..StrReplace(tStringTable[19]);
end
end

sUserName = sName;

if(sName) then
return tScoresByName[sName][3];
end
end

function ReadScoresFromFile()
dofile(sJumbleScoresFile);

for i = 1, table.getn(tScores), 1 do
tScoresByName[tScores[i][1]] = tScores[i];
end
end
function ToArrival(user, data)
ChatArrival(user, data)
end
function WriteScoresToFile()
local hFile,Er = io.open(sJumbleScoresFile, "w");
hFile:write("tScores = {\n");
for i = 1, table.getn(tScores), 1 do
hFile:write("["..i.."] = {"..string.format("%q", tScores[i][1])..","..tScores[i][2].."},\n");
end
hFile:write("n="..table.getn(tScores).."\n");
hFile:write("};");
hFile:close();
end

-- Hint Functions --

function SetJumbleHint()
local tRevealArray = { };

local iReveal = assert(loadstring(StrReplace(sHintFormula)))();

local iPos = nil;

while(iReveal > 0) do
repeat iPos = math.random(iLength); until tRevealArray[iPos] == nil

tRevealArray[iPos] = 1;
iReveal = iReveal - 1;
end

tRevealArray.iPos = 1;

sHint = string.gsub(sActualPhrase, "(%S)", function (c)
if (c == nil) then return ""; end

local out, tTemp = nil, tRevealArray;

if(tTemp[tTemp.iPos]) then
out = c;
else
out = sHintChar;
end

tTemp.iPos = tTemp.iPos + 1;

return out.." ";
end);
sHint = string.sub(sHint, 1, -2);

sHintOutput = StrReplace(tStringTable[20]);
end

-- Channel Functions --

function SendToAllInChannel(sSender, sRawOutput)
if(sSender) then
local _;

if(sRawOutput == nil) then
sRawOutput = sSender;
_, _, sSender = string.find(sRawOutput, "^%<(.-)%>");
else
sRawOutput = "<"..sSender.."> "..sRawOutput;
end

for nick, val in tChannelUsers do
if(nick ~= sSender) then
SendToNick(nick, "$To: "..nick.." From: "..sBotName.." $"..sRawOutput);
end
end
end
end




Have Fun Peeps


??????Hawk??????
Title:
Post by: Casanova82 on 16 April, 2005, 13:19:40
what kind of game is it?
Title:
Post by: ??????Hawk?????? on 16 April, 2005, 13:39:16
QuoteOriginally posted by Casanova82
what kind of game is it?


Anagram Game...

??????Hawk??????
Title:
Post by: Tw?sT?d-d?v on 17 April, 2005, 21:49:31
How can i add the command reset scores to this script?
Title:
Post by: MichaelD on 06 May, 2005, 07:32:59
Looks like a good script, but how do you play it?   ?(  :D

I don't know what the commands are.  lol
Title:
Post by: Tw?sT?d-d?v on 06 May, 2005, 10:37:15
hope this helps,
tCommands = {
[string.lower("a.start")] = { StartJumbleGame, 0, "Start the jumble game. Can be used with language selction (a.start language)"},
[string.lower("a.stop")] = { StopJumbleGame, 0, "Stop the jumble game."},
[string.lower("a.phrase")] = { DisplayJumblePhrase, 0, "Display the current jumble phrase."},
[string.lower("a.help")] = { DisplayJumbleHelp, 0, "Display this message."},
[string.lower("a.scores")] = { DisplayJumbleScores, 0, "Display current scores."},
[string.lower("a.myscore")] = { DisplayMyJumbleScore, 0, "Display your score."},
[string.lower("a.hint")] = { DisplayJumbleHint, 0, "Display the hint."},

[string.lower("a.join")] = { JoinJumble, 0, "Join the private jumble game."},
[string.lower("a.leave")] = { LeaveJumble, 0, "Leave the private jumble game."},

[string.lower("a.private")] = { SetPrivateJumbleGame, 1, "Set Jumble to be private."},
[string.lower("a.public")] = { SetPublicJumbleGame, 1, "Set Jumble to be public."},
}
Title:
Post by: dkt on 27 May, 2005, 13:20:51
Hey hawk nice script

I want a Autostart for jumble in 30 minutes and autostop if 3 jumble phrases unanswered and also i dont want hint option...
Also..if u do a.myscore and if u have not scored anything
it doesnt display anything..it should at least display the message " you have not scored yet ".

can anyone modify the script for me ?
Title:
Post by: ??????Hawk?????? on 27 May, 2005, 19:08:00
Use XN m8   :P  :P

see the anagram game
Title:
Post by: kunal on 31 May, 2005, 10:07:33
can u add right click cmds for this game
Title:
Post by: B@B? on 17 June, 2005, 13:10:23
@Hawk (or someone special  ;)  )

In [d@] config-file is written a line like this:

sJumbleWordsFile = "Jumble\\German.txt";

My question;

Can we script it so, that this line will be readed every
new start of the game and texted as info without
suffix above the following line:

[9] = "The Jumble Phrase is: $sJumblePhrase", -- fix


Example :

10 Seconds left!!!
The Jumble Phrase was: Blablabla
Theme: German
The Jumble-Phrase is: Blablabla
10 Seconds left!!!
The Jumble Phrase was: Blablabla
Theme: German
The Jumble-Phrase is: Blablabla

et cetera, et cetera, et cetera

If i stop the game and start a new one in english
(english.txt) it should read this one and shows it
like this:

10 Seconds left!!!
The Jumble Phrase was: Blablabla
Theme: English
The Jumble-Phrase is: Blablabla
10 Seconds left!!!
The Jumble Phrase was: Blablabla
Theme: English
The Jumble-Phrase is: Blablabla

et cetera, et cetera, et cetera

Is it the possi-billy-lili-ty?  :P

(And if it is possible, may YOU can tell me where  i must
paste wich  line to make it workable  like this...)
Title:
Post by: ??????Hawk?????? on 17 June, 2005, 16:30:25
hi there  ..  

Try this  add   the red line to the .CGF file.


[COLOR=red]sJumbleTheme = "German";[/COLOR]
sJumbleWordsFile = "Jumble\\German.txt";
 


And Use this line in Place of the Other:-
[9] = "Theme: $sJumbleTheme\r\nThe Jumble Phrase is: $sJumblePhrase", -- fix


??????Hawk??????
Title:
Post by: B@B? on 17 June, 2005, 21:31:28
WOW!

Works very fine now; THX a lot !  ;)
Title:
Post by: ??????Hawk?????? on 18 June, 2005, 01:54:02
y/w   ;)
Title:
Post by: B@B? on 18 June, 2005, 08:27:26
Sorry, must reply:

It doesn?t change the THEME to "english" if i type in main- a.start english...

It only shows the given "German" in cfg.file.

My wish is, that it changes to "English" if i change the txt-file... :rolleyes:

(But it has time. Will be back @ wednesday... ;) )
Title:
Post by: ??????Hawk?????? on 18 June, 2005, 13:59:40
HI m8  Try this

Replace this function in the Main Lua file

function StartJumbleGame(curUser, args)
if(bGameRunning) then return; end
if(args ~= "") then
HubGameActive = 2
local s, e, args = string.find(args, "([%w%s]+)$");
ssJumbleTheme = args;
args = "Jumble\\"..args..".txt";
local f,e = io.open(args,"r")
if f then
sJumbleTheme = ssJumbleTheme;
sJumbleWordsFile = args;
f:close(f)
end
end
OldSendToAll(sBotName, StrReplace(tStringTable[6]));
StartJumblePhrase();
SendToAll(sBotName, StrReplace(tStringTable[7]));

iGameNoReplyCount = 0;
end


??????Hawk??????
Title:
Post by: exlepra on 27 June, 2005, 12:08:21
Hi, how can I make private mode as default for the game?
Title: hide
Post by: ?Tr??T_???? on 11 August, 2005, 11:14:19
can someone do a function in this jumble.lua to enable reg bot on hub or not... :rolleyes:
Title:
Post by: ??????Hawk?????? on 11 August, 2005, 20:33:11
QuoteOriginally posted by ?Tr??T_????
can someone do a function in this jumble.lua to enable reg bot on hub or not... :rolleyes:

Please Elaborate......
Title:
Post by: ?Tr??T_???? on 11 August, 2005, 20:56:55
u right i tried and i did it...

is just to change:

frmHub:regBot(sBotName);

TO

frmHub:UnregBot(sBotName);

thnx for the help... ;)
Title:
Post by: Jelf on 12 August, 2005, 09:04:30
PMSL  ;(
Title:
Post by: MDFP on 03 October, 2005, 04:13:18
Hi ppl.
I have this script in portuguese.

Ask for it at


LXONLINE@PORTUGALMAIL.PT

______________________


Lxonline.no-ip.info
Title: Re: Jumble - LUA 5
Post by: Alexinno on 17 July, 2006, 20:22:03
Hi!
Hawk .. in a new version, can you add this function too ?
Playing Mode
1 = game is played in chat but questions only show for players, 2 = game is played in pm with players

like in the Trivia script by MadMan

-- Default startup mode of Trivia!
lngDefMode = 1 -- (0 = game is played in chat!, 1 = game is played in chat but questions only show for players, 2 = game is played in pm with players)
lngMode = 2

thx :)
Title: Re: Jumble - LUA 5
Post by: zinden on 30 September, 2006, 22:10:47
doesnt this script work as it should on "PtokaX DC Hub 0.3.5.1" with 5.0.2 lua?

As i cant start it or cant even get rightclick commands from it......

Anyone got any solution?