Broń na Wrzoda 3075 3

O temacie

Autor skszacik

Zaczęty 30.06.2011 roku

Wyświetleń 3075

Odpowiedzi 3

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy

skszacik

Broń na Wrzoda
2011-07-01, 00:09(Ostatnia zmiana: 2011-07-02, 17:37)
Witam. otóż męczy mnie to że wiele ludzi chce zrobić sobie taki skrypcik a nie potrafi. Cóż po wykonaniu poniższych instrukcji będziesz miał Broń na Wrzoda ;)

A Więc zaczynamy od skryptu postaci:

instance None_892_Gosc (Npc_Default)
{
// ------ NSC ------
name = "Gosc na tutka";
guild = GIL_OUT;
id = 945;
voice = 8;
flags       = NPC_FLAG_IMMORTAL;
npctype = NPCTYPE_MAIN;

// ------ Attribute ------
B_SetAttributesToChapter (self, 3); //setzt Attribute und LEVEL entsprechend dem angegebenen Kapitel (1-6)

//----- Protections ----
        protection      [PROT_BLUNT]            =       IMMUNE; //Ważne!
        protection      [PROT_EDGE]             =       IMMUNE; //Ważne!
        protection      [PROT_POINT]            =       IMMUNE; //Ważne!
        protection      [PROT_FIRE]             =       IMMUNE; //Ważne!
        protection      [PROT_FLY]              =       IMMUNE; //Ważne!
        protection      [PROT_MAGIC]            =       IMMUNE; //Ważne!

// ------ Kampf-Taktik ------
fight_tactic = FAI_HUMAN_COWARD; // MASTER / STRONG / COWARD

// ------ Equippte Waffen ------ //Munition wird automatisch generiert, darf aber angegeben werden
EquipItem (self, ItMw_1h_Bau_Axe);

// ------ Inventory ------
B_CreateAmbientInv (self);
CreateInvItems (self, ItPo_Health_02, 1);

// ------ visuals ------ //Muss NACH Attributen kommen, weil in B_SetNpcVisual die Breite abh. v. STR skaliert wird
B_SetNpcVisual (self, MALE, "Hum_Head_Pony", Face_P_Normal03, BodyTex_P, ITAR_BDT_L);
Mdl_SetModelFatness (self, 0);
Mdl_ApplyOverlayMds (self, "Humans_Relaxed.mds"); // Tired / Militia / Mage / Arrogance / Relaxed

// ------ NSC-relevante Talente vergeben ------
B_GiveNpcTalents (self);

// ------ Kampf-Talente ------ //Der enthaltene B_AddFightSkill setzt Talent-Ani abhängig von TrefferChance% - alle Kampftalente werden gleichhoch gesetzt
B_SetFightSkills (self, 40); //Grenzen für Talent-Level liegen bei 30 und 60

// ------ TA anmelden ------
daily_routine = Rtn_Start_892;
};

FUNC VOID Rtn_Start_892 ()
{
TA_Stand_Drinking (05,00,21,00,"TAVERNE");
    TA_Stand_Drinking (21,00,00,02,"TAVERNE");
    TA_Stand_Drinking (00,02,05,00,"TAVERNE");
};




A teraz omówię co do czego:
flags       = NPC_FLAG_IMMORTAL;da nieśmiertelność naszemu "wrzodowi"


protection      [PROT_BLUNT]            =       IMMUNE;
        protection      [PROT_EDGE]             =       IMMUNE;
        protection      [PROT_POINT]            =       IMMUNE;
        protection      [PROT_FIRE]             =       IMMUNE;  
        protection      [PROT_FLY]              =       IMMUNE;
        protection      [PROT_MAGIC]            =       IMMUNE;

Mimo iż jest juz flag = 2 to najlepiej jest dać też to ;)

TA_Stand_Drinking (05,00,21,00,"TAVERNE");
    TA_Stand_Drinking (21,00,00,02,"TAVERNE");
    TA_Stand_Drinking (00,02,05,00,"TAVERNE");
"Wrzód" pije pod tawerną bez przerwy.

Dobra skoro mamy już skrypt postaci to zapisujemy i tworzymy broń.

wszystko jest obojętne. Ważnymi trzema linijkami są:
damageTotal   = 0;
damagetype = DAM_EDGE;
cond_value     =   1;
   

takie najlepiej ustawic. Czyli bron zadaje 0 DMG i wymaga 1 Siły (;d )

Skoro mamy broń to teraz najtrudniejsza część. Efekt, napis i ... śmierć :lol:

Wchodzimy w B_AssesDamage.d
i pod zmienną :
B_BeliarsWeaponSpecialDamage (other, self);
wklejamy to:
if (Npc_HasItems (other, ItMw_Kod_Broni) > 0)
        {
                var C_NPC zmienna; zmienna = Hlp_GetNpc(KodPostaci); //zmienna moze byc jaka chcesz tylko w kazdym miejscu gdzie pisze zmienna musi byc nazwa zmiennej np dales zmienna "pedał" to wszedzie musi byc pedal
                Npc_GetInvItem(other, ItMw_KodBroni);
                var C_ITEM OthWeap2; OthWeap2 = Npc_GetReadiedWeapon(other);
               
                if (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(zmienna))
                && (Hlp_GetInstanceID(OthWeap2) == Hlp_GetInstanceID(item))
                {
                        Npc_ChangeAttribute (self, ATR_HITPOINTS, -1000);
                return;
                };
        };


można pod :
Npc_ChangeAttribute (self, ATR_HITPOINTS, -1000);dać jeszcze kilka funkcji np:

PrintScreen ("Twoj-Text", -1, 45, FONT_SCREEN, 2);
Wld_PlayEffect("Spellfx_XxX", self, self, 1, 1, 1, FALSE );

gdy już to wykonacie zapisujecie wszystko i uruchamiacie grę z parametrem skripte parsen. Przywołujecie Wrzoda, Broń na Wrzoda i dla testu jakiegos stwora i ludzia. Nie pokazałem tak jak czip , bo czip jeszcze wywoływał text po uderzeniu bronią człowieka lub stwora ;)

Liczę na propsy  :ok:
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1960
Propsy797
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Broń na Wrzoda
#1 2011-07-01, 18:26(Ostatnia zmiana: 2011-07-01, 18:32)
Liczę na propsy  :ok:
Człowieku to jest idealnie przepisane z tego tematu
http://themodders.org/index.php?/topic/14242-bron-tylko-na-wrzoda/
i to bez zrozumienia :/

Dałeś wrzodowi nieśmiertelność i jej nie zdejmujesz :/ nie wiem czy to się nie skończy crash`em gry

ooo jeszcze jeden bład :D
               {
                        Npc_ChangeAttribute (self, ATR_HITPOINTS, -1000);
                return;
                };

Po co return ? :D  do tego nie napisałeś wartości dla tejże instrukcji

Ezzam

Ezzam

Użytkownicy
posty391
Propsy356
  • Użytkownicy
I kolejny błąd:
damageTotal             =       0;
        damagetype                      =       DAM_EDGE;
        range                           =       1;
Cytuj
wymaga 1 Siły
Range oznacza zasięg a nie wartość wymaganego atrybutu  :facepalm:
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
A, no racja mój błąd ;) Już poprawiam
 


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