PDA

View Full Version : [INC] WInts - Wolly's Interiors


:wollodya:
14/01/2010, 05:57 PM
WInts - Wolly's Interiors

- Topic na PawnoBoxe - (http://pawnobox.net/smf2/index.php?topic=12318)

O scripte:

Nápad vytvoriť tento include som dostal už dávno (asi pred rokom) ale zrealizovať ho som dostal chuť až teraz aj keď s pawnom u skoro vôbec nerobím. Ide o napodobnenie originálnych vstupov do interiérov. Niekedy vidím že sa používa pickup bielej šípky ale myslím si že toto je oveľa efektnejšie.

Náhľad:
http://img24.imageshack.us/img24/5067/samp017io.th.png (http://img24.imageshack.us/i/samp017io.png/)

Video:
Wints (http://www.youtube.com/watch?v=lCXQWI9ZXEo#normal)

Princíp fungovania:

Princíp je ten že pod podlahou je auto, ktorému som nastavil player objective pomocou SetVehicleParamsForPlayer. Pod autom je ešte objekt aby auto nepadalo do matrixu. Hráč potom vidí len žltú šípku keďže len tá vytŕča zo zeme a všetko ostatné je skryté pod podlahou.


Nevýhody:


žltá šípka nad autom sa mierne odlišuje od originálneho vstupu, je bledšia
na mape sú zobrazované otravné a zbytočné žlté ikonky
šípka mizne (a teda aj ikonky na mape) až pri väčšej vzdialenosti kvôli bugu v SA:MP



Detailnejšie info:

Keďže som to scriptoval skôr so zámerom zrealizovať nápad ako vytvoriť dokonalý script, source tak aj vypadá. Počas práce som narazil na niekoľko bugov a preto namieto prerobenia niektorých vecí inak, som ich len poupravil a šiel ďalej.

Šípka nad autom sa nedá vypnúť pomocou SetVehicleParamsForPlayer. Našťastie ma zachránilo streaming vozidiel v 0.3 a tak sa vypne sama ako náhle sa auto "odstreamuje". Bohužiaľ je to preto závislé od nastavenia vzdialenosti streamovania áut a hráčov v configu.

Include streamuje objekty pod autom pre každého hráča osobitne. Definovaný max. počet objektov.
Obsahuje efektívny script na rozdelenie San Andreas na určitý počet zón (všetko je definovateľné) a streaming áut len v zónach v ktorých je aspoň nejaký hráč, teda v blízkozti nejakej zóny. Momentálne je tam nastavených 100 metrov. To znamená že ak sa hráč nachádza na súradniciach 0 a 0 tak budú aktívne 4 okolité zóny (za predpokladu že počet zón na šírku je párny a v súradniciach 0 a 0 je stred rohov 4 zón). Je to preto aby sa nestalo že vstup bude na okraji jednej zóny a hráč bude na okraji vedľajšej zóny. Síce by bol len pár metrov od neho ale nebude priamo v zóne a preto sa mu nezobrazí. Dôležité je aby počet zón nebol privysoký aby cyklus nebol viac zatažujúci ako keby to bolo vobec bez streamovania cez zóny (momentálne nastavené na 6 × 6, teda 36 zón, každá so šírkou 1000 metrov, plus 100 metrov okolo "aktívne pásmo".

Ako kompromis odporúčam nastaviť stream_distance v server.cfg na 200.0!

Originál vstupy do interiéru v SA:MP sa zobrazia cca pri vzdialenosti 40 metrov. V tomto inc je to nastavené na 50 metrov, samozrejme je to možné zmeniť.

Efekt stmavovania obrazovky som použil Seifader od Seifa, keďže je to celkom jednoducho spravené a nechcel som sa zaoberať ďalšou blbosťou ktorá by iba natiahla čas release.

Nezľaknite nárastu veľkosti amx súboru. Je to spôsobené veľkým počtom premien. Napr. MidoStream FS má skompilovaný asi 2MB.

Nevytvárajte interiéry na nejakých nerovných miestach lebo vám bude vyčnievať auto na povrch.


Inštalácia a použitie:

Inštalácia do módu:

Wints_Init(); strčiť do publicu OnGameModeInit
Wints_Exit;() strčiť do publicu OnGameModeExit
Wints_OnPlayerConnect(playerid); strčiť do publicu OnPlayerConnect
Wints_OnPlayerDisconnect(playerid, reason); strčiť do publicu OnPlayerDisconnect
Wints_OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid); strčiť do publicu OnPlayerInteriorChange

Použitie funkcie:

CreateWInterior(Float:arrowX,Float:arrowY,Float:ar rowZ,arrowInterior,Float:targetX,Float:targetY,Flo at:targetZ,Float:targetAngle,targetInterior);

arrowX, arrowY, arrowZ - súradnice kde má byť zobrazená šípka (stačí uložiť cez /save, pozor!, nesmiete byť pri ukladaní pozície vo vozidle lebo bude šípka o čosi nižšie a bude sa sa prechádzať cez podlahu)
arrowInterior - id interiéru kde má byť umiestnená šípka (ak umiestňujete v šípku v nejakej budove, aktuálny interiér zistíte príkazom /interior)
targetX, targetY, targetZ - spawn pozícia kde bude hráč spawnutú po vstupe do interiéru
targetAngle - uhol natočenia hráča pri spawnutí
targetInterior - id interiéru do ktorého má byť hráč spawnutý

Napríklad
CreateWInterior(2127.5737,2379.4404,10.8203,0,246. 3751,109.2462,1003.2188,0.0000,10);
znamená že šípka bude na pozícii 2127.5737,2379.4404,10.8203 v interiéri 0 (von), a pri vstupe bude hráč premiestnený na pozíciu 246.3751,109.2462,1003.2188 s uhlom natočenia hráča 0.000000 do interiéru 10.

Funkciu CreateWInterior treba dať do publicu OnGameModeInit.


Credits:


Seif - Seifader - script na ztmavovanie obrazovky
Luk_Ass - pomoc pri scriptovaní
SpiriX23 - pomoc pri testoch a poskytnutie servera na testy
CorteZz - vytvorenie demo videa



Záver:

Dúfam že nápad niekto využije a spraví lepší a efektívnejší script ako je tento.

Nejaké screeny z testov:
http://pixtube.eu/graphic/thumbs/321788-sa-mp-023-th.png (http://pixtube.eu/share/321788-sa-mp-023.png)http://pixtube.eu/graphic/thumbs/321789-sa-mp-021-th.png (http://pixtube.eu/share/321789-sa-mp-021.png)http://pixtube.eu/graphic/thumbs/321790-sa-mp-015-th.png (http://pixtube.eu/share/321790-sa-mp-015.png)http://pixtube.eu/graphic/thumbs/321791-sa-mp-016-th.png (http://pixtube.eu/share/321791-sa-mp-016.png)http://pixtube.eu/graphic/thumbs/321786-sa-mp-037-th.png (http://pixtube.eu/share/321786-sa-mp-037.png)http://pixtube.eu/graphic/thumbs/321787-sa-mp-027-th.png (http://pixtube.eu/share/321787-sa-mp-027.png)

Update 1.01:

- drobné úpravy


Stiahnutie:

PASTEBIN (http://pastebin.com/yDusZ7GS)

http://solidfiles.com/info_imgs/PfnA.jpg (http://solidfiles.com/d/786/)

niCe
19/01/2010, 12:22 PM
Vyborny script.

Rainmaker
19/01/2010, 01:32 PM
Sice pěkné ale už dávno známý princip :) . Určitě bych to i někde zde na foru našel. Ale snaha se cení pokud jsi to opravdu dělal ty.

:wollodya:
19/01/2010, 01:46 PM
dik


Sice pěkné ale už dávno známý princip :) . Určitě bych to i někde zde na foru našel. Ale snaha se cení pokud jsi to opravdu dělal ty.


tak mi to prosim najdi (myslim to vazne) lebo som to aj hladal a nenasiel :roll: ..a urcite niesom jediny koho to napadlo to je jasne ale fakt som to nikde nevidel..

Rainmaker
19/01/2010, 01:49 PM
Systém popisoval nedávno nějaký scripter na IRC sa-mp.scripitng. Jelikož to nebyl nikdo z elity, pokud se nemýlím, tak opravdu nevím kdo to byl, ale přesně popisoval i OnObjectMoved atd.

:wollodya:
19/01/2010, 01:50 PM
Systém popisoval nedávno nějaký scripter na IRC sa-mp.scripitng. Jelikož to nebyl nikdo z elity, pokud se nemýlím, tak opravdu nevím kdo to byl, ale přesně popisoval i OnObjectMoved atd.


onobjectmoved?

Rainmaker
19/01/2010, 01:52 PM
Ah tak jsem se zmýlil :D . Byl to někdo významný a nebylo to na IRC. Skoro ;)

http://forum.sa-mp.com/index.php?topic=128040.msg842145#msg842145

:wollodya:
19/01/2010, 01:57 PM
hm tak taky podobny objekt som nasiel aj ja ..asi pred rokom, kedy som sa pokusal vytvorit podobny include ako tento ibaze na inom principe (pickup s tym objektom, ale ten objekt bol uplne maly co som nasiel, a bol velmi bledy, povedal by som ze bledej farby) ..vtedy som chcel urobit aj setcamerapos, a setcameratarget, a aj s animaciou kráčania k tomu pickupu

neviem ci si si to vsimol ale tento include, funguje na uplne inom principe ;), ktory ma napadol tiez asi pred rokom, ale neviem preco som to neskusal spravit, az teraz som na to dostal chut ..skus si precitat viac info, neni tam ziadny moveobject, inak by si cez ten objekt nemohol napr. prejst, a bola by to ako prekazka

Rainmaker
19/01/2010, 02:03 PM
Proč to dělat jednoduše, když to jde složitě :D . Ale pěkné. Stejně hádám Kye brzy enexy zprovozní. Neměl by to být zas takový problém.

:wollodya:
19/01/2010, 02:49 PM
no tak to som teda fakt zvedavy ...tipujem ze spravi nieco ako SetPlayerEnEx a budu sa vymyslat streamery pre tieto zlte sipky (tak ako to je s checkpointmi) :roll:

niCe
19/01/2010, 02:53 PM
http://www.gtamodding.com/index.php?title=ENEX

376 of 400 possible enex connections are used in a standard game.

Pokud tomu spravne rozumim, pokud by v SA-MP byly enexy, byl by limit 24, cimz je pouzitelnost srovnatelna s checpointy a streamer je nezbytnej. Nicmene aspon to nebude mit ikony na minimape jako checkpointy.

:wollodya:
19/01/2010, 03:12 PM
http://www.gtamodding.com/index.php?title=ENEX

376 of 400 possible enex connections are used in a standard game.

Pokud tomu spravne rozumim, pokud by v SA-MP byly enexy, byl by limit 24, cimz je pouzitelnost srovnatelna s checpointy a streamer je nezbytnej. Nicmene aspon to nebude mit ikony na minimape jako checkpointy.


skor by som to prirovnal k ikonam na mape

Rainmaker
19/01/2010, 03:41 PM
Ikonky už mají ale limit 100 což je až až dle mého názoru.

3rAs3r
19/01/2010, 04:29 PM
A nedalo by se to navíšit tím, že by se zrušily interiéry?

Jinak pěkná práce wolly....

a Raine máš pravdu s těmi Ikonkami to stačí (i když někdy), mě by jen zajímalo jak to bude s počtem objektů...

:wollodya:
19/01/2010, 06:47 PM
eh tak v 0.3 som toho moc nenakukal a o tych ikonkach som nevedel :|

vsetko je (takmer) neobmedzene ak je to streamovane ...a 24 vstupov do interierov v okruhu 40 metrov by asi moc ;) ..keby mi zalezalo na tych interieroch, tak by som osobne nebol proti aj pri max 24 ..to je ako s tymi ikonkami, najpv bolo 24 a preto sa robili icon streamery, teraz ich dali na 100 ale su tiez streamovane (aspon myslim ze to tak funguje, niesom si isty) a o ten streamer je teraz vytvaranie ikoniek vyhodnejsie ..takze rovnako mozu spravit aj streamer na tie enexy ;)

Rainmaker
19/01/2010, 08:30 PM
S nejvyšší pravděpodobností se už objekty nijak měnit nebudou. Pokud teda Kyeman nedostane podporu od Rockstar games což asi těžko, protože hádám nikdo z uživatelů R* dotazy nebombarduje, jak by měli.
Už byly totiž 2 pokusy o zprovoznění IPL pro sa-mp a to při vývoji 0.2 a teď při vývoji 0.3 a pořád se nezdařilo a visí to asi na stejném problému. Takže leda streamer a to si každý umí udělat.

dangridin
21/01/2010, 03:46 PM
g00d :) ja taky delam mody jako treba LVJL

Rainmaker
22/01/2010, 12:03 AM
A LVJL je jako co ? A co to má společného s tématem ?

niCe
24/01/2010, 02:21 PM
Nic. Ale pozor na nej! On prece dela mody :P

Bl4ck J0k3r
28/01/2010, 05:08 PM
Nějak to nefunguje :(
Nic to nevytvoří

:wollodya:
29/01/2010, 01:43 PM
Inštalácia a použitie:

Inštalácia do módu:

Wints_Init(); strčiť do publicu OnGameModeInit
Wints_Exit;() strčiť do publicu OnGameModeExit
Wints_OnPlayerConnect(playerid); strčiť do publicu OnPlayerConnect
Wints_OnPlayerDisconnect(playerid, reason); strčiť do publicu OnPlayerDisconnect
Wints_OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid); strčiť do publicu OnPlayerInteriorChange

Použitie funkcie:

CreateWInterior(Float:arrowX,Float:arrowY,Float:ar rowZ,arrowInterior,Float:targetX,Float:targetY,Flo at:targetZ,Float:targetAngle,targetInterior);

arrowX, arrowY, arrowZ - súradnice kde má byť zobrazená šípka (stačí uložiť cez /save, pozor!, nesmiete byť pri ukladaní pozície vo vozidle lebo bude šípka o čosi nižšie a bude sa sa prechádzať cez podlahu)
arrowInterior - id interiéru kde má byť umiestnená šípka (ak umiestňujete v šípku v nejakej budove, aktuálny interiér zistíte príkazom /interior)
targetX, targetY, targetZ - spawn pozícia kde bude hráč spawnutú po vstupe do interiéru
targetAngle - uhol natočenia hráča pri spawnutí
targetInterior - id interiéru do ktorého má byť hráč spawnutý

Napríklad
CreateWInterior(2127.5737,2379.4404,10.8203,0,246. 3751,109.2462,1003.2188,0.0000,10);
znamená že šípka bude na pozícii 2127.5737,2379.4404,10.8203 v interiéri 0 (von), a pri vstupe bude hráč premiestnený na pozíciu 246.3751,109.2462,1003.2188 s uhlom natočenia hráča 0.000000 do interiéru 10.

Funkciu CreateWInterior treba dať do publicu OnGameModeInit.

Bl4ck J0k3r
30/01/2010, 07:45 PM
Nevytvoří se mi ta ąipka :( ale do interieru jde chodit

:wollodya:
31/01/2010, 11:36 AM
pidavam ukazkovy script, (je to sftdm s wints) ..je tam vyvoreny /port na portnutie k interieru ..mozes si vyskusat ..prave som si to zapol a funguje to

neviem co je zlozite na ten instalacii, kedze vela includov je takto spravenych, postrkať Wints_Init, WInts_Exit Wints_OnPlayerCOnnect atď ..proste tychto 5 publicov do modu, a do ongamemodeinit uz len strkať CreateWInterior - a samozrejme #include <wints>

http://solidfiles.com/d/HOd8

Bl4ck J0k3r
01/02/2010, 03:20 PM
jo to sem delal... kontroloval sem to čtyřikrát...

ale stejně je to na nic, protoze mi to jen zhazovalo mod...

:wollodya:
01/02/2010, 04:31 PM
skusal si ten upraveny sftdm co som prilozil?

upni sem mod ak chces, ja ti to tam pridam

Rainmaker
01/02/2010, 04:36 PM
Omg přepni si znakovou sadu pohlížeče na ISO-8859-1 !!!

:wollodya:
22/03/2010, 04:56 PM
update 1.01 ..upravil som par malickosti ktore mohli sposobovat nefunkcnost :)

niCe
22/03/2010, 05:01 PM
Dobra prace!

:wollodya:
22/03/2010, 05:11 PM
pomenil som len nazvy nejakych premien ..teda definicii :D ..aby sa predislo tomu ze v mode budu rovnake premenne a spolu sa to po**** ... a este par drobnosti ..chcel som aj id vozidla ale RC auta maju malu sipku a su "hlbšie v zemi" takze by to nefungovalo..

Snoooopy
22/03/2010, 08:16 PM
Jooo , Je to vyborne. :-)

wollodya
07/07/2010, 10:12 AM
prosim zmazat/locknut (alebo zlúčiť s novou témou) pretože nemám heslo od tohto accountu koli tomu povinnemu "obnoveniu" hesla..

niCe
07/07/2010, 02:38 PM
Thread zamcen. Novy thread souvisejici s timto scriptem najdete zde http://forum.sa-mp.com/showthread.php?t=157621