Jak zrobić dialog po którym atakuje nas nie osoba z którą rozmawiamy ale inneNPC 2632 7

O temacie

Autor wrzod2002

Zaczęty 8.11.2014 roku

Wyświetleń 2632

Odpowiedzi 7

wrzod2002

wrzod2002

Użytkownicy
posty99
ProfesjaProgramista
  • Użytkownicy
Siema
Bez zbędnego gadania, jak zrobić dialog po którym atakuje nas nie osoba z którą rozmawiamy ale inne NPC.
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Deklarujesz zmienną typu C_Npc, do której pobierzesz instance npc za pomocą Hlp_GetNpc(instanceNpc). Potem do skryptu ataku zamiast SELF, to wpisz nazwe tej zmiennej.
Łatwiej wytłumaczyć się nie da.

wrzod2002

wrzod2002

Użytkownicy
posty99
ProfesjaProgramista
  • Użytkownicy
Niestety nie rozumiem o co chodzi z tą zmienną gdzie ona jest ?
Jestem bardzo poczatkujący.:redface:
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
var C_Npc npc; // deklaracja zmiennej typu C_Npc
npc =  Hlp_GetNpc(instanceNpcWpiszTutaj); // pobierasz instance npc do zmiennej typu C_Npc
Potem jako argument do skryptu ataku zamiast self, to npc.

wrzod2002

wrzod2002

Użytkownicy
posty99
ProfesjaProgramista
  • Użytkownicy
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
To skąd w profesji programista?
Wróćmy do tematu.
Tu jest gotowiec
var C_Npc slf; slf = Hlp_GetNpc(tuWpiszInstanceNpc);
Npc_SetTarget(slf, hero);
Npc_SetAttitude(slf, ATT_HOSTILE);
AI_Attack(slf);

wrzod2002

wrzod2002

Użytkownicy
posty99
ProfesjaProgramista
  • Użytkownicy
a jak zrobic żeby zaatakowało mnie wiecej osób 
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Dlatego chciałem unikać dawania Ci gotowca... Teraz Ci go nie dam, niczego się nie nauczysz.
Postaram się napisać w najbardziej przejrzysty sposób.
  • Zmienna to konstrukcja przechowujące dane. "jak kontener przechowujący towary" - przykład.
  • Deklaracje zmiennej zaczyna się od symbolicznego słowa VAR, potem określa się typ_zmiennej, a na końcu jej nazwa ( unikalny identyfikator, który nie może się powtarzać ).
Deklaracja zmiennej:
var int nazwa;
Wzór:
var typ_zmiennej nazwa;
Do zmiennej przypisuje się wartość za pomocą operatora =
nazwa = 10; // przypisałem liczbę 10 do mojej zmiennej.
Dane jakie możesz przypisać do zmiennej są zależne od typu_zmiennej.
Powinieneś dać rade napisać to.

Operatory to znaki matematyczne, np (jest tego więcej).:  +,  =,  - 

Zmienne w praktyce:
W pliku externals.d masz wszystkie funkcje.
Kod: (przykład) [Zaznacz]
FUNC C_NPC Hlp_GetNpc (VAR INT instanceName) { };Funkcja posiada swój TYP ( jak zmienna ). Gdy jest on INT ( liczba ), to zwraca jakiś wynik w postaci INT (liczby).
Tutaj funkcja jest typu C_Npc, więc musisz zadeklarować zmienną o takim samym typie.
W nawiasach podaje się argumenty o wyznaczonym typie.
Teraz przykład:
Cytuj
var C_NPC nazwa; // deklaracja zmiennej C_NPC
nazwa = Hlp_GetNpc(tuWpiszInstanceNpc); // przypisujemy instance npc do naszej zmiennej.
Przy tzw. "pustych" funkcjach nic nie jest zwracane i nie można ich przypisać do żadnej zmiennej, ją się tylko wywołuje.
FUNC VOID AI_Wait ( VAR C_NPC n0, VAR float n1 ) { };FUNC - słowo, które oznacza, że będzie to funkcja
VOID - tzw. pusta funkcja. - typ funkcji
Wzór na funkcje:
Cytuj
FUNC typ_funkcji nazwa (var int argument, var C_NPC argument2 ) {
// ciało funkcji
};
TYPY - można je dać jako typy funkcji i zmiennych.
  • INT - typ liczbowy, przechowuje liczby
  • STRING - typ tekstowy, przechowuje ciąg znaków ( jakiś tekst )
  • FLOAT - typ zmiennoprzecinkowy, przechowuje liczby jak np. 3.5
Jeśli funkcja posiada któryś z tych typów, to musi zwracać wartość o takim samym typie


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