Witam mam taki problem mam stworzony system postaci na accounDatach i chcia?bym aby ka?da posta? dosta?a swoje sta?e unikatowe id przypisywane setAccountData.
Je?li ju? tak bardzo chcesz bawi? si? na setAccountData - przypisz do tego ID np miesiac, dzien, minute i sekunde podczas kt?rej przypisujesz ID graczowi + dla bezpiecze?stwa liczb? z przedzia?u 0-99.
Dzi?ki temu mamy pewne unikatowe ID, bo:
jakie jest prawdopodobie?stwo stworzenia dw?ch kont o dok?adnie tym samym czasie (z dokladnoscia co do sekundy) i wylosowaniu tej samej cyfry?
pobra? wszystkie konta -> pobra? z ka?dego dat? id -> sprawdzi? kt?re id jest ostatnie (najwy?sze) ? Bo potem w funkcji doda?bym do tej warto?ci 1
S?dze ze funkcja getAccounts tutaj zdzia?a. Pobiera wszystkie zarejestrowane konta (jak je rejestrowa?e? za pomoc? addAccount ).
Nie jestem pewien, ale mo?e taki kod zadzia?a.
local najwiekszy = 0
local konta = getAccounts()
for i,v in pairs(konta) do
local get = getAccountData(v, "char.id")
if get > najwiekszy then
najwiekszy = get
end
end
outputChatBox("Najwieksze ID na serwerze to "..najwiekszy)
Powinno dzia?a?. Aczkolwiek dzi? jest por?bany dzie? i myli? si? mog?.
Riot, skorzystam z twojego sposobu, wszystkim dzi?kuje za nakierowanie mnie do rozwi?zania. Oczywi?cie lec? pifffka z lod?weczki.
[ Dodano: 2014-01-01, 19:16 ]
Poniewa? wci?? nie mam dost?pu do komputera prosi?bym o sprawdzenie kodu:
(lub poprostu do?wiadczonym okiem stwierdzi? czy zadzia?a czy nie)
--eventy--
addEvent('spostac',true)
----------
localid = 0
--Kod--
function createcharacter(player,imie,nazwisko,wiek)
if imie and nazwisko and wiek >=18 and wiek <= 100 then
local acc = getPlayerAccount(player)
local konta = getAccounts()
for i,v in pairs(konta) do
local getcharsid = getAccountData(v,'char,id')
if getcharsid > localid then
localid = getcharsid
noweid = localid + 1
end
end
setAccountData(acc,'char', active)
setAccountData(acc,'char.id',noweid)
setAccountData(acc,'char.name', imie)
setAccountData(acc,'char.nazwisko',nazwisko)
setAccountData(acc,'char.wiek',wiek)
outputServerLog('Utworzono postac: ' ..noweid.. ' ' ..imie.. ' ' ..nazwisko.. ' - ' ..wiek)
end
end
addCommandHandler('spostac',createcharacter)
addEventHandler('spostac',getRootElement(),createcharacter)
Luki mimo ?e nie mam nic przeciwko (bo ka?dy co? takiego se mo?e napisa?) nale?a?oby najpierw spyta? o u?ycie kodu (nie m?w? tylko tutaj) a nie pisa? o fakcie dokonanym.
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