Arpajaiset
Osallistumalla killan arpajaisiin, voit voittaa rahaa ja samalla tuet kiltatraderin hankintaa! Arvonta on kerran viikossa maanantaisin n. klo 21.00.
Osallistuminen
- Laita pelissä kiltapankkiin rahaa jonka jälkeen nimesi ja rahasummasi lisätään Arpajaiset-sheettiin.
- Yksi arpa maksaa 500g ja arpoja voi ostaa niin monta kuin haluaa. Voit laittaa kerralla esim. 3000g.
- Voit myös erikseen lahjoittaa rahaa trader bideihin tai arpajaisiin osallistumatta itse arvontaan. (Ilmoita kiltajohdolle)
Miten kiltapankkiin laitetaan rahaa
- Mene minkä tahansa alueen pankkiin (pankkiiri-assistenttilla ei ole kiltapankkia)
- Avaa “Guild Bank”
- Varmista, että sinulla on oikean killan pankki auki (F-näppäimellä voit vaihtaa kiltaa)
- Valitse kiltapankin toinen tabi (Deposit)
- Paina R (Deposit Currency) ja kirjoita valitsemasi summa
- Paina E (Deposit)
Palkinnot
Summat määräytyvät kiltapankkiin laitettujen rahojen perusteella.
- sija 45%
- sija 25%
- sija 10%
- 20% kiltapankkiin traderin hankintaan varten
Kolmanteen sijaan scripti laskee kaikille osallistujille nimen mukaan yhden lipun, joten jokaisella on sama mahdollisuus voittaa. Yksi pelaaja voi voittaa vain yhden sijan.
Arpominen
- Sheetti antaa sinulle arpanumerot
- Arvonta suoritetaan maannataisin n. klo 21.00 killan Arpajaiset-sheetissä scriptillä joka arpoo voittajanumeron
Arpajaisten scripti
// Draws one ticket to pick one winner
function drawOneWinner() {
drawTicket('F8', 'F9');
}
// Draws tickets until three winners have been chosen
function drawThreeWinners() {
let winnerNames = [];
winnerNames.push(drawUntilNewWinner(winnerNames, 'F8', 'F9'));
winnerNames.push(drawUntilNewWinner(winnerNames, 'G8', 'G9'));
drawUntilNewWinner(winnerNames, 'H8', 'H9');
}
// Draws tickets until 2 winners have been chosen. Then draw a 3rd winner name ignoring ticket count.
function drawWinners() {
let winnerNames = [];
winnerNames.push(drawUntilNewWinner(winnerNames, 'F8', 'F9'));
winnerNames.push(drawUntilNewWinner(winnerNames, 'G8', 'G9'));
drawRandomName(winnerNames, 'H9');
}
function drawUntilNewWinner(winnerNames, winnerTicketCell, winnerNameCell) {
let winnerName = '';
while (!winnerName || isInArray(winnerNames, winnerName)) {
winnerName = drawTicket(winnerTicketCell, winnerNameCell);
}
return winnerName;
}
function drawTicket(winnerTicketCell, winnerNameCell) {
let sheet = SpreadsheetApp.getActiveSheet();
let data = sheet.getDataRange().getValues();
let tickets = 0;
for (let i = 1; i < data.length; i++) {
tickets += data[i][2];
}
let drawnTicket = Math.floor(Math.random() * tickets);
tickets = 0;
for (let i = 1; i < data.length; i++) {
tickets += data[i][2];
if (tickets > drawnTicket) {
let winnerName = data[i][0];
sheet.getRange(winnerNameCell).setValue(winnerName);
sheet.getRange(winnerTicketCell).setValue(drawnTicket + 1);
return winnerName;
}
}
}
function drawRandomName(ignoredNames, winnerNameCell) {
let sheet = SpreadsheetApp.getActiveSheet();
let data = sheet.getDataRange().getValues();
let names = [];
for (let i = 1; i < data.length; i++) {
let name = data[i][0];
if (name && !isInArray(names, name) && !isInArray(ignoredNames, name)) {
names.push(name);
}
}
if (!names.length) {
return '';
}
let winnerName = names[Math.floor(Math.random() * names.length)]
sheet.getRange(winnerNameCell).setValue(winnerName);
return winnerName;
}
function isInArray(array, object) {
return array.indexOf(object) + 1
}