Skrypt Ulu mulu 2183 5

O temacie

Autor

Zaczęty 5.10.2008 roku

Wyświetleń 2183

Odpowiedzi 5

Xawier
  • Gość

Xawier
Gość

Skrypt Ulu mulu
2008-10-05, 19:01(Ostatnia zmiana: 2008-10-07, 15:33)
Witam wszystkich po raz kolejny.
Chciałbym się zapytać o...
Ulu mulu kiedy je nosimy to orkowie nas nie atakują no więc fajnie wchodze w itemy znajduje ulu mulu kopiuje bla bla bla zmienia model nazwe kod instance itp włączyam gre, wczytuje kod na przywołanie mojej broni i jest wszystko fajnie zakładam ją ide do miasta orków a oni jeb we mnie i leją mnie.I tu moje pytanie gdzie mam wpisać skrypt odpowiadający za to by orkowie mnie nie atakowali kiedy nosze daną broń ;d
 

Oven
  • Gość
OOO bracie trafiłeś w sedno z chęcią bym się dowiedział gdzie musimy zmienić by np orkowie nie atakowali mnie gdy nosimy łuk diego ;d
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Skrypt Ulu mulu
#2 2009-08-09, 12:57(Ostatnia zmiana: 2009-08-09, 13:01)
w _Work\Data\Scripts\Content\AI\AI_Intern\C_Functions.d znalazłem dwie podobne funkcje "C_OtherIsToleratedEnemy i "B_TolerateEnemy". Aktywują się one dla orków kiedy mamy założone UluMulu. Wystarczy dodać podobne funkcje, ale dla przedmiotów z innym INSTANCE. Skrypty są dość trudne do zrozumienia (przynajmniej dla mnie) ale na szczęście w miarę krótkie. Jest tam taki fragment:
if (weaponInstance == UluMulu)wystarczy albo zmienić na instance twojej broni albo zmodyfikować to tak aby było kilka takich możliwych broni.

Dracon

Dracon

Użytkownicy
posty1068
Propsy904
Profesjabrak
  • Użytkownicy
Cytat: Avallach\'
(...)zmodyfikować to tak aby było kilka takich możliwych broni.
if (weaponInstance == UluMulu)||(weaponInstance == instance1)||(weaponInstance == instance2)Coś takiego?
 
,,Dobry, to człowiek, który nie ukrywa siedzącego w nim zwierzęcia. A taki co usiłuje udawać dobrego, jest wręcz niebezpieczny. Najgroźniejsi są ci, którzy sami głęboko wierzą, że są dobrzy. Odrażający, ohydny przestępca może zamordować jednego człowieka, dziesięciu, stu, ale nigdy nie zabija milionów. Miliony mordują ci, którzy mają się za samą dobroć.''

Wiktor Suworow, Akwarium

Gamer

Gamer

Użytkownicy
posty245
Propsy20
Profesjabrak
  • Użytkownicy
To raczej trzeba nowe funkcje, wg. mnie tak skopiujemy orginał i robimy tak
//////////////////////////////////////////////////////////////////////////
func int C_OtherIsToleratedEnemy(var C_NPC slf, var C_NPC oth)//zmieniamy nazwę funkcji na inną
{
PrintDebugNpc (PD_ZS_DETAIL, "C_OtherIsToleratedEnemy");//tu zmieniamy na tą zmienioną to co w ""

//-------- Orkverfolger --------
if (C_NpcIsOrc(slf))
{
PrintDebugNpc (PD_ZS_DETAIL, "...'self' ist Ork!");

//---- Ulu-Mulu in der Hand ? ----
var C_ITEM weapon;
var int weaponInstance;
weapon = Npc_GetReadiedWeapon(oth);
if (Hlp_IsValidItem(weapon))
{
weaponInstance =Hlp_GetInstanceID(weapon);
PrintDebugString(PD_ZS_DETAIL, "...gezogene Waffe von 'other': ", weapon.name);
if (weaponInstance == UluMulu)//tu zmieniamy instancje na naszą stworzoną broń
{
PrintDebugNpc(PD_ZS_DETAIL, "...true!");
return TRUE;
};
};

//---- Ulu-Mulu equipped ? ----
weapon = Npc_GetEquippedMeleeWeapon (oth);
if (Hlp_IsValidItem(weapon))
{
weaponInstance =Hlp_GetInstanceID(weapon);
PrintDebugString(PD_ZS_DETAIL, "...equippte Waffe von 'other': ", weapon.name);
if (weaponInstance == UluMulu)// tu też
{
PrintDebugNpc(PD_ZS_DETAIL, "...true!");
return TRUE;
};
};
};

PrintDebugNpc (PD_ZS_DETAIL, "...false!");
return FALSE;
};

func void B_TolerateEnemy(var C_NPC slf, var C_NPC oth)// tu zmieniamy na inną nazwe funkcji niż poprzednią
{
PrintDebugNpc (PD_ZS_DETAIL, "B_TolerateEnemy");//a tu na tą co przed chwilą zmieniliśmy

//-------- Orkverfolger --------
if (C_NpcIsOrc(slf))
&& (Npc_GetDistToNpc(slf,oth) > HAI_DIST_ASSESSTOLERATEDENEMY)
{
PrintDebugNpc (PD_ZS_DETAIL, "...'self' ist Ork und nah genug dran!");

var int npcInstance;
npcInstance = Hlp_GetInstanceID(slf);

//-------- Aufreger --------
if (npcInstance == OrcScout)
|| (npcInstance == OrcWarrior1)
|| (npcInstance == OrcWarrior2)
{
PrintDebugNpc (PD_ZS_DETAIL, "...'self' ist anderer Ork!");
if !Npc_IsInState(slf, ZS_Upset)
{
PrintDebugNpc (PD_ZS_DETAIL, "...'self' noch nicht in ZS_FollowPC");
Npc_ClearAIQueue(slf);
AI_StandUp (slf);
AI_StartState (slf, ZS_Upset, 1, "");
};
}

//-------- Verfolger --------
else if (npcInstance == OrcWarrior3)
{
PrintDebugNpc (PD_ZS_DETAIL, "...'self' ist Ork Tempelkrieger!");
if !Npc_IsInState(slf, ZS_FollowPC)
{
PrintDebugNpc (PD_ZS_DETAIL, "...'self' noch nicht in ZS_FollowPC");
Npc_ClearAIQueue(slf);
AI_StandUp (slf);
AI_StartState (slf, ZS_FollowPC, 1, "");
};
};
};
};


I tak oto powinno działać.
 
89% graczy uważa że najważniejsza jest grafika jeśli należysz do tych 11% wklej to do podpisu!

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Skrypt Ulu mulu
#5 2009-08-14, 17:17(Ostatnia zmiana: 2009-08-14, 17:20)
To raczej trzeba nowe funkcje
Ja miałem na myśli raczej rozwiązanie takie jak zrozumiał Dracon.
if (weaponInstance == UluMulu)||(weaponInstance == instanceinnejbroni)Nie można tak po prostu skopiować sobie funkcji i zmodyfikować oryginał bo gra się wtedy czepia że obie mają ten sam identyfikator. Znak || oznacza "lub", więc dzięki niemu obie bronie będą dawać nam immunitet.
To wyjście jest prostsze i krótsze, a co za tym idzie ryzyko popełnienia błędu znacznie maleje. Po co szukać drogi na około?


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