bonusy do zbroi 2567 6

O temacie

Autor pawbuj

Zaczęty 11.01.2012 roku

Wyświetleń 2567

Odpowiedzi 6

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

bonusy do zbroi
2012-01-11, 18:06(Ostatnia zmiana: 2012-01-12, 22:12)
mam skrypt zbroji, która wymaga posiadania siły. dodatkowo zbroja daje bonusy do reputacji (zwiększamy wartość zmiennej) np. w starym Obozie , a kary w Nowym .

pojawia się jednak pewien problem, kiedy to korzystamy tylko  z pierścienia siły , aby  załozyć zbroję . Kiedy ją ściągamy, nie mamy wystarczającej siły i bonus pzostaje.

wydaje mi się najrozsądniejsze zastosowanie tick tocka,który sprawdzi jaką zbroję mamy i ustawi bonusy , wtedy ściągając pierścień, funckja wyowałzdjęcie zbroi.

jednak może ktoś ma lepszy pomysł.
skrypt poniżej:


on_equip = Equip_GRD_ARMOR_H;
on_unequip = UnEquip_GRD_ARMOR_H;
};

FUNC VOID Equip_GRD_ARMOR_H()
{
if (hero.attribute[ATR_STRENGTH] >= 71)
{
Points_OC = Points_OC + 25;
Points_NC = Points_NC - 25;
PrintScreen ("e", 1,25,"PAWBUJ2.TGA",3);//czerwona flaga
PrintScreen ("Reputacja w Starym Obozie : +25", 8,26,"FONT_OLD_10_WHITE.TGA",3);
PrintScreen (ConcatStrings ("Poziom Reputacji w Starym Obozie : ", IntToString(Points_OC)),7,29,"FONT_OLD_10_WHITE.TGA",4);
PrintScreen ("Spełniasz wymagania", 1, 21, _STR_FONT_ONSCREEN, 3 );
}
else
{
AI_UnequipArmor (hero);
PrintScreen ("Za mała siła ", -1, 25, _STR_FONT_ONSCREEN, 3 );
};
};

FUNC VOID UnEquip_GRD_ARMOR_H()
{
if (hero.attribute[ATR_STRENGTH] >= 71)
{
Points_OC = Points_OC - 25;
Points_NC = Points_NC + 25;
};
};
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Proponowałbym dawać i zabierać zawsze. Tylko napisy dawać zależnie od spełniania warunku. Wtedy powinno działać - co prawda osoba która nie spełnia wymagań też otrzyma bonusy, ale natychmiast je straci.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

bonusy do zbroi
#2 2012-01-11, 21:37(Ostatnia zmiana: 2012-01-11, 21:42)
Proponowałbym dawać i zabierać zawsze. Tylko napisy dawać zależnie od spełniania warunku. Wtedy powinno działać - co prawda osoba która nie spełnia wymagań też otrzyma bonusy, ale natychmiast je straci.
nie wiem czy dobrze myslę, ale chyba o to chodzi. leci props - tym samym uniknąłem długiego rozpisywania się w tick tocku.

 no moze wtedy po zdjęciu pierscienia, musielibysmy zdjąć armor,ale nie wiem czy zbyt duża liczba warunków nie obciąży silnika.

FUNC VOID Equip_GRD_ARMOR_H()
{
Points_OC = Points_OC + 25;
Points_NC = Points_NC - 25;

if (hero.attribute[ATR_STRENGTH] >= 71)
{
PrintScreen ("e", 1,25,"PAWBUJ2.TGA",3);//czerwona flaga
PrintScreen ("Reputacja w Starym Obozie : +25", 8,26,"FONT_OLD_10_WHITE.TGA",3);
PrintScreen (ConcatStrings ("Poziom Reputacji w Starym Obozie : ", IntToString(Points_OC)),7,29,"FONT_OLD_10_WHITE.TGA",4);
PrintScreen ("Spełniasz wymagania", 1, 21, _STR_FONT_ONSCREEN, 3 );
}
else
{
AI_UnequipArmor (hero);
PrintScreen ("Za mała siła ", -1, 25, _STR_FONT_ONSCREEN, 3 );
};
};

FUNC VOID UnEquip_GRD_ARMOR_H()
{
Points_OC = Points_OC - 25;
Points_NC = Points_NC + 25;

};
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

bonusy do zbroi
#3 2012-01-11, 21:42(Ostatnia zmiana: 2012-01-11, 21:43)
Cytuj
no moze wtedy po zdjęciu pierscienia, musielibysmy zdjąć armor,ale nie wiem czy zbyt duża liczba warunków nie obciąży silnika.
Lol, nic się nie martw i dawaj tych warunków ile chcesz. Obciążać silnik mogą nakładające się bardziej skomplikowane akcje, nie proste sprawdzanie warunków.

Poprawiłem ci znaczniki [ code ]

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

bonusy do zbroi
#4 2012-01-11, 21:45(Ostatnia zmiana: 2012-01-11, 21:47)
trochę tych warunków rzeczywiście mam w tick tocku. najbardziej spowalnia isnertowanie npc,nie wiem jak z vobami czy itemami, ale to już opowieść na inny temat:)


BTW nie wiem co mam z tym wstawianiem w code,wybieram opcję: dodaj kod ,jednak nie mogę wstawić skryptu tak jak wy.
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
A nie lepiej po prostu do unequip pierścienia dać warunek że jeżeli mamy założoną zbroję która wymaga więcej siły niż mamy bez pierścienia to ona się ściąga?
 
Ż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

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

bonusy do zbroi
#6 2012-01-12, 22:02(Ostatnia zmiana: 2012-01-12, 22:11)
praktyczne zastosowanie porady sawika - wklejamy do unequip kazdego pierścienia siły samo wywoałenie funkcji
func void Check_ArmorReq ()
{
armor_in_use = Npc_GetEquippedArmor (hero);
if (armor_in_use.COUNT[0] > hero.attribute[ATR_STRENGTH])
{
AI_UnequipArmor (hero);
};
};

w globalach oczywiście zdefiniowana zmienna var C_Item armor_in_use;
 


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