Magiczna Broń 4833 3

O temacie

Autor janss

Zaczęty 5.03.2009 roku

Wyświetleń 4833

Odpowiedzi 3

janss

janss

Użytkownicy
posty7
  • Użytkownicy

janss

Magiczna Broń
2009-03-05, 21:01(Ostatnia zmiana: 2009-03-06, 21:44)
Chciłem zrobic magiczna bron na podstawie tutka Kazzmira ale przy resparowaniu skryptów wyskakuje błąd U:PAR Unknow Indentifier WAYPONREACTION (line 3)
Oto moja funkcja ktora napisałem z tutkiem:

Cytuj
func void weaponreaction(var c_npc attacker,var c_npc defender)
{
if(!Npc_IsInFightMode(attacker,FMODE_MELEE))
{return;};
var c_item weapon;
weapon=Npc_GetReadiedWeapon(attacker);
if(Hlp_IsItem(weapon,SUPERSWORD))
{
Wld_PlayEffect("SPELLFX_ICECUBE",self,self,0,50,DAM_MAGIC,FALSE);

PrintDebugNpc( PD_MAGIC, "B_AssessMagic ...IceCube oder IceWave" );   

   Npc_SendPassivePerc(self, PERC_ASSESSFIGHTSOUND, self, other);

   if ( !(   (self.guild   == GIL_SLF)       ||
         (self.guild == GIL_DEMON)       ||
         (self.guild == GIL_GOLEM)       ||
         (self.guild == GIL_SWAMPSHARK)    ||
         (self.guild == GIL_TROLL)) )    &&
         ( ! (C_BodystateContains(self,BS_SWIM)) ||   (C_BodystateContains(self,BS_DIVE)) )
   {
   Npc_ClearAIQueue(self);
   AI_StartState   (self, ZS_MagicFreeze, 0, "");
   };

};

else if(Hlp_IsItem(weapon,SUPERSWORD))
{
func void B_Orc_AssessCombatDamage()
{
weaponreaction(other,self);
};

func int CmpNpc(var c_npc p1,var c_npc p2)
{
var int old1;
var int old2;
var int result;
old1=p1.aivar[0];
old2=p2.aivar[0];
p1.aivar[0]=0;
p2.aivar[0]=1;
result=p1.aivar[0];
p1.aivar[0]=old1;
p2.aivar[0]=old2;
return result;
};

func void Sbd_is_damaged()
{
//ERRATA if (self==other&&hero==victim)
    if(Npc_IsPlayer(victim)&&CmpNpc(self,other))
        {weaponreaction(self,hero);};
};

A oto cześci plikow z weaponreaction

B_CombatReactToDamage
func void B_CombatReactToDamage ()
{
   weaponreaction(other,self);
   PrintDebugNpc      (PD_ZS_FRAME, "B_CombatReactToDamage" );   
   
   PrintGlobals       (PD_ZS_CHECK);

ZS_ReactToDamage
func void ZS_ReactToDamage ()
{
   weaponreaction(other,self);
   PrintDebugNpc      (PD_ZS_FRAME,   "ZS_ReactToDamage" );         
   PrintGlobals      (PD_ZS_CHECK);
   C_ZSInit();

B_MM_ReactToCombatDamage
func void B_MM_ReactToCombatDamage ()
{
   weaponreaction(other,self);
    PrintDebugNpc(PD_MST_FRAME,"B_MM_ReactToCombatDamage");

B_MM_ReactToDamage
func void B_MM_ReactToDamage ()
{
   weaponreaction(other,self);
    PrintDebugNpc   (PD_MST_FRAME,"B_MM_ReactToDamage");
    PrintGlobals   (PD_MST_CHECK);

B_Orc_AssessDamage
func void B_Orc_AssessDamage()
{
   weaponreaction(other,self);
   PrintDebugNpc( PD_ORC_FRAME, "B_Orc_AssessDamage" );

I nie widze błędu wiec prosze o tych co juz zrobili taką broń i o tych co chca pomóc


//Edit by Bula: 3 punkty regulaminu jak w morde strzelił. Poprawiam.
 

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
plik z definicją weaponreaction musi być przed plikami, które tej funkcji używają (w gothic.src).
swoją drogą to mój tutek.
 

janss

janss

Użytkownicy
posty7
  • Użytkownicy
Dobra udało mi się stwożyć broń magiczną dzieki postów kilku ludzi.Jest tylko mały problem:Miecz nie zadaje obragenia od czaru tylko od samego siebie a czar pokazuje sie jako tylko animacja :]  .Wie ktoś jak zrobić żeby czar zadawał obrazenia bez robienia nieskonczonej pętli w przeciwniku?
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Dobra udało mi się stwożyć broń magiczną dzieki postów kilku ludzi.Jest tylko mały problem:Miecz nie zadaje obragenia od czaru tylko od samego siebie a czar pokazuje sie jako tylko animacja :P  .Wie ktoś jak zrobić żeby czar zadawał obrazenia bez robienia nieskonczonej pętli w przeciwniku?
Wld_PlayEffect("SPELLFX_ICECUBE",self,self,0,50,DAM_MAGIC,FALSE);Tu na końcu wystarczyło dać TRUE zamiast FALSE. Właśnie ostatni parametr decyduje czy czar ma być tylko efektem wizualnym czy ma też zadawać obrażenia.


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