• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

How to do a fair contest on a server?

  • Thread starter Thread starter Deleted member 49793
  • Start date Start date
D

Deleted member 49793

Guest
So for the server I’m developing I would like to also give back a bit to the community, similar way that Dota 2 has (Not a dota 2 fan, but a fan of their system) where 50% of donations over a specific week, or two weeks, will be put into a prize pool to be given back to the community. My question though is… How is the best way to do this without players thinking it is colluded (cheated by staff).

For example… if it was a pvp event, I’ve heard of some servers giving players all the best items and buffing their skills say they win and they don’t have to pay anyone.

You guys got any ideas on ways around this? I want to eventually give back.. without players worrying about that.
 
Code:
local players = {}
function onThink(intraval)
for i, v in ipairs(getPlayersOnline()) do
local win_chance = math.random(1, 100)
if win_chance == 1 then
table.insert(players, getPlayerName(v))
end
end
local msg = ""
for i = 1, #players do
msg = msg..""..players[i]..", "
end
doBroadcastMessage(msg..". These players have won the giveaway!")
return true
end

Any player names that come up get the prize split between each of them.
 
Trivia Event?
Make questions about your server and then hold an event.
The questions could be like:
  • How much HP does a rotworm have?
  • What is the attack on a battle axe?
  • How much does NPC Bob sell a small mana potions for?
The questions would obviously be modified to fit your server but you get the point.
The first person to answer the question correctly wins.

I would say to make multiple ways though.
For example if you made it so the only contest is PvP then those who don't enjoy PvP won't be very happy.
It's just a good idea to have a varity of "contests" and then there could be a different one each week or however long you decide.
 
Trivia Event?
Make questions about your server and then hold an event.
The questions could be like:
  • How much HP does a rotworm have?
  • What is the attack on a battle axe?
  • How much does NPC Bob sell a small mana potions for?
The questions would obviously be modified to fit your server but you get the point.
The first person to answer the question correctly wins.

I would say to make multiple ways though.
For example if you made it so the only contest is PvP then those who don't enjoy PvP won't be very happy.
It's just a good idea to have a varity of "contests" and then there could be a different one each week or however long you decide.


But couldn't a player just say "OMFG Hoster gave donation to his staff" or somethin, ive seen other servers do giveaways and everyone assumes the hoster gave it to themself or another friend.

That's what I want to avoid... especially if im giving away 100+ euros.
 
But couldn't a player just say "OMFG Hoster gave donation to his staff" or somethin, ive seen other servers do giveaways and everyone assumes the hoster gave it to themself or another friend.

That's what I want to avoid... especially if im giving away 100+ euros.
It doesn't matter what system you come up, even if it's completely random and automated by a script, there will be someone who will claim otherwise. Best thing to do is come up with something fun that everyone can enjoy, and just ignore those who doubt it's legitimacy.
 
It doesn't matter what system you come up, even if it's completely random and automated by a script, there will be someone who will claim otherwise. Best thing to do is come up with something fun that everyone can enjoy, and just ignore those who doubt it's legitimacy.

Good call, Thanks :) Appreciate the feedback everyone, keep a lookout for ArchLight Online ;) <3
 
@Sir Knighter

It's possible to come up with a fair system.
Essentially you randomly predetermine a winning percent.
Hash that winning percent with a secret random salt.
The hash can and should be public at the start of the event.
The winning percentage and salt should be kept secret until the end of the event.
 
I made a event script you could use if you want. It gives players 10 numbers to write out. Who ever writes them first wins....

to use it !numbers start to start the event
!numbers 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 is what the players type.

the numbers can be any number 1 - 100

Code:
local storage = 41000
local rands = {
[1] = 41001,
[2] = 41002,
[3] = 41003,
[4] = 41004,
[5] = 41005,
[6] = 41006,
[7] = 41007,
[8] = 41008,
[9] = 41009,
[10] = 41010
}

function onSay(cid, words, param, channel)
if getPlayerAccess(cid) < 6 then
    doPlayerSendCancel(cid, "Cannot execute this talkaction.")
return true
end

if (param == "start") then
if getGlobalStorageValue(storage) < 1 then
setGlobalStorageValue(storage, 1)

local rand1 = math.random(1, 100)
local rand2 = math.random(1, 100)
local rand3 = math.random(1, 100)
local rand4 = math.random(1, 100)
local rand5 = math.random(1, 100)
local rand6 = math.random(1, 100)
local rand7 = math.random(1, 100)
local rand8 = math.random(1, 100)
local rand9 = math.random(1, 100)
local rand10 = math.random(1, 100)

setGlobalStorageValue(rands[1], rand1)
setGlobalStorageValue(rands[2], rand2)
setGlobalStorageValue(rands[3], rand3)
setGlobalStorageValue(rands[4], rand4)
setGlobalStorageValue(rands[5], rand5)
setGlobalStorageValue(rands[6], rand6)
setGlobalStorageValue(rands[7], rand7)
setGlobalStorageValue(rands[8], rand8)
setGlobalStorageValue(rands[9], rand9)
setGlobalStorageValue(rands[10], rand10)

for i, v in ipairs(getPlayersOnline()) do
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The first person to type the numbers wins. Type: !numbers 1, 2, 3, 4, 5, 6, 7, 8, 9, 10")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The numbers are: "..rand1..", "..rand2..", "..rand3..", "..rand4..", "..rand5..", "...rand6..", "..rand7..", "..rand8..", "..rand9..", "..rand10)
end
else
doPlayerSendCancel(cid, "The numbers event is already running.")
return true
end
end

t = string.explode(param, ",")
num1 = t[1]
num2 = t[2]
num3 = t[3]
num4 = t[4]
num5 = t[5]
num6 = t[6]
num7 = t[7]
num8 = t[8]
num9 = t[9]
num10 = t[10]

if getGlobalStorageValue(storage) == 1 then
if num1 == getGlobalStorageValue(rands[1]) then
    if num2 == getGlobalStorageValue(rands[2]) then
        if num3 == getGlobalStorageValue(rands[3]) then
            if num4 == getGlobalStorageValue(rands[4]) then
                if num5 == getGlobalStorageValue(rands[5]) then
                    if num6 == getGlobalStorageValue(rands[6]) then
                        if num7 == getGlobalStorageValue(rands[7]) then
                            if num8 == getGlobalStorageValue(rands[8]) then
                                if num9 == getGlobalStorageValue(rands[9]) then
                                    if num10 == getGlobalStorageValue(rands[10]) then
                                        setGlobalStorageValue(storage, 0)
                                        for i = 1, #rands do
                                            setGlobalStorageValue(rands[i], 0)
                                        end
                                        doBroadcastMessage("Player: "..getPlayerName(cid).." has typed all the number first!")
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    end
end
else
    doPlayerSendCancel(cid, "The numbers event is not running.")
return true
end
return true
end

In the end once they see that different people win each time they will realize its not set up
 
@up
This reminds me of the event "Fastfingers" except this is just numbers. :p

Though I feel like that event would be rather lame considering the stakes of the contest.
Putting a huge reward like that based on how fast someone can type doesn't seem very interesting. :oops:

I was thinking of holding a mini Olympics within the server hehe.
You would basically have a compilation of events, for example:
(please note the events suggested are just placeholders)
  • Football
  • Zombie
  • PvP
  • PvE
  • etc..
Having just 1 contest with 1 winner is not very fun.
But this way multiple players can win and it gives a variety of choices so if you dislike one event you can still choose from others.
Also if you win 1 event you can't participate on the rest until the next Olympics.
 
That kind of stuff would eb based on levels, internet speed, character speed, ect. It wouldn't be fair either.
 
Maybe chess compitition, or tic tac toe, ect.
 
Those would be based on your knowledge and experience in playing chess or any other game for that matter, don't see how that is any more fair.

Events that stick to the game itself (pvp, pve etc.) would fit best since you are playing tibia after all.
 
I disagree with you mich. The only thing my games pose a problem for is the age of each person. Lets say a 20 year old is playing a 10 year old....theres some problems. The thing is no matter what there will always be SOMETHING someone can point out. No one can say in a compitition like chess, ect. that you are cheating them. They have a fair cahnce to win. I see less problem with things like this....

Now its not fair to send a level 10 out against a level 500. Does it? Maybe he has a chance though. People can be pretty sneaky.
 
Plus depending on how many players his server has events like chess and stuff can take a while to finish and make the players have fun for the time being. Of course make spectator ability around the game so people can watch the tornaments. People can have their friends pming them giving there best guess on where to put there next move.

Seems way more logical for a "fair" system to me.

Just thinking about this tonight I made a script just for it. Two scripts control 3 games:
Tic_tac_toe, chess, and checkers.
 
p.s. Sir Knighter. Its funny that the day after I created my dungeon system for my server (naming one of the dungeon Arch Light) I see you can your post. The server name you are going to host called Arch Light. I hate when that happens. Now, I must change the name of my dungeon.
 
I disagree with you mich. The only thing my games pose a problem for is the age of each person. Lets say a 20 year old is playing a 10 year old....theres some problems. The thing is no matter what there will always be SOMETHING someone can point out. No one can say in a compitition like chess, ect. that you are cheating them. They have a fair cahnce to win. I see less problem with things like this....

Now its not fair to send a level 10 out against a level 500. Does it? Maybe he has a chance though. People can be pretty sneaky.

It's not fair to send a pro chess player against a first timer either, yet that is what can happen in your event. It's the same as sending a level 10 vs a level 100 in a pvp tournament, things like this wll never be balanced or fair.
 
I think pro chess players are harder to find then you are putting off...
 
p.s. Sir Knighter. Its funny that the day after I created my dungeon system for my server (naming one of the dungeon Arch Light) I see you can your post. The server name you are going to host called Arch Light. I hate when that happens. Now, I must change the name of my dungeon.
Sorry :P been the projected name since the start
 
Back
Top