GTA Közösség - A magyar GTA fórum
San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: KowaZ - 2010. december 13. - 20:30:32
-
Hello mindenki! :)
Két dologra lennék kíváncsi: egy automatikus létszámkiegyenlítõ (\"autobalance\") eljárásra és egy olyan függvényre, amely képes leellenõrizni, hogy egy adott pont egy három ponttal adott háromszögön belül helyezkedik-e el.
Auto Balance: egy olyan eljárásra lenne szükségem, ami X darab csapat esetén Y játékost úgy oszt be csapatokba, hogy egyenlõ arányban helyezkedjenek el (például ha van 2 csapat és 10 játékos, akkor úgy kell elossza õket, hogy 5-5; ha van 3 csapat és 10 játékos, akkor az eloszlás 4-3-3).
Háromszöges: szóval ha van 3 darab 2D-s pontom (azaz 6 koordinátám), akkor melyik az a legegyszerûbb függvény, amivel megkapom, hogy a kérdéses (szintén 2D-s) pont a megadott pontok által alkotott háromszög belsejében van-e?
Elõre is Köszönöm!
Kowalski
Idõközben sikerült megoldanom mindkét dolgot, de azért jó lenne ha össze tudnám hasonlítani máséval, hogy elég hatékonyak-e az én megoldásaim.
-
Öt perc alatt hírtelen megoldottad.. Már elnézést, de szerintem nem te vagy az igazi Kowalski. Valaki a fórum legjobb scriptere címre hajt. :)
-
Nem akarok belemenni személyeskedésbe... csak választ kapni a kérdéseimre. ;)
Kowalski
-
@Iceaac; Én is erre gondoltam, fõleg, hogy már van egy felhasználó Kowalski néven, ezért összehasonlítottam az IP címetket, és a kiszolgálóneveket, de megegyeztek. Szóval egy emberrõl van szó, remélem az igaziról( nem úgy, mint a múltkor ).
A témánál maradva, ha nem felejtem el, akkor holnap én is elküldöm a megoldásaimat, ma már nem kezdek neki.
-
bocs az offert:
regen nekem is volt, hogy akartam egy jonehez fuggveny es leirtam angol forumra es 1 perc mulva rajottem, hogy hogyan kell megcsinalni :D
-
Nem azzal kezdtem, hogy azonnal ide jöttem segítségért. Elõtte már kísérletezgettem saját algoritmusokkal, csak épp nem voltak túl hatékonyak vagy egyszerûen nem adtak jó eredményt. Szóval nem 5 perc alatt írtam meg õket, csak sikerült az addig megírt eljárásokat végre optimalizálni.
;)
Kowalski
-
Te még élsz? :dodge:
kül a te beszéded mindig is magas volt nekem :angry:
-
A létszámkiegenlítõs eljárásom mégsem mûködik minden esetben. ::|
Dolgozok rajta. Ha valakinek van ötlete vagy kész megoldása akkor írjon!
Kowalski
-
A létszámkiegenlítõs eljárásom mégsem mûködik minden esetben. ::|
Dolgozok rajta. Ha valakinek van ötlete vagy kész megoldása akkor írjon!
Kowalski
Nem megy már úgy mint régebben mi ?
-
OFF: És mihez szükséges ez a háromszöges kód, ha szabad tudnom? :-\\
-
OFF: És mihez szükséges ez a háromszöges kód, ha szabad tudnom? :-\\
Erre én is kíváncsi lennék.
-
OFF: És mihez szükséges ez a háromszöges kód, ha szabad tudnom? :-\\
Bermuda háromszög? ::|
-
OFF: És mihez szükséges ez a háromszöges kód, ha szabad tudnom? :-\\
Területek kijelöléséhez. 3 pont már elég ahhoz hogy meghatározzon egy zárt alakzatot.
A létszámkiegenlítõs eljárásom mégsem mûködik minden esetben. ::|
Dolgozok rajta. Ha valakinek van ötlete vagy kész megoldása akkor írjon!
Kowalski
[/quote]
Nem megy már úgy mint régebben mi ?
[/quote]
Hát úgy tûnik kellett volna elõtte specifikációt írni. Azt hittem megy rögtön, de már tényleg kijöttem a formából. ::|
Kowalski
-
Négy ponttal szerintem jobb, háromszög alakú területet ritkán jelölsz ki.
stock BenneVan(playerid, Float:nyugat, Float:del, Float:kelet, Float:eszak)
{
new Float:koord[3];
GetPlayerPos(playerid, koord[0], koord[1], koord[2]);
if(koord[0] <= kelet && koord[0] >= nyugat && koord[1] <= eszak && koord[1] >= del) return 1;
return 0;
}
-
Négy ponttal szerintem jobb, háromszög alakú területet ritkán jelölsz ki.
stock BenneVan(playerid, Float:nyugat, Float:del, Float:kelet, Float:eszak)
{
new Float:koord[3];
GetPlayerPos(playerid, koord[0], koord[1], koord[2]);
if(koord[0] <= kelet && koord[0] >= nyugat && koord[1] <= eszak && koord[1] >= del) return 1;
return 0;
}
Szerinted lehet, hogy jobb, de nekem nem erre volt szükségem, hanem egy háromszög alakú területre. Egyébként, amit írtál függvényt az 2 pontot használ és nem 4-et!
Kowalski
-
Négy ponttal szerintem jobb, háromszög alakú területet ritkán jelölsz ki.
stock BenneVan(playerid, Float:nyugat, Float:del, Float:kelet, Float:eszak)
{
new Float:koord[3];
GetPlayerPos(playerid, koord[0], koord[1], koord[2]);
if(koord[0] <= kelet && koord[0] >= nyugat && koord[1] <= eszak && koord[1] >= del) return 1;
return 0;
}
Egyébként, amit írtál függvényt az 2 pontot használ és nem 4-et!
Kowalski
[/quote]A játékos koordinátái közül kettõre van szükség, de négy koordinátával jelöli ki a területet.
-
Négy ponttal szerintem jobb, háromszög alakú területet ritkán jelölsz ki.
stock BenneVan(playerid, Float:nyugat, Float:del, Float:kelet, Float:eszak)
{
new Float:koord[3];
GetPlayerPos(playerid, koord[0], koord[1], koord[2]);
if(koord[0] <= kelet && koord[0] >= nyugat && koord[1] <= eszak && koord[1] >= del) return 1;
return 0;
}
Egyébként, amit írtál függvényt az 2 pontot használ és nem 4-et!
Kowalski
[/quote]A játékos koordinátái közül kettõre van szükség, de négy koordinátával jelöli ki a területet.
[/quote]
De ne keverd össze a koordináta és a pont szavakat... [1 pont = 2 koordináta; mivel 2D-s térben gondolkozunk]
Kowalski
-
Igazad van, pontot írtál, félreértettem, bocs.
-
Na sikerült megírnom! Leteszteltem és mûködik N csapatra és X játékosra. :D
Valaki még esetleg aki megcsinálta? Csak össze szeretném hasonlítani.
Kowalski