| Dodany | 4 maja 2009, 14:57 | Odsłon | 2799 |
| Edytory |
![]()
| Ocena |
(8 głosów)
|
| Kategoria | Silnik | Poziom |
(Dla średnio-zaawansowanych)
|
| 1 | • Uruchom to zdarzenie 1 raz Zniszcz wszystkie Npc |
| 2 | • Uruchom to zdarzenie 1 raz Uruchom petle "Npc" 100 razy |
| Petla | |
| 1 | • On Loop Npc • loopindex("Npc")==0 Array->Clear Npc Nvo->load ini file apppath$+"npc/lista.ini", section str$(frame) |
| 2 | Zapisywanie do Global string A sciezki do pliku npc |
| 3 | • On Loop Npc Global string A==GetString("Npc Nvo", Str$(LoopIndex("npc")+1)) String parser->string = Global string A |
| 4 | Sprawdzanie, czy sa juz jakies informacje o tym npc. |
| 5 | • On Loop Npc • Len(GetString( "Named variable object", Str$(frame)+"_"+Global String A))<15 • Len(Global String A)>=2 Uruchom petle "Npc-wpis" 1 raz |
| 6 | • On Loop Npc-wpis Ini->Set current file to apppath$+"npc/"+Global string A |
| 7 | Sprawdzanie, czy plik istnieje i czy npc wystepuje w danym poziomie. Jesli tak to przerzuca jego dane do Nvo (ktory trzyma takie oraz inne rzeczy) |
| 8 | • On Loop Npc-wpis • Len(GroupItemString$( "Ini", "info", Str$(frame)))>0 Nvo->Set Key Str$(frame)+"_"+Global String A to GroupItemString$( "Ini", "info", Str$(frame)) |
| 9 | • On Loop Npc • Len(Global String A)>=2 String parser->string = GetString( "Named variable object", Str$(frame)+"_"+Global String A) |
| 10 | Jesli npc jest i zyje to go tworzymy~! |
| 11 | • On Loop Npc • Len(Global String A)>=2 • string$( "String Parser" )!="" • listGetAt$( "String Parser", 1)!="0" Create Npc at -32, -32 Npc->flag 1, 2 on Npc->A=LoopIndex("npc")+1 Npc->Semi trans=Val(listGetAt$( "String Parser", 2)) Npc->Flag 1*(1-Val(listGetAt$( "String Parser", 3))) to off Npc->Flag 2*(1-Val(listGetAt$( "String Parser", 3))) to off Npc->X=Val(listGetAt$( "String Parser", 5)) Npc->Y=Val(listGetAt$( "String Parser", 6)) Npc->Anim=Val(listGetAt$( "String Parser", 7)) Npc->Dir=Val(listGetAt$( "String Parser", 8 )) Npc->Flag 0 to on Array item LoopIndex("npc")+1 to Global String A |
| 12 | • Uruchom to zdarzenie 1 raz Global string A="", B="" Npc Nvo->Clear |
| 1 | • Gracz->A==0 Adv Dir Object->Find distance and fixed of Npc |
| 2 | Jesli najblizszy npc jest rozny od tego, ktorego dane ma strzalka - zapisz jego dane i pokaz strzalke nad nim |
| 3 | • Gracz->A==0 • Npc->Fixed==GetFixedObj( "Advanced Direction Object", 0) • GetFixedObj( "Advanced Direction Object", 0)!=Alterable Value A( "Strzalka" ) Strzalka->pos=0,12 od Npc Strzalka->StrA=StrAtX( "NpcList", Alterable Value A( "Npc" )) Strzalka->A=Fixed( "Npc" ) |
| 4 | • Gracz->A==0 • Fixed of Npc==GetFixedObj( "Advanced Direction Object", 0) Strzalka->pos=0,12 od Npc |
| 5 | Jesli gracz jest blizej niz 32px od Npc -> pokaz strzalke |
| 6 | • Gracz->A==0 • Fixed of Npc==GetFixedObj( "Advanced Direction Object", 0) • GetDistObj( "Advanced Direction Object", 0)<=32 Strzalka->Semi Trans=0 |
| 7 | Jesli gracz wcisnal Enter i jest blizej niz 32px od dowolnego npc -> rozpocznij rozmowe |
| 8 | • Wcisnieto enter • Gracz->A==0 • SemiTrans( "Strzalka" )!=128 Strzalka->B,C=0 Strzalka->Flaga 0 on Gracz->A=2 Gracz->B=1 String="" Tlo dialogu->Dir=0 |
| Kosmetyka | |
| 1 | Jesli gracz nie rozmawia to schowaj tlo dialogowe, jesli rozmawia - pokaz |
| 2 | • Gracz->A==0 Tlo dialogu->Semi Trans+=4 String="" |
| 3 | • Gracz->A!=0 Tlo dialogu->Semi Trans-=4 |
| Dialog | |
| 1 | • Gracz->A==2 • Gracz->B<=0 Gracz->A=0 Gracz->B=0 |
| 2 | • Wcisnieto enter • Gracz->A==2 • Gracz->B>0 • Strzalka->Flaga 0 jest off Gracz->B-=1 Strzalka->Flaga 0 on String="" |
| 3 | Wczytaj plik npc do Npc Nvo |
| 4 | • Gracz->A==2 • Uruchom raz jesli zapetla sie Npc Nvo->load ini file apppath$+"npc/"+Alterable String A( "Strzalka" ), section "dialog" |
| 5 | Jesli Strzalka->B jest mniejsza lub rowna 0 uruchom petle |
| 6 | • Gracz->A==2 • Strzalka->B<=0 • Strzalka->Flaga 0 jest on Global string A="" Strzalka->B=0 Strzalka->Flaga 0 off Uruchom petle Npc-komendy 100 razy |
| 7 | • Gracz->A==2 • Strzalka->B>0 • Strzalka->Flaga 0 jest on Strzalka->B-=1 |
| Wnetrze petli | |
| 1 | Jesli wartosc C strzalki jest wieksza od 0 ustaw index petli na c+1. Wykorzystywane do tego, co opisalem wyzej ;p |
| 2 | • On loop Npc-komendy • Strzalka->C>0 Set loop index Npc-komendy to Alterable Value C( "Strzalka" )+1 Strzalka->C=0 |
| 3 | Wstawianie do string parsera aktualnej komendy. |
| 4 | • On loop Npc-komendy String parser->String = GetString( "Npc nvo", Str$(Alterable Value B( "Gostek" ))+" "+Str$(LoopIndex("npc-komendy"))) |
| 5 | Dla wygody, zerowa petla moze nie wymagac podania 0 w pliku ini (zamiast "1 0=komenda" mozna napisac "1=komenda") |
| 6 | • On loop Npc-komendy • loopindex("Npc-komendy")==0 • listCount( "String Parser" )==0 String parser->String = GetString( "Npc nvo", Str$(Alterable Value B( "Gostek" ))) |
| 1 | • On loop Npc-komendy • listGetAt$( "String Parser", 1)=="tekst" String=listGetAt$( "String Parser", 2) |
| LordTomaszz @ 13 maja 2009, 10:43 | ||
dobre jak bede umiał doskonale to mam zamiar stworzyc gre podobna do fallout 3 tzn klimat fallouta ale swiat Polska a akcja była by ze w roku 2015 Rosja zaatakowała Polske od wschodu a Izrael od Południa(związek Rosyjsko-Izlaeliski )
| ||
| Cremmy @ 6 maja 2009, 19:17 | ||
| Demo? Tobira, Ivon. Przyklad? Skoro jest zainteresowanie, to wrzuce to, nad czym aktualnie pracuje. Nie wiem, czy bedzie to super dzialalo, bo nie zrobilem w tym zadnej gry, ale to sie pewnie niedlugo zmieni ;p Przyklad | ||
| Fadex @ 6 maja 2009, 14:58 | ||
Cóż, przejrzałem pobieżnie, powinno działać Skrypty fajna rzecz, bardzo ułatwia tworzenie gry. Ba, cała gra może być oparta na skryptach
| ||
| creesee @ 6 maja 2009, 14:48 | ||
No, przykład to by się przydał.
| ||
| Bedziu @ 6 maja 2009, 00:10 | ||
| Przydałoby się DEMO, a nawet skompilowane (zablokowane), aby czasem leniwi twórcy nie szli na łatwiznę i nie kopiowali zdarzeń bezpośrednio z pliku *.mfa | ||
| Fanotherpg @ 4 maja 2009, 17:53 | ||
Literówki.. hmm całkowity brak zachowania poprawnej ortografii może być literówką ? A tak to silnik ciekawy z zamysłu pytanie tylko czy działa.
| ||