Martyz Posted January 1, 2011 Share Posted January 1, 2011 Hi, i want to make a lotto command for ex.: /roll And how can I get is entered text in command is numbers or letters? Link to comment
Aibo Posted January 1, 2011 Share Posted January 1, 2011 amount = tonumber(amount) if amount then -- ok else -- not ok end Link to comment
Martyz Posted January 1, 2011 Author Share Posted January 1, 2011 will try this out, thanks. Link to comment
Martyz Posted January 1, 2011 Author Share Posted January 1, 2011 (edited) Sorry for double posting. I've got this error: [2011-01-01 22:35:27] start: Requested by Console [2011-01-01 22:35:27] Starting race_martyz [2011-01-01 22:35:27] SCRIPT ERROR: race_martyz\commands.lua:37: 'end' expected (to close 'function' at line near 'else' [2011-01-01 22:35:27] WARNING: Loading script failed: race_martyz\commands.lua:37: 'end' expected (to close 'function' at line near 'else' [2011-01-01 22:35:27] start: Resource 'race_martyz' started code: function lotto_roll(player, amount) if tonumber(amount) then if(amount < 100) then outputChatBox("Minimum roll amount is 100$!", player, 255, 100, 0, false) return end if(amount > 1000) then outputChatBox("Maximum roll amount is 1000$!", player, 255, 100, 0, false) return end if(amount > getPlayerMoney(player)) then outputChatBox("You have less money than you entered!", player, 255, 100, 0, false) return end local rroll = math.random(0, 2) if(rroll == 0) then outputChatBox("You've spinned for " ..amount.. "$ and lost!", 255, 255, 0, false) takePlayerMoney(player, amount) end if(rroll == 0) then outputChatBox("You've spinned for " ..amount.. "$ and lost!", 255, 255, 0, false) takePlayerMoney(player, amount) end if(rroll == 1) then outputChatBox("You've spinned for " ..amount.. "$ and WON!", 255, 255, 0, false) givePlayerMoney(player, amount) end end else outputChatBox("It must be number!", player, 255, 100, 0, false) end end addCommandHandler("roll", lotto_roll) Edited January 1, 2011 by Guest Link to comment
Aibo Posted January 1, 2011 Share Posted January 1, 2011 i've added indentation to your code, try to find your mistake yourself. Link to comment
Martyz Posted January 1, 2011 Author Share Posted January 1, 2011 dude, I am scripting lua 3 days so no idea where is the problem and i can't see any indentation O_o Link to comment
Aibo Posted January 1, 2011 Share Posted January 1, 2011 line 28: you have extra «end» before «else». Link to comment
Martyz Posted January 1, 2011 Author Share Posted January 1, 2011 Now, whatever I am writing in /roll, it says "It must be number!"... Link to comment
Aibo Posted January 1, 2011 Share Posted January 1, 2011 because 2nd argument in (server) command handler function is command name, which is a string. third (and the rest) are arguments. function lotto_roll(player, command, amount) Link to comment
Martyz Posted January 1, 2011 Author Share Posted January 1, 2011 now if i write /roll , its okay, it shows "It must be number!", but when i type /roll , just no effect Link to comment
Aibo Posted January 1, 2011 Share Posted January 1, 2011 maybe you have something missing, for example: a check if rroll is 2. and read about if/elseif in lua wiki, you dont have to «if then return» every time. Link to comment
Martyz Posted January 2, 2011 Author Share Posted January 2, 2011 I know how to use else if from PAWN, just didn't think about it in lua ^^ I will try changing something to elseif and will write what's the result. EDIT: Problem were not in elseif, but I fixed it by my own, anyway thank you very much for helping. Link to comment
Callum Posted January 2, 2011 Share Posted January 2, 2011 amount = tonumber(amount) if amount and type(amount) == "number" then -- ok else -- not ok end Link to comment
Aibo Posted January 2, 2011 Share Posted January 2, 2011 amount = tonumber(amount) if amount and type(amount) == "number" then -- ok else -- not ok end tonumber() returns either number or nil, so i dont think type(amount) == "number" is necessary. unless i'm wrong ofc :3 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now