Zabójca,arena i takie niby zawody. 8230 34

O temacie

Autor Drake

Zaczęty 11.08.2009 roku

Wyświetleń 8230

Odpowiedzi 34

Drake

Drake

Użytkownicy
posty93
Propsy3
  • Użytkownicy
Witam wszystkich,przymierzam się do stworzenia mojego pierwszego moda(którego być może zrobię z kumplem).I z tym właśnie modem wiążą się moje pytania:

1.Zabójca:może nie tyle zabójca co jego specjalna broń.Chodzi mi o to że jak zaczniemy się skradać z wyciągniętym sztyletem(takim specjalnym,dla zabójców)podkradniemy się do jakiegoś gościa,i cały czas skradając się walniemy go sztyletem w plecy to gość odrazu jest dead.I nie wiem jak to zrobić.

2.Już od dawna męczy mnie jedna myśl,żeby w moim modzie zrobić arene podobną do tej z MT.Myślałem długo jak by się za to wziąść ale nie mam zielonego pojęcia,jak zrobić te zakłady,walki codziennie między wylosowanymi przeciwnikami itd.

3.Niby zawody czyli np.idziemy z jakimś tam NPC-em do lasu,jakiś tam dialog i zaczynamy.Kto zabije więcej dajmy na to ścierwojadów.I teraz jak zrobić żeby ten NPC uganiał się za ścierwojadami.Chodzi mi tu głównie o to żeby prze te 10 minut przez które będa trwały zawody w lewym górnym rogu pisało imię zawodnika,obok imienia ilość zabitych ścierwojadów i aby było tam odliczanie.

Z góry dzięki.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
1.Zabójca:może nie tyle zabójca co jego specjalna broń.Chodzi mi o to że jak zaczniemy się skradać z wyciągniętym sztyletem(takim specjalnym,dla zabójców)podkradniemy się do jakiegoś gościa,i cały czas skradając się walniemy go sztyletem w plecy to gość odrazu jest dead.I nie wiem jak to zrobić.
Obrażenia by musiały być ustawione na maksa, czyli w skrypcie broni:
damageTotal = self.attribute[ATR_HITPOINTS_MAX];i najlepiej wykreślić to:
//TEXT[2] = NAME_Damage; COUNT[2] =damageTotalChociaż nie wiem, czy nie było by potrzebne pogrzebanie jeszcze w innych plikach. Z drugiej strony można ustawić obrażenia na 100000, co jest łatwiejsze i bardziej skuteczne.

Cytuj
2.Już od dawna męczy mnie jedna myśl,żeby w moim modzie zrobić arene podobną do tej z MT.Myślałem długo jak by się za to wziąść ale nie mam zielonego pojęcia,jak zrobić te zakłady,walki codziennie między wylosowanymi przeciwnikami itd.
Trochę żmudnej roboty przy tym będzie. To zależy tylko od tego, jak miało by to wyglądać.

Cytuj
3.Niby zawody czyli np.idziemy z jakimś tam NPC-em do lasu,jakiś tam dialog i zaczynamy.Kto zabije więcej dajmy na to ścierwojadów.I teraz jak zrobić żeby ten NPC uganiał się za ścierwojadami.Chodzi mi tu głównie o to żeby prze te 10 minut przez które będa trwały zawody w lewym górnym rogu pisało imię zawodnika,obok imienia ilość zabitych ścierwojadów i aby było tam odliczanie.
Trzeba użyć trigger scripta. Poszukaj tutka o tick-tock, albo wywoływanie skryptu co xxx sekund.

Drake

Drake

Użytkownicy
posty93
Propsy3
  • Użytkownicy
Ale mi chodzi o to żeby żeby NPC umierał tylko jak się go trzaśnie w plecy.Takie ciche zabójstwo.

Co do areny to chciałbym aby to było jak w MT.
 

Mr Prezesinho

Mr Prezesinho

Użytkownicy
posty162
Propsy1
  • Użytkownicy
Jeśli chodzi o zabójstwo musiałbyś dodać funkcję, w której sztylet działałby tylko podczas skradania się (musiałbym poszperać w skryptach żeby dokładniej to opisać).


if   NPC_SetWalkmode      (self,   NPC_SNEAK);----brnij w ta stronę (nie powiem że to działa ale możesz pokombinować)

i pózniej dopiszesz instance swojej broni i damagetotal tak jak wcześniej opisał Adanos
 
89% graczy uważa, że najważniejsza jest grafika, jeśli uważasz, że te sygnatury nie mają sensu wklej to do podpisu.


muttley

muttley

Użytkownicy
posty567
Propsy381
  • Użytkownicy
Z tego co pisze w licencji MT możesz przecież skopiować skrypt, tylko musisz po wydaniu moda musisz upublicznić skrypty.
 

Drake

Drake

Użytkownicy
posty93
Propsy3
  • Użytkownicy
Muttley dzięki za "drogowskaz"w sprawie zabójcy.

Co do areny to chyba faktycznie skopiuje skrypt zgodnie z warunkami licencji i troche go pozmieniam.

Adanos nie za bardzo wiem o co Ci chodzi.
 

Oven

Oven

Użytkownicy
posty7
Propsy5
  • Użytkownicy
Przyda ci się jeszcze to

if Npc_CanSeeNpc(self, hero)
 

Dodaj sobie to w broni tak by jeśłi spełni się ten warunek npc odrazu ginie :D  (warunek zadziała tylko wtedy gdy npc cię nie widzi :P  czyli musisz mu zajebać w plecy żeby umarł odrazu :D  )
 

jendrzejs

jendrzejs

Użytkownicy
posty586
Propsy31
Profesjabrak
  • Użytkownicy
A ja dodam że skrypt areny MT był robiony przez Fenixa ^^

Edit.Czemu nie mam kilku działów ? !
 

Drake

Drake

Użytkownicy
posty93
Propsy3
  • Użytkownicy
Dzięki Oven,jak sprawdze to napisze.
 

Drake

Drake

Użytkownicy
posty93
Propsy3
  • Użytkownicy
Eee sorry Oven ale nie za bardzo wiem gdzie to wpisać i co do tego dopisać.
 

DuoGum

DuoGum

Użytkownicy
posty224
Propsy8
  • Użytkownicy
W skrypcie swojej broni.
 

Drake

Drake

Użytkownicy
posty93
Propsy3
  • Użytkownicy
DuoGom to oczywiste że w broni,tylko czy do tego coś dopisać,w jakiej linijce wkleić czy poprostu wkleić w byle jakiej tak jak jest.
 

Mr Prezesinho

Mr Prezesinho

Użytkownicy
posty162
Propsy1
  • Użytkownicy
FUNC VOID Npc_UseItem (hero, instancetwojejbroni)

if (NPC_Attack(hero,self,)) && (NPC_SetWalkMode(hero, NPC_SNEAK)) && (Npc_GetTarget(hero,self)) && (Npc_CanSeeNpc(self, hero))
{

 (Npc_IsDead(self))

};

Sprawdź czy zadziała. :lol2:

Jeśli coś jest nie tak to to ci się przyda...

http://themodders.org/index.php?showtopic=6730
 
89% graczy uważa, że najważniejsza jest grafika, jeśli uważasz, że te sygnatury nie mają sensu wklej to do podpisu.


Drake

Drake

Użytkownicy
posty93
Propsy3
  • Użytkownicy
Błąd jest w FUNC.
 

muttley

muttley

Użytkownicy
posty567
Propsy381
  • Użytkownicy
FUNC VOID Npc_UseItem (hero, instancetwojejbroni);
Teraz powinno być ok
 

Drake

Drake

Użytkownicy
posty93
Propsy3
  • Użytkownicy
Dalej to samo,hmm może spróbuje przeinstalować gothica bo już przedtem miał jakieś problemy.
 

Mr Prezesinho

Mr Prezesinho

Użytkownicy
posty162
Propsy1
  • Użytkownicy
Nie musisz przeinstalowywać wyskakuje ci ten sam błąd co u mnie (funkcja nie jest zdefiniowana). Trzeba ja po prostu opisać.
 
89% graczy uważa, że najważniejsza jest grafika, jeśli uważasz, że te sygnatury nie mają sensu wklej to do podpisu.


Drake

Drake

Użytkownicy
posty93
Propsy3
  • Użytkownicy
Rasarus to znaczy co,gdzie i jak?
 

Mr Prezesinho

Mr Prezesinho

Użytkownicy
posty162
Propsy1
  • Użytkownicy
Hmm, chyba najlepiej byłoby stworzyć nowy plik w folderze \_Work\Data\Scripts\Content\AI\B_Human
Oczywiście są inne drogi, jednak musiałbym nad tym posiedzieć bo nigdy czegoś takiego nie robiłem.
Jest tam kilka przydatnych plików, z którym mógłbyś skorzystać.
 
89% graczy uważa, że najważniejsza jest grafika, jeśli uważasz, że te sygnatury nie mają sensu wklej to do podpisu.


inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Zabójca,arena i takie niby zawody.
#19 2009-08-15, 21:21(Ostatnia zmiana: 2009-08-15, 21:30)
Co do skryptu sztyletu zabójcy to uważam że trochę źle się się za to zabieracie. Według mnie funkcję należałoby wstawić w pliku _Work\Data\Scripts\Content\AI\ZS_Human\ZS_ReactToDamage.d.
Poniższą funkcję najlepiej wklej przed PrintDebugNpc (PD_ZS_FRAME, "ZS_ReactToDamage" );
active_weapon = Npc_GetReadiedWeapon(hero);
if(Hlp_IsItem(active_weapon,sztylet_mordercy))&&!(Npc_CanSeeNpc(self, hero)))
{
Npc_ChangeAttribute(self,ATR_HITPOINTS, - 9999);
PrintScreen ("Zamordowałeś go!", -1,-1,"FONT_OLD_20_WHITE.TGA",3);
};
Można to było napisać w sposób ciut bardziej elegancki i uporządkowany tworząc nową funkcję w odrębnym pliku, rejestrując ją w Gothic.src i wywołując, ale obawiam się że mogłoby to być dla ciebie za trudne, wiem, bo jeszcze cztery dni temu sam byłem w skryptach kompletnie zielony
A tu masz skrypt tego swojego sztyletu, najlepiej wklej go w pliku _Work\Data\Scripts\Content\Items\weapons.d na samym początku

INSTANCE sztylet_mordercy (C_Item)
{
name = "Sztylet skrytobójcy";

mainflag = ITEM_KAT_NF;
flags = ITEM_SWD;
material = MAT_METAL;

value = 100;

damageTotal = 10;
damagetype = DAM_EDGE;
range =  100;

cond_atr[2]   = ATR_DEXTERITY;
cond_value[2]  = 50;
visual = "ItMw_1H_Sword_Short_01.3DS";

description = name;
TEXT[0] = "Jeśli skradając się podejdziesz niezauważony";
TEXT[1] = "do swojego celu, masz szansę zamordować go";
TEXT[2] = "już pierwszym ciosem.";
TEXT[3] = NAME_Damage; COUNT[3] = damageTotal;
TEXT[4] = NAME_dex_needed; COUNT[4] = cond_value[2];
TEXT[5] = NAME_Value; COUNT[5] = value;
};
Skrypty działają, sprawdzałem. Do morderstwa dochodzi tylko jeśli NPC jest człowiekiem, nie ma wyciągniętej broni i nas nie widzi, nie trzeba się w tym celu specjalnie skradać, wystarczy podejść go od tyłu i niepostrzeżenie wyciągnąć broń i od razu dźgnąć.
Każdy może użyć tych skryptów w swoim modzie pod warunkiem że wspomni że ja jestem ich autorem. Jeśli ktoś z was jest w trakcie robieni moda mającego realne szanse na ukazanie się i poszukuje pomocy skryptera, nawet początkującego, z chęcią pomogę.


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry