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

Wysłany: 2016-11-15, 22:27


=DC=







Wiek: 35
Na forum: 3944 dni
Posty: 223
Nick w MP: =DC=

Piwa: 72

Respekt: 150
Respekt: 150Respekt: 150

Witam mam problem z moim kodem po stronie servera mianowicie:
- losuj? sobie pozycj? dla kilku marker?w i je tworz? (z tabeli)
- po wej?ciu w byle kt?ry znika ten co w?a?nie weszli?my
- losuje si? nowa pozycja dla kolejnego markera i go tworzy

Ca?y problem problem tkwi w tym, ?e jak jeden marker na mapie ma pozycje x,y,z to przy losowaniu potrafi wylosowa? te same x,y,z co ju? s? u?ywane przez jaki? marker. Jak zapobiec ?eby w razie wylosowania u?ywanych koord?w losowanie si? powtarza?o na nowo tak d?ugo a? znajdzie wolne koordy?



Za pomoc stawiam :piwo:

Podpis

Witaj
, jeśli Ci pomogłem postaw mi :piwo: lub R* Dzięki!

Ostatnio zmieniony przez =DC= 2016-11-17, 19:22, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-11-16, 11:00


PapaSmerf







Wiek: 25
Na forum: 3525 dni
Posty: 237

Piwa: 3857

Respekt: 64

Spr?buj tak aby po nadaniu nowego markera, dawa?o ci elementDate wylosowany, czy cos.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-11-16, 17:00


=DC=







Wiek: 35
Na forum: 3944 dni
Posty: 223
Nick w MP: =DC=

Piwa: 72

Respekt: 150
Respekt: 150Respekt: 150

Ma kto? jeszcze jakie? inne pomys?y?

Podpis

Witaj
, jeśli Ci pomogłem postaw mi :piwo: lub R* Dzięki!

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-11-16, 17:46


Pawel5321

Szkrypter






Wiek: 36
Na forum: 3809 dni
Posty: 237
Nick w MP: Pawell

Piwa: 2315

Respekt: 240
Respekt: 240Respekt: 240



local lokalizacje = {
{-1370.31042, -676.3958714.14844},
{-2155.68921, -404.1140748.03288},
{-1485.97937117.6125318.50557},
{-1000.75513453.0451014.14844}
}
local obecna={}




function isMarkerOnMap(x,y,z)
    if and and z then
                if x==obecna[1] and y==obecna[2] and z-1==obecna[3then
                    return true
                else
                    return false
                end
    end
end




function createMarkera()
    local pos lokalizacje[math.random(1,#lokalizacje)]
    local x,y,pos[1], pos[2], pos[3]
    if isMarkerOnMap(x,y,zthen
        createMarkera()
    else
        local marker createMarker x,y,z-"cylinder"1.725500127getRootElement() )
        obecna[1]=x
        obecna[2]=y
        obecna[3]=z-1
        outputChatBox(x.." "..y.." "..z)
    end
end
createMarkera()

addEventHandler("onMarkerHit"resourceRoot, function(hitEl)
    if getElementType(hitEl) == "player" then
        if isPedInVehicle hitEl then outputChatBox("Najpierw wyjd? z pojazdu!"hitEl255,125,0) return end
        givePlayerMoney(hitEl2000)
        destroyElement(source)
        
        createMarkera()
    end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-11-16, 18:22


=DC=







Wiek: 35
Na forum: 3944 dni
Posty: 223
Nick w MP: =DC=

Piwa: 72

Respekt: 150
Respekt: 150Respekt: 150

Pawel5321, w tym kodzie co poda?e? to sprawdzi mi tylko przy tworzeniu nowego markera czy wylosowana pozycja nie jest ju? na mapie ale dalej nie zapobiega klonowaniu bo przyk?adowo marker?w moze byc utworzonych 5 na raz (albo wi?cej) a sprawdzam tylko ostatni.


Mo?e opisz? troch? dok?adniej o co mi chodzi
przy starcie skryptu tworz? 5 marker?w
jak wejd? w jeden z nich to on znika ( 4 dalej stoj? ) i tworzy nowego randomowego markera (czyli mam znowu 5 marker?w ) lecz w spos?b taki ze nie stworzy mi tego brakuj?cego markera (pi?tego) na pozycji tych pozosta?ych 4 marker?w kt?re ca?y czas sta?y na mapie.

Podpis

Witaj
, jeśli Ci pomogłem postaw mi :piwo: lub R* Dzięki!

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-11-16, 22:04


mtm

</3






Wiek: 26
Na forum: 3715 dni
Posty: 181

Piwa: 252

Respekt: 70

Zr?b na pa??.
Stw?rz now? pust? tablic? np;
apartMarkers = {}


Do istniej?cej tablicy z pozycjami marker?w dodaj now? warto?? kt?ra b?dzie reprezentowa?a id;
{xyzid}


Przy tworzeniu markera pierw algorytm niech sprawdzi czy istnieje warto?? o numerze 'x' w tablicy 'apartMarkers' je?eli nie tworzy marker a jego id z czwartej warto?ci z tablicy marker?w wpisuje do tablicy 'apartMarkers' oraz ustawia elementdat? dla tego markera by przy usuwaniu m?c to rozr??ni?, za? gdy istnieje proces si? powtarza.

W przypadku usuwania, pobierasz elementdat? markera i usuwasz ow? liczb? x z tablicy zaj?tych miejsc markerer?w.

( a no i to sprawdzanie czy istnieje 'x' w 'apartMarkers', to raczej w p?tli musisz zrobi? )

ja nie przecz? ?e to si? da zrobi? o wiele szybciej, ale to jest pomys? kt?ry wpad? mi od tak i jest on pewnie do?? okr??n? drog?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-11-17, 16:56


=DC=







Wiek: 35
Na forum: 3944 dni
Posty: 223
Nick w MP: =DC=

Piwa: 72

Respekt: 150
Respekt: 150Respekt: 150

Maxlian, popr?buj? z tym co wymy?li?e? :P

Opr?cz tego ma kto? jeszcze jaki? inny spos?b ??

Podpis

Witaj
, jeśli Ci pomogłem postaw mi :piwo: lub R* Dzięki!

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-11-17, 17:45


mtm

</3






Wiek: 26
Na forum: 3715 dni
Posty: 181

Piwa: 252

Respekt: 70

w sumie jak teraz troch? tak trze?wiej my?l? ni? wczoraj to jest do?? spoko pomys? kt?ry pewnie dodatkowo mo?na skr?ci?;
lecz pewnie zaraz przyjdzie jakie? guru lua i zacznie wyk?ad na temat w jaki spos?b mo?na to zrobi? szybciej a ten jest zupe?nie bez sensu xd,
po prostu wed?ug mnie jest to dobre na poj?cie w jaki spos?b to dzia?a, potem samemu mo?na kombinowa?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-11-17, 19:23


=DC=







Wiek: 35
Na forum: 3944 dni
Posty: 223
Nick w MP: =DC=

Piwa: 72

Respekt: 150
Respekt: 150Respekt: 150

Maxlian, pokombinowa?em z t? tabel? dodatkow? i wysz?o :D
Leci piwerko a temat mo?na zamkn??.

Podpis

Witaj
, jeśli Ci pomogłem postaw mi :piwo: lub R* Dzięki!

Postaw piwo autorowi tego posta
 

 
Tagi: losowanie :: math.random :: bez :: powtarzania :: się
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Losowanie math.random bez powtarzania się 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