Arpajaiset

Kiltatraderien hankkiminen nykypäivänä on erittäin kallista joten aloitimme arpajaiset joista kilta ottaa 20% tradereihin. Nyt voit tukea traderin hankintaa, sekä samalla voittaa kultaa!

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 kiltapankkin laitetaan rahaa
  1. Mene minkä tahansa alueen pankkiin (pankkiiri-assistenttilla ei ole kiltapankkia)
  2. Avaa “Guild Bank”
  3. Varmista, että sinulla on oikean killan pankki auki (F-näppäimellä voit vaihtaa kiltaa)
  4. Valitse kiltapankin toinen tabi (Deposit)
  5. Paina R (Deposit Currency) ja kirjoita valitsemasi summa
  6. Paina E (Deposit)

Palkinnot

  1. sija 45%
  2. sija 25%
  3. sija 10%
  4. 20% kiltapankkiin traderin hankintaan varten

Kolmanteen sijaan scripti laskee kaikille osallistujille nimen mukaan yhden lipun, joten jokaisella on sama mahdollisuus voittaa. 1. ja 2. sijan voittajat eivät voi voittaa 3. sijaa

Arpominen

  • Sheetti antaa sinulle arpanumerot
  • Arvonta suoritetaan lauantaisin noin. klo 22.00 killan Arpajaiset-sheetissä scriptillä joka arpoo voittajanumeron
  • Jos nimeäsi ei ole listassa ennen arvontaa, ota yhteyttä Kiltajohtoon

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
}

Seuraa meitä

Yhteystiedot

admin(at)dragonborninc.fi