Ale je?li to ma przydziela? graczowi tymczasowe ID podczas np. logowania to mo?e si? zdarzy? tak, ?e kilku graczy b?dzie mia?o to samo ID.
W twoim przypadku przed zalogowaniem ka?dego gracza kto? inny musia?by robi? konto, wtedy by to dzia?a?o.
No chyba, ?e id chcesz przypisywa? na accountDat? "na sta?e" to wtedy przyk?ad 2 b?dzie najlepszym rozwi?zaniem.
Patrz te? na to, ?e masz za???my 100 kont i konto o ID 20 zostanie usuni?te. Teraz masz 99 kont, ostatnie ma ID 100. Jakie ID otrzyma nowe konto? 100. Dlaczego? Bo w tablicy masz 99 kont, a u Ciebie ID to #elementy + 1. Najlepszym sposobem b?dzie maksymalne ID + 1.
local function ZnajdzID()
local gracze=getAccounts()
local IDS=0
for i,v in ipairs(gracze) do
local ID = getAccountData( gracze, "Gracz-ID" )
if ID==IDS then IDS=IDS+1 end
if ID>IDS then return IDS end
end
return IDS
end
Najlepszym sposobem jest nadanie ID z bazy danych.
Nada? ID z bazy danych?
Pobiera konta z bazy danych w celu sprawdzenia ID, zapisuje nowe konto w bazie danych, wszystko to si? dzieje w?a?nie w bazie danych, tyle, ?e nie w?asnej, a wbudowanej. Co nie zmienia faktu, ?e baza danych to baza danych. Bo jak inaczej?
MySQL i autoinkrementacja by?aby najlepszym rozwi?zaniem. Je?li nie chcesz bawi? si? w MySQL (a warto) i zosta? przy wbudowanej bazie danych (potrafi si? sypa?) to spos?b maksymalne ID + 1 b?dzie najbezpieczniejszy, uwierz mi.
New_Banan, tylko je?eli zostanie usuni?te konto to automatycznie nadaje te same ID 2 osobom
W?a?nie nie. Je?li masz 3 konta {1,2,3}, konto o ID 2 lub o ID 1 zostanie usuni?te ({1,3} lub {2,3}) to i tak nast?pne konto b?dzie mia?o ID 4, poniewa? najwi?ksze ID to 3, a spos?b to maksymalne ID + 1 (3+1=4)
Natomiast je?li jest {1, 2, 3} i konto o ID 3 zostanie usuni?te (zostaje {1,2}) to najwi?ksze ID to 2, czyli nowe konto b?dzie mia?o ID 3, poniewa? konto z takim ID ju? nie istnieje i mo?na je ?mia?o przypisa? do nowego konta. (2+1=3)
ID jest nadawane jednorazowo, przy tworzeniu konta. Jesli masz inaczej - to nie ID.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach