i need little help with changing this script a bit
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

i need little help with changing this script a bit

Started by Noclip, 20 January, 2004, 12:48:17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Noclip

Hello i need a bit help with changing this script  :D




ok its a spin the botlle bot ....but it hides the command that user writes on mainchat how it funtions is ok but.....and i want it to show like this .......


!stab
Noclip picks up the bottle and breaks it on [nick1]'s head


so basicly i want the users command to show to everyone in main :D


this is the current script:


--

-- [BottleBot] - v0.451

--

-- Spin the bottle!

-- Written by bonki 2003

--

-- ABOUT:

-- Just an average SPIN THE BOTTLE game =)

--

-- CREDITS/THANKS:

-- Manic_Depresiv_Santa (I've taken the sentences from his VB-version)

-- RabidWombat (thanks to you mate :))

--

-- USED FILES (don't forget to create the "scripts/txt" folder!!!):

-- txt/BottleBot.template.txt (optional!): template file where you can change the sentences :)

--

-- [nick1] / [nick2] will be replaced with the users' nicks

-- [num1] / [num2] -||- [nickx]'s "number"

--

-- AVAILABLE COMMANDS:

-- Type !bb.help for further details.

--

-- TODO:

-- any suggestions?

--

-- BUGS/LIMITATIONS:

-- o) reconnecting may cause a user to be removed from the list only

-- o) only user who connect after the bot will be added to the list

--

-- CHANGELOG:

-- v0.451: Bugfix: Interval now in seconds, not milliseconds

-- v0.45: Optimized: code rewritten module-alike :)

-- v0.4: Added: !spinrandom{start/stop}

-- v0.31: Bugfix: fixed add/remove user bug

-- v0.3: Bugfix: fixed several bugs

-- v0.25: Optimized: replaced table algorithm (thx RabidWombat :)

-- v0.2: Added: added template file support

--



iInterval = 30; -- seconds



-- You may change sBotName but PLEASE leave the rest as it is, thx :-)



bot = { sBotName = "BottleBot",

sBotVer = "v0.451",

sBotEmail = "bonki@no-spam.net",

sBotSpeed = "Sol",

sBotDescr = "BottleBot - v0.451 - written by bonki 2003",

iBotShare = 0 };



sCrLf = "rn";



sOpHelpOutput = sCrLf..sCrLf.."OP Commands:"..sCrLf..sCrLf;

sHelpOutput = sCrLf.."Commands:"..sCrLf..sCrLf;



sBotInfo = ""



sTemplateFile = "txt/"..bot.sBotName..".template.txt";



tUsers = {};

s = {};



function Main()

frmHub:RegBot(bot.sBotName);

UpdateBotInfo();

ReadTemplate();

randomseed(clock());



tCommands = {

[ "!bb.help" ] = { CmdShowHelp, 0, "Display this help message" },

[ "!bb.spin" ] = { CmdSpin, 0, "Spin the bottle!" },

[ "!bb.startrandom" ] = { CmdSpinRandomStart, 1, "Start random spinning!" },

[ "!bb.stoprandom" ] = { CmdSpinRandomStop, 1, "Stop random spinning!" },

};



for sCmd, tCmd in tCommands do

if(tCmd[2] == 1) then

sOpHelpOutput = sOpHelpOutput..sCmd.."t: "..tCmd[3]..sCrLf;

else

sHelpOutput = sHelpOutput..sCmd.."tt: "..tCmd[3]..sCrLf;

end

end

end



-------------------------------------------------------------------------------



function CmdSpin(curUser)

local sUserName1, iUserNum1 = nil;

local sUserName2, iUserNum2 = nil;



repeat

iUserNum2, sUserName2 = tGetRandomUser(tUsers);



if (iUserNum2 == -1) then

if (curUser) then

SendToAll(bot.sBotName, "There's nobody to play with :("); end;

return;

end;



if (curUser) then

iUserNum1 = tGetUserIndex(tUsers, curUser);

sUserName1 = curUser.sName;

else

iUserNum1, sUserName1 = tGetRandomUser(tUsers);

end;

until (sUserName1 ~= sUserName2);



local iRndNum = random(getn(s));

local sSentence = s[iRndNum];



if (strfind(sSentence, "%[nick1%]")) then sSentence = gsub(sSentence, "%[nick1%]", sUserName1); end;

if (strfind(sSentence, "%[nick2%]")) then sSentence = gsub(sSentence, "%[nick2%]", sUserName2); end;

if (strfind(sSentence, "%[num1%]")) then sSentence = gsub(sSentence, "%[num1%]", iUserNum1); end;

if (strfind(sSentence, "%[num2%]")) then sSentence = gsub(sSentence, "%[num2%]", iUserNum2); end;



SendToAll(bot.sBotName, sSentence);

end



-------------------------------------------------------------------------------



function CmdSpinRandomStart()

SetTimer(iInterval * 1000);

StartTimer();

SendToAll(bot.sBotName, "Random spinning started!");

end



-------------------------------------------------------------------------------



function CmdSpinRandomStop()

StopTimer();

SendToAll(bot.sBotName, "Random spinning stopped!");

end



function CmdShowHelp(curUser)

curUser:SendData(bot.sBotName, sOpHelpOutput..sHelpOutput);

end



-------------------------------------------------------------------------------



function OnTimer()

CmdSpin();

end



-------------------------------------------------------------------------------



function DataArrival(curUser, sData)

local _, _, cmd, args = strfind(sData, "%b<>%s+(%S+)%s*([^%|]*)%|$");



if(cmd == nil) then

return 0; end



cmd = strlower(cmd);

if (tCommands[cmd]) then

curUser:SendData(sData);

if (tCommands[cmd][2] == 0 or curUser.bOperator) then

tCommands[cmd][1](curUser, args);

else

curUser:SendData(bot.sBotName, "You do not have sufficient rights to run that command!");

end

return 1;

end

end



-------------------------------------------------------------------------------



function OpConnected(curUser)

curUser:SendData(sBotInfo);

tAddUser(tUsers, curUser);

end



-------------------------------------------------------------------------------



function OpDisconnected(curUser)

tRemoveUser(tUsers, curUser);

end



-------------------------------------------------------------------------------



function NewUserConnected(curUser)

curUser:SendData(sBotInfo);

tAddUser(tUsers, curUser);

end



-------------------------------------------------------------------------------



function UserDisconnected(curUser)

tRemoveUser(tUsers, curUser);

end



-------------------------------------------------------------------------------



function UpdateBotInfo()

sBotInfo = "$MyINFO $ALL "..bot.sBotName.." "..bot.sBotDescr.."$ $"..bot.sBotSpeed..strchar(1).."$"..bot.sBotEmail.."$"..bot.iBotShare.."$" ;

end



-------------------------------------------------------------------------------



function ReadTemplate()

local flTemplateFile = openfile(sTemplateFile, "r");



if (flTemplateFile) then

local line = read(flTemplateFile);

while (line) do

tinsert(s, 1, line);

line = read(flTemplateFile);

end

closefile(flTemplateFile);

else

s = {

"< * The bottle lands on [num2] and [num2] faints at the site of [nick1] * >",

"< * [nick1] tackle huggles [nick2] and faits from all the excitement * >",

"< * [nick2] is kissed passionately by [nick1] * >",

"< * [nick2] and [nick1] giggle and run towards the closet holding hands * >",

"< * [nick2] picks up the bottle and breaks it on [nick1]'s head * >",

"< * [nick2] picks up and throws [nick1] across the room * >",

"< * [nick2] doesn't want to be kissed so gives [nick1] a cactus in place * >",

"< * [nick2] runs home crying * >",

"< * [nick2] *kneels*. If you wish to kiss me you have to ask my parents, [nick1]. * >",

"< * [nick2] and [nick1] interlock eyes and run towards eachother while the cellos play * >",

"< * [nick2] gets restraining order against [nick1] * >",

"< * [nick2] and [nick1] sitting in a tree, K I S S I N G... * >",

"< * This is the spin that doesnt end, yes it goes on and on my friend, some people started spinning me without knowing where I'd land. Now I'll continue spinning forever just because... * >",

"< * [nick1] spins the bottle and it lands on [nick1]. [nick1] goes and hides in the closet * >",

"< * The bottle lands on [num2]. [num2] then looks at [nick1]. Then stares at the bottle again. Eventually [num2] chooses the bottle over [nick1]. And they all live happily ever after! * >";

};

end

end



-------------------------------------------------------------------------------



function tGetUserIndex(tTable, uUser)

local iFind = tBinarySearch(tTable, uUser.sName);



if(iFind ~= -1) then

return -1;

else

return iFind;

end

end



-------------------------------------------------------------------------------



function tGetRandomUser(tTable)

local n = getn(tTable);



if (n < 2) then

return -1, nil;

else

local iRnd = random(n);

return iRnd, tTable[iRnd];

end

end



-------------------------------------------------------------------------------



function tAddUser(tTable, uUser)

local iFind, iInsert = tBinarySearch(tTable, uUser.sName);



if(iFind == -1) then

tinsert(tTable, iInsert, uUser.sName);

return 1;

else

return 0;

end;

end



-------------------------------------------------------------------------------



function tRemoveUser(tTable, uUser)

local iFind = tBinarySearch(tTable, uUser.sName);



if(iFind ~= -1) then

tremove(tTable, iFind);

return 1;

else

return 0;

end;

end



-------------------------------------------------------------------------------



function tBinarySearch(tTable, SearchVar)

assert(tTable and SearchVar);



local iBot, iMid, iTop = 1, nil, getn(tTable);

local CompVal = nil;



if(getn(tTable) == 0) then

return -1, 1; end;



while(iBot <= iTop) do

iMid = floor((iTop + iBot) / 2);

CompVal = tTable[iMid];



if(CompVal == nil) then

return -1, -1; end;



if(SearchVar < CompVal) then

iTop = iMid - 1;

elseif(SearchVar > CompVal) then

iBot = iMid + 1;

else

return iMid, -1;

end

end



if(SearchVar > CompVal) then

iMid = iMid + 1; end;



return -1, iMid;

end






thx for advance  :D

SaintSinner

#1
change the return 1
which hides the command
to return 0                        
to show it
in this function

------------------------------------------------------------------------------- 



function DataArrival(curUser, sData) 

local _, _, cmd, args = strfind(sData, "%b<>%s+(%S+)%s*([^%|]*)%|$"); 



if(cmd == nil) then 

return 0; end 



cmd = strlower(cmd); 

if (tCommands[cmd]) then 

curUser:SendData(sData); 

if (tCommands[cmd][2] == 0 or curUser.bOperator) then 

tCommands[cmd][1](curUser, args); 

else 

curUser:SendData(bot.sBotName, "You do not have sufficient rights to run that command!"); 

end 

return 0;                                        --//<--//

end 

end 



-------------------------------------------------------------------------------
   


Noclip


SMF spam blocked by CleanTalk