Zlecenie zabójstwa "potwora" 5910 13

O temacie

Autor chicken

Zaczęty 28.04.2013 roku

Wyświetleń 5910

Odpowiedzi 13

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

Zlecenie zabójstwa "potwora"
2013-04-28, 09:42(Ostatnia zmiana: 2013-04-28, 13:26)
Więc tak.. Zrobiłem dialog + misja (trzeba zabić 5 błotnych węży) ale po zabiciu 1 węża misja już jest wykonana i chciałbym wiedzieć jak to można zrobić? Wygląda to tak :
INSTANCE DIA_GorPak_HELLO4 (C_INFO)
{
   npc          = TPL_1426_GorPak;
   nr           = 4;
   condition    = DIA_GorPak_HELLO4_Condition;
   information  = DIA_GorPak_HELLO4_Info;
   permanent = FALSE;
   description = "Błotne węże załatwione.";
};

FUNC INT DIA_GorPak_HELLO4_Condition()
{
   if (Npc_KnowsInfo (other, DIA_GorPak_HELLO2))
    && (MIS_CH1_czystki == LOG_RUNNING)
    {
    return TRUE;
    };
};


FUNC VOID DIA_GorPak_HELLO4_Info()
{
    if (Npc_IsDead(swampshark))
    && (Npc_IsDead(swampshark))
    && (Npc_IsDead(swampshark))
    && (Npc_IsDead(swampshark))
    && (Npc_IsDead(swampshark))
{
    AI_Output (other, self ,"DIA_GorPak_HELLO4_15_01"); //Błotne węże załatwione.
    AI_Output (self, other ,"DIA_GorPak_HELLO4_03_02"); //To na razie tyle. Trzymaj swoją nagrodę.
    B_LogEntry                     (CH1_czystki,"Nie było łatwo z wężami ale jakoś se poradziłem.");
    Log_SetTopicStatus       (CH1_czystki, LOG_SUCCESS);
    MIS_CH1_czystki = LOG_SUCCESS;
        CreateInvItems (self, ItMiNugget, 100);
        B_GiveInvItems (self, other, ItMiNugget, 100);
    CreateInvItems (self, ItMw_windsword, 1);
        B_GiveInvItems (self, other, ItMw_windsword, 1);
    B_GiveXP (500);
}

dawałem nawet nad returnem ale tak samo to wygląda... i czy można zrobić tak, że trzeba zabic 5 razy tego samego moba czy trzeba skopiować tego swampsharka(wąż błotny) i w środku tego pliku pozmieniać kilka rzeczy? (tak wiem, że trzeba do startupa dać nowego moba)

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
if (Npc_IsDead(swampshark))
&& (Npc_IsDead(swampshark))
&& (Npc_IsDead(swampshark))
&& (Npc_IsDead(swampshark))
&& (Npc_IsDead(swampshark))
Równie dobrze możesz napisać:
if (Npc_IsDead(swampshark))
Albo robisz 5 różnych błotnych węży, albo przy zabiciu zliczasz je. Możesz jeszcze popatrzyć do dialogu w G1, w którym ktoś zleca zabicie krwiopijców.

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

Zlecenie zabójstwa "potwora"
#2 2013-04-28, 09:47(Ostatnia zmiana: 2013-04-28, 09:56)
A pamiętasz może kto zleca? :p
Edit: Dobra już nic. ^^

gothic1210
  • Gość
U Virana jest warunek z wykrywaniem krwiopijców w okolicy.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
   if (Npc_IsDead(swampshark))
    && (Npc_IsDead(swampshark))
    && (Npc_IsDead(swampshark))
    && (Npc_IsDead(swampshark))
    && (Npc_IsDead(swampshark))
Co za kreatywność :lol2:  Skąd w ogóle wniosek że gra sprawdzi akurat te węże o które ci chodzi? Tego typu funkcje są przeznaczone do używania jedynie z npc o unikatowych identyfikatorach. W tym przypadku zwróci true jeśli kiedykolwiek gdziekolwiek w tym świecie zabiłeś węża błotnego.

Jeśli chodzi ci o zabicie dowolnych 5 węży gdziekolwiek, to dodaj w zs_dead warunek sprawdzający czy self (umierający) ma gildię błotnego węża, a jak tak, to zwiększający wartość globalnej zmiennej typu int, która będzie twoim licznikiem. Będziesz mógł od razu dodać warunek, że jeśli licznik wynosił 4, to od razu ustawiasz zadanie na wykonane i dodajesz wpis do dziennika żeby gracz wiedział że już może iść po odbiór nagrody. Pierwszy z warunków może dodatkowo sprawdzać czy zadanie jest aktywne. Wtedy, węże zabite przed wzięciem tego zadania nie byłyby wliczane.

Jeśli chodzi ci o zabicie węży z konkretnego miejsca, to albo możesz wziąć powyższą metodę i dodatkowo sprawdzać odległość od waypointa w tamtej okolicy, albo użyć Npc_IsDead na unikatowych wężach.
W tym celu skopiuj istniejącą definicję tego potwora w skryptach i kopiom zmień identyfikatory, np dodając do nich liczby. Treść nie musi być zmieniana i może być bardzo prosta (chyba niezbędne były tylko visual i id/aivar z id, reszta jest brana z prototypu.

Nekron197

Nekron197

Użytkownicy
posty192
Propsy13
  • Użytkownicy
Ja na twoim miejscu zrobił bym to co Avallach mówi i w skrypcie dialogu dodawał poprostu te linijki
if(Npc_isDead(swampshark1))
&&if(Npc_IsDead(swampshark2))
i tak dalej.
 

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh

Toworish

Zlecenie zabójstwa "potwora"
#6 2013-04-29, 11:19(Ostatnia zmiana: 2013-04-29, 12:06)
Hmm po co robić aż pięć tych węży? przecież można zrobić chyba jednego nowego węża np swampshark_1 i dodać go pięć razy na mapie a w skrypcie napisać tak:

if (Npc_IsDead(swampshark_1) >=5) chyba powinno trybić dobrze?

edit:
@Adanos spoko myślałem że tak można xD
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.


Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
toworish, nie.
Ale ma rację że nie trzeba robić ich pięciu, wystarczy jeden, zmienna i edycja ZS_Dead (czy tam ZS_MM_Dead).
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
To inna sprawa, w każdym razie myli się na nieznanych podstawach opierając twierdzenie że funkcja npc_ISdead zwraca liczbę śmierci npc zamiast po prostu tak/nie, jak sugeruje nazwa (i jak, o ile wiem, działa to rzeczywiście). O edycji zs_dead pisałem już wcześniej. Wówczas nawet w ogóle nie potrzeba robić oddzielnego identyfikatora, wystarczy sprawdzanie odległości od waypointa koło którego te bestie mają być.

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Mógłbyś troche uprościć język? :D  bo dopiero od nie dawna zaczelem robic moda.

MrocznyPaladyn

MrocznyPaladyn

Użytkownicy
posty47
Propsy12
  • Użytkownicy
Kolego zrób to tak jak mówia 5różnych węży dlatego że jestes od niedawna w skryptach ciężko Ci będzie zrozumiec o czym pisze Adanos. Avallach i reszta.
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

Zlecenie zabójstwa "potwora"
#12 2013-05-05, 11:52(Ostatnia zmiana: 2013-05-05, 20:53)
Skąd moge wziąść wszystkie tekstury "tga" do gothica 1?

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

Zlecenie zabójstwa "potwora"
#13 2013-05-05, 12:07(Ostatnia zmiana: 2013-05-07, 15:44)
Cytuj
TEMAT DO ZAMKNIĘCIA
Wszystko jest wyjaśnione


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