Pomoce przy tworzeniu
http://themodders.org/index.php?topic=12139.msg121726#msg121726http://themodders.org/index.php?topic=12178.msg122053#msg122053Robię na przykładzie Necka w G1
Najpierw wybieramy pancerz i robimy z niego 2 przedmioty :
- pancerz bez mainflag zbroi (aby dało się go zabrać) zbroja fałszywka
- przedmiot z flags=ITEM_MULTI|ITEM_MISSION (aby postać nam nie znikała przy rozkładaniu)
przedmiot1:
INSTANCE GRD_ARMOR_Lmam(C_Item)
{
name = "Lekka zbroja Strażnika";
mainflag = ITEM_KAT_NF;//aby dało się zabrac
flags = 0;
protection [PROT_EDGE] = 45;
protection [PROT_BLUNT] = 45;
protection [PROT_POINT] = 5;
protection [PROT_FIRE] = 20;
protection [PROT_MAGIC] = 0;
value = VALUE_GRD_ARMOR_L;
wear = WEAR_TORSO;
visual = "grdl.3ds";
visual_skin = 0;
material = MAT_LEATHER;
description = name;
TEXT[1] = NAME_Prot_Edge; COUNT[1] = protection [PROT_EDGE];
TEXT[2] = NAME_Prot_Point; COUNT[2] = protection [PROT_POINT];
TEXT[3] = NAME_Prot_Fire; COUNT[3] = protection [PROT_FIRE];
TEXT[4] = NAME_Prot_Magic; COUNT[4] = protection [PROT_MAGIC];
TEXT[5] = NAME_Value; COUNT[5] = value;
};
przedmiot2:
INSTANCE nie_znikaj(C_Item)
{
name = "Magia Avallacha ^^ ";
mainflag = ITEM_KAT_ARMOR;//aby nie dało sie zabrać z ekwipunku
flags = ITEM_MULTI|ITEM_MISSION;//aby postać nie znikała (czyli to co Avallach nazwał magią (na pewno wie o co chodzi ale nie chciało mu się tłumaczyć :) ) po prostu itemy MISSION ze względu na swoją wagę nie mogą być skasowane)
value = VALUE_VLK_ARMOR_L;
wear = WEAR_TORSO;
visual = "vlkl.3ds";
visual_skin = 0;
material = MAT_LEATHER;
};
jak mamy przedmioty dajemy je naszej postaci która posiada pancerz
CreateInvItem (self, GRD_ARMOR_Lmam);
CreateInvItem (self, nie_znikaj);
jakby ktoś nie zajarzył dajemy je do Neka
do Story_Globals.d to
var int dzien;
a do Startup.d to
dzien=0;
będzie to nasza zmienna czasu na razie przypisujemy 0 żeby zachować neutralność bo nie ma dnia 0 w późniejszych krokach przypiszemy właściwy dzien
teraz idziemy dalej aby to wszystko działało trzeba zrobić skrypt który będziemy wywoływać co jakiś określony czas np.1-2 sek
jak zrobić uruchamianie naszego skryptu??
Pomoc jest tutaj
http://themodders.org/index.php?/topic/89-wywolywanie-skryptu-co-xx-czyli-wywolanie-skryptu-co-18-sekundy/a więc przejdźmy do pisania samego skryptu który będziemy wywoływać
var C_NPC nekk; nekk = Hlp_GetNpc(GRD_282_Nek); //zmienna NPC przyda się w kolejnych krokach
//(if)jeśli mamy w ekwipunku fałszywkę
if (Npc_HasItems(hero, GRD_ARMOR_Lmam)>=1){
CreateInvItem (hero, GRD_ARMOR_L); //to utwórz prawdziwą
Npc_RemoveInvItem (hero, GRD_ARMOR_Lmam); //i usuń fałszywkę
//(if)jeżeli NEK NIE ma fałszywki (to jest po to jak by było więcej niż 1 NPC)
if (!Npc_HasItems(nekk, GRD_ARMOR_Lmam)>=1){
Mdl_SetVisualBody (nekk,"hum_body_Naked0", 0, 0,"Hum_Head_FatBald", 2, 1, -1); //usuwanie zbroi z wyglądu NPC
Npc_RemoveInvItem (nekk, GRD_ARMOR_L); //usuwanie właściwej zbroi NPC z ekwipunku
PrintScreen ("bez zbroji", -1,-1,"font_old_20_white.tga",2);
dzien=Wld_GetDay(); //dzień zabrania zbroi (rozpoczyna proces gnicia)
};
};
pierwsza cześć skryptu jeśli mamy do załatwienia 2 NPC kopiujemy drugi IF i wstawiamy go pod nim
czyli mamy już napisane w jaki sposób zabieramy zbroje to teraz nam został proces gnicia ja zrobiłem tylko 2 etapy szkielet a potem sama bryłka rudy zostająca po całej postaci
//1 dzień
if((dzien+1) == Wld_GetDay()){
Mdl_SetVisualBody (nekk,"Ske_Body3",DEFAULT,DEFAULT,"", DEFAULT, DEFAULT,-1); //zmiana w kościotrupa
PrintScreen ("trup", -1,-1,"font_old_20_white.tga",2);
};
//2 dzień
if((dzien+2) == Wld_GetDay()){
if (Npc_HasItems(nekk, nie_znikaj)>=1){
Npc_RemoveInvItem (nekk, nie_znikaj); //spowoduje usuniecie blokady usunięcia postaci
Wld_InsertItem (ItMiNugget, "LOCATION_15_IN_2"); //spowoduje pozostawienie bryłki rudy po postaci fajnie by było dać tam np. kosc goblina z G2 ;)
};
PrintScreen ("usun", -1,-1,"font_old_20_white.tga",2);
};
możemy zrobić ile chcemy etapów analogicznie do tego
http://pl.wikipedia.org/wiki/Analogia (w razie czego dla nie kumatych)
te 2 skrypty dajemy do
func void tick_tock()
{
};
chodź dla kumatych mała podpowiedz aby nie obciążać procka 2 cześć skryptu może powędrować do monologu spania ;)
Dziękuje za uwagę jeśli się przydało to daj łapkę do góry (Propsa)
zapraszam tez do odwiedzenie tematu mojej modyfikacji
http://themodders.org/index.php?/topic/8801-sekrety-kolonii/w razie kopiowania autora możecie podać przy używaniu w modach nic nie piszcie bo potem za dużo osób ma moje gg ;p