Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
orcwarrior
Administrator
Dołączył: 24 Sie 2005
Posty: 495
Przeczytał: 0 tematów
Skąd: Brzeziny
|
Wysłany: 2006/01/30 23:42 Temat postu: [Respawn]-Czyli odnawianie się potworów |
|
|
Gra wychodz na to ze jest doś trudna aby można było nauczyć się wiekszosci umiejetnosci itp. trzeba bedzie dużo PN a do dużo pn potrzeba duzo doswiadczenia a do duzo doswiadczenia potrzebny jest respawn(nie marzę o robieniu 5 questów na dzien )
Ja mam taki pomysł aby dodać pare besti z osobnym instance dajmy na to:
Func void CanionCheck
{
if (NpcIsDead(TrollFromCanion))
{
KaniononRespawn = Wld_GetDay();
//hmm teraz wazne do zyska jako się bardzo nie znam to jak zrobić aby ta funkcja zadziałała aby skrypt sprawdził akurat wtedy ze TrollFromCanion niezyje?
};
};
Func Void DayTollerance()
{
//blah blah blah
Wld_GetDay()=Wld_GetDay()+1;
if (KanionRespawn= Wld_getday()-5;//Troll pojawia sie co 5 dni
{RespawnCanion();};
i}'
Func void RespawnCanion()
{
insert Npc(TrollFromCanion);
insert npc(gobbo)
//(...)
};
Co myślisz o takiej formie skryptu?
i czy sprawdzanie czy ten troll jest martwy jest mozliwe
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
|
|
zysk
Administrator
Dołączył: 26 Sty 2006
Posty: 49
Przeczytał: 0 tematów
|
Wysłany: 2006/01/31 14:10 Temat postu: |
|
|
Nie.
Ja bym raczej widział coś takiego:
-zmienne
Kod: |
const monster_number=1000; //Ilość potworów
const respawn_delay=4; //Czas do respawn'u
var int respawn_instance[monster_number]; // Instancje potworów które się pojawią
var string respawn_waypoint[monster_number]; // Gdzie się pojawią...
var int respawn_day[monster_number]; // i kiedy
var int respawn_oldest; // Najdawniej zabity potwór.
respawn_oldest=0;
var respawn_next; // Numer następnego potwora.
respawn_next=0;
|
-funkcja przy śmierci - do uruchomienia w ZS_dead w if C_NpcIsMonster(self)
Kod: |
func void addrespawn()
{
if(/*potwór jest przywołany lub powiązany z misją*/)
{return;};// ten potwór się nie respawnuje
respawn_waypoint[respawn_next]=self.spawnpoint; //Ustawiamy opcje nastęnego potwora.
respawn_instance[respawn_next]=Hlp_GetInstanceID(self);
respawn_day[respawn_next]=Wld_Getday()+respawn_delay;
respawn_next=respawn_next+1; // podnosimy numer następnego potwora.
if (respawn_next==monster_number) //jeśli przekroczyliśmy zakres wracamy na początek
{
respawn_next=0
};
};
|
- funkcja do uruchomienia w PC_Sleep (po zmianie dnia)
Kod: |
func void nowrespawn()
{
if(respawn_oldest==respawn_next||Wld_getday()<respawn_day[respawn_oldest]) //jeśli brak potwórów w pamięci lub ma się dziś nie pojawić.
{
return;
};
Wld_InsertNpc(respawn_instance[respawn_oldest],respawn_waypoint[respawn_oldest]);
respawn_oldest=respawn_oldest+1;
if(respawn_oldest==monster_number)
{
respawn_oldest=0
};
nowrespawn(); // prubój dalej
}; |
Post został pochwalony 0 razy
Ostatnio zmieniony przez zysk dnia 2006/01/31 15:03, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
kazzmir
Administrator
Dołączył: 24 Sie 2005
Posty: 354
Przeczytał: 0 tematów
Skąd: kraków
|
Wysłany: 2006/01/31 14:14 Temat postu: |
|
|
nic z tego nie kapuje ale wygląda prof. jestem za tym bo sam tak robiłem w G że za każdym razem jak wybiłem jedne monstery wracałem znowu po ich odnowieniu się. takich powrotów im więcej tym lepiej. nawet kilka na rozdział i do tego dodałbym modyfikację że kolejne odnawiają się coraz mocniejsze (więcej punktów doświadczenia) tak jak gracz staje się coraz lepszy.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
zysk
Administrator
Dołączył: 26 Sty 2006
Posty: 49
Przeczytał: 0 tematów
|
Wysłany: 2006/01/31 14:17 Temat postu: |
|
|
kazzmir napisał: |
nic z tego nie kapuje ale wygląda prof. jestem za tym bo sam tak robiłem w G że za każdym razem jak wybiłem jedne monstery wracałem znowu po ich odnowieniu się. takich powrotów im więcej tym lepiej. nawet kilka na rozdział i do tego dodałbym modyfikację że kolejne odnawiają się coraz mocniejsze (więcej punktów doświadczenia) tak jak gracz staje się coraz lepszy. |
He, wtedy by nabijano poziom bez końca, ale losowe potwory Orcwarriora mogą być zależne od rozdziału.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
kazzmir
Administrator
Dołączył: 24 Sie 2005
Posty: 354
Przeczytał: 0 tematów
Skąd: kraków
|
Wysłany: 2006/01/31 14:20 Temat postu: |
|
|
no ale wiadomo że kiedyś gra się jednak kończy. to był tylko pomysł.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
orcwarrior
Administrator
Dołączył: 24 Sie 2005
Posty: 495
Przeczytał: 0 tematów
Skąd: Brzeziny
|
Wysłany: 2006/01/31 15:10 Temat postu: |
|
|
Heh..mi jest cięzko zrozumić co tam pisze;) dobrze by było aby respawn był by co pare dni-jak napisałeś ale i monstery zalezne od leva-możesz dokładniej wytłumaczyć o co w tym chodzi? myśle ze z moim respawnem było by wiecej roboty ale chyba był by lepszy,choć puki co nie mówie nic napewno bo do konca tego nie rozumiem ;P
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
zysk
Administrator
Dołączył: 26 Sty 2006
Posty: 49
Przeczytał: 0 tematów
|
Wysłany: 2006/01/31 16:13 Temat postu: |
|
|
orcwarrior napisał: |
Heh..mi jest cięzko zrozumić co tam pisze;) dobrze by było aby respawn był by co pare dni-jak napisałeś ale i monstery zalezne od leva-możesz dokładniej wytłumaczyć o co w tym chodzi? myśle ze z moim respawnem było by wiecej roboty ale chyba był by lepszy,choć puki co nie mówie nic napewno bo do konca tego nie rozumiem ;P |
W momencie gdy zabijasz potwora komputer zapamiętuję jego instancję, miejsce pojawienia oraz oblicza kiedy się pojawi. Podczas snu sprawdza czy nadszedł już czas (i może wstawić).
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
kazzmir
Administrator
Dołączył: 24 Sie 2005
Posty: 354
Przeczytał: 0 tematów
Skąd: kraków
|
Wysłany: 2006/01/31 16:19 Temat postu: |
|
|
to może żeby się silniejsze odradzały? albo żeby 2 się zamiast jednego pojawiały, nie za każdym razem. tak żeby wprowadzić jakiś stopień zmian tak żeby były nieprzewidywalne za pierwszym razem gdy się będzie grało.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
zysk
Administrator
Dołączył: 26 Sty 2006
Posty: 49
Przeczytał: 0 tematów
|
Wysłany: 2006/01/31 16:22 Temat postu: |
|
|
kazzmir napisał: |
to może żeby się silniejsze odradzały? albo żeby 2 się zamiast jednego pojawiały, nie za każdym razem. tak żeby wprowadzić jakiś stopień zmian tak żeby były nieprzewidywalne za pierwszym razem gdy się będzie grało. |
Wystarczy że za każdym razem będą powstawać w zależności od rozdziału lub poziomu bohatera.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
kazzmir
Administrator
Dołączył: 24 Sie 2005
Posty: 354
Przeczytał: 0 tematów
Skąd: kraków
|
Wysłany: 2006/01/31 16:25 Temat postu: |
|
|
w zasadzie nie chodzi mi tylko o to żeby coś się pojawiało ale przewidywalność w grach irytuje mnie. czy jest taka możliwość czy nie ma żeby zrobić coś czego gracz się nie będzie spodziewał?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
orcwarrior
Administrator
Dołączył: 24 Sie 2005
Posty: 495
Przeczytał: 0 tematów
Skąd: Brzeziny
|
Wysłany: 2006/01/31 16:26 Temat postu: |
|
|
a gdyby tak do tych zapamiętywanych atrybutów dodać level potwora i aby podporzykdkowywał level do jednej z 4 grup-easy,medium,hard,Troll:P-te przypoządkowania mogły by być w pliku z atrybutami potworów(Mst*) i dać tam gdzie jest dodawanie potworów:
__________________________________________________________________
if (beastgroup=2(medium)
{
var int randombst;
var int addedbeastnum;
addedbeastnum = Hlp_Random(25);//
randombst = Hlp_Random(14);//powiedzmy ze jest 14 besti z grupy medium
if (random bst == 1)//Dodanie scierwojada preriowego
{
if (addedbeastnum ==1)//1/25 ze doda się 2 potwory za jeden aby potworów troche przybywało
{
Wld_InsertNpc (GLScavenger,respawn_waypoint[monster_number]) ;
Wld_InsertNpc (GLScavenger,respawn_waypoint[monster_number]) ;
}
else
{Wld_InsertNpc (GLScavenger,respawn_waypoint[monster_number]) ;};
________________________________________________________________
//Taki script może być nienajgorszy a jego zrobienie długo nie potrwa co o tym sądzicię???
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
kazzmir
Administrator
Dołączył: 24 Sie 2005
Posty: 354
Przeczytał: 0 tematów
Skąd: kraków
|
Wysłany: 2006/01/31 16:30 Temat postu: |
|
|
orcwarrior napisał: |
...ze doda się 2 potwory za jeden aby potworów troche przybywało...
|
podoba mi się to, ale reszty nie kapuje. wiecie o co mi chodzi jeżeli podzielacie moje zdanie to OK. jeżeli nie to niech was chuck norris
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
zysk
Administrator
Dołączył: 26 Sty 2006
Posty: 49
Przeczytał: 0 tematów
|
Wysłany: 2006/01/31 16:58 Temat postu: |
|
|
ja bym tam zrobiłm aby poprostu była losowana odmiana potwora w zależności od poziomu bohatera. np. dla ścierwojadów:
rodzaj=poziom+losuj(10)
rodzaj - jeśli więcej niż 10 to ścierwojad preriowy, innaczej zwykły
poziom - poziom bohatera
losuj(n) - losowa liczba od 0 do n-1
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
kazzmir
Administrator
Dołączył: 24 Sie 2005
Posty: 354
Przeczytał: 0 tematów
Skąd: kraków
|
Wysłany: 2006/01/31 16:59 Temat postu: |
|
|
a od czasu do czasu można zrobić bonus w postaci np wilka czy innego monstera?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
orcwarrior
Administrator
Dołączył: 24 Sie 2005
Posty: 495
Przeczytał: 0 tematów
Skąd: Brzeziny
|
Wysłany: 2006/01/31 17:01 Temat postu: |
|
|
zgadzam się z kazzmirem od czasu do czasu czyli ok 1/25
Dobra teraz te skrypty trzeba poskładać w całość
BTW:To o następnym dniu można dodać to SetDayTolerance(folder Story/B)
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
|