Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-12-31, 18:45


krydianero

Samotny Wilk






Wiek: 33
Na forum: 4783 dni
Posty: 395
Nick w MP: Yoshida

Piwa: 1798

Respekt: 117,3
Respekt: 117,3

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.

setAccountData(getPlayerAccount(source),'char.id'id)

Pytanie brzmi jak sprawdzi? czy id wybrane przez math.random(1,9999)
nie jest przypisane ju? do jakiego? konta?
Bardzo prosi?bym o rzeczowy przyk?ad. Z g?ry dzi?kuj?.

Podpis

Multi Drive Unlimited:Nowy projekt już wkrótce

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-31, 19:32


Riot

3X






Wiek: 29
Na forum: 5729 dni
Posty: 1123
Nick w MP: Riot/3X

Piwa: 286

Respekt: 123
Respekt: 123

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? ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-31, 20:17


krydianero

Samotny Wilk






Wiek: 33
Na forum: 4783 dni
Posty: 395
Nick w MP: Yoshida

Piwa: 1798

Respekt: 117,3
Respekt: 117,3

Ok rozumiem a masz mo?e pomys? jak zrobi? co? takiego:

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

Podpis

Multi Drive Unlimited:Nowy projekt już wkrótce

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-31, 20:58


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

krydianero, Mo?esz te? zrobi? na Zmienne (local) i to by wygl?da?o tak :
 n 1
function zarejestuj ()
--kod
n 1
setAccountData(getPlayerAccount(source),'char.id'n)
end 


Co do twojego pytania :
aclGroupListObjects - pobiera wszystkie konta i obiekty w acl najpierw zr?b ?e do rejestrcji dodawa?o do grupy np. Cywile p?zniej t? funkcj? pobierasz konta
GetAccountData - pobieranie Daty z danego konta zr?b list? graczy na p?tle
id = ( id = id )

 
function pobieraniegraczy ()
listagraczy aclGroupListObjects(aclGetGroup("Cywile"))
     for idplayer in ipairs(listagraczy ) do
          if (player then 
             local poberzidgracza getAccountData(player "char.id")
          end
     end
end


function spawdznajwyszeid ()
id = ( poberzidgracza > poberzidgracza )
end

Nie wiem czy dobrze ci?gle si? ucze.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-31, 21:34


krydianero

Samotny Wilk






Wiek: 33
Na forum: 4783 dni
Posty: 395
Nick w MP: Yoshida

Piwa: 1798

Respekt: 117,3
Respekt: 117,3

Sprawdze 2 spos?b bo na zmiennych to bd si? resetowa?o przy restarcie skryptu.

Podpis

Multi Drive Unlimited:Nowy projekt już wkrótce

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-31, 21:53


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

krydianero, zrob ?e n local si? zmienia? function itp i masz ;D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-01, 12:07


Riot

3X






Wiek: 29
Na forum: 5729 dni
Posty: 1123
Nick w MP: Riot/3X

Piwa: 286

Respekt: 123
Respekt: 123

"krydianero" napisał/a:

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?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-01, 18:46


krydianero

Samotny Wilk






Wiek: 33
Na forum: 4783 dni
Posty: 395
Nick w MP: Yoshida

Piwa: 1798

Respekt: 117,3
Respekt: 117,3

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)


Podpis

Multi Drive Unlimited:Nowy projekt już wkrótce

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-01, 22:49


Jacob

Głupiomądry






Wiek: 28
Na forum: 5502 dni
Posty: 967
Nick w MP: Jacob

Piwa: 786

Respekt: 212,3
Respekt: 212,3Respekt: 212,3

Mo?esz te? u?y? funkcj? math.max. Ze wszystkich pobranych id znajdujesz najwi?ksz? i dodajesz do niej 1. Czyli np.:
local max math.max(pobraneid)
local noweid max 1


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-02, 15:56


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

Napewno skorzystam z waszych kod?w w moim projekcie kt?ry b?dzie mo?e wystawiony na forum.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-02, 18:38


krydianero

Samotny Wilk






Wiek: 33
Na forum: 4783 dni
Posty: 395
Nick w MP: Yoshida

Piwa: 1798

Respekt: 117,3
Respekt: 117,3

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.

Podpis

Multi Drive Unlimited:Nowy projekt już wkrótce

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-01-03, 21:39


Oski

LUA Scripter






Wiek: 30
Na forum: 5246 dni
Posty: 428
Nick w MP: Oski

Piwa: 56

Respekt: 75,1

Ja w swoim starym gamemode u?ywa?em: #getAccounts+1

Postaw piwo autorowi tego posta
 

 
Tagi: stałe :: postaci
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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
Dodaj temat do Ulubionych
Wersja do druku