Wymagania broni 2953 7

O temacie

Autor WayneBlack

Zaczęty 27.09.2016 roku

Wyświetleń 2953

Odpowiedzi 7

WayneBlack

WayneBlack

Użytkownicy
posty30
Propsy6
ProfesjaSkrypter
  • Użytkownicy
Hejo! Zamęczę was... ale dobrze, przyda wam się trochę, nie? No. To pewnie kolejny problem, który rozwiążę sam, ale pytanie z prośbą o pomoc tak właśnie na mnie działa. Do rzeczy:

w itemach macie podane ich ogólne parametry - jak obrażenia, wartość, zasięg... i wymagania. Bronie podstawowo wymagają siły, niektóre zręczności, dystansowe podobnie. A chciałem zrobić tak, by właśnie bronie dystansowe zamiast wymagać siły (kusze) i zręczności (łuki), wymagały procentów w posługiwaniu się nimi.

Żeby nie było, że nie próbowałem:
cond_atr[2]    = NPC_TALENT_CROSSBOW;
cond_value[2]  = 30;
To dla kuszy. Tylko że wskazana kusza i tak z jakichś powodów wymagała siły. Przejrzałem skrypty i wiem, że jest jeszcze "REAL_TALENT_CROSSBOW", ale wpisanie tego w kodzie wywalało błąd.

Ktoś? Coś?
 

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
W klasie oCNpc masz tabicę która przyjmuje wartość 8. Nie można jej modyfikować, ale można przypisać do niej następujące atrybuty:
const int ATR_HITPOINTS =  0; // Lebenspunkte
const int ATR_HITPOINTS_MAX =  1; // Max. Lbenspunkte
const int ATR_MANA =  2; // Mana Mana
const int ATR_MANA_MAX =  3; // Mana Max

const int ATR_STRENGTH =  4; // Stärke
const int ATR_DEXTERITY =  5; // Geschick
const int ATR_REGENERATEHP =  6; // Regenerierung von HP alle x sekunden
const int ATR_REGENERATEMANA =  7;   // Regenerierung von Mana alle x sekunden

Raczej aby broń wymagała talentu w kuszy należy albo zrobić coś w funkcji on_Equip Un_Equip lub wykorzystać niewykorzystane zmienne z tablicy. I przypisać do nich wartoś naszego HitChance.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

WayneBlack

WayneBlack

Użytkownicy
posty30
Propsy6
ProfesjaSkrypter
  • Użytkownicy
OnEquip i UnEquip to raczej słaby pomysł, skoro te funkcje działają podczas zakładania/zdejmowania przedmiotu, a chodzi o wymagania do jego założenia. Nie sądzisz?

A niewykorzystanych nie mogę użyć, bo w swoich skryptach już ich używam... więc z tej tabeli wszystko jest w użyciu.
 

Szmyk

Szmyk

Użytkownicy
posty64
Propsy58
Profesjabrak
  • Użytkownicy
Ale można w tych funkcjach wstawić jakiś warunek i wtedy można zdjąć broń.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
on_equip:
if (self.hitchance[1h] < 65)
{
     AI_UnequipWeapons(self);
};

Pisałem z pamięci. Musisz tylko poprawić błędy napisane przeze mnie.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

WayneBlack

WayneBlack

Użytkownicy
posty30
Propsy6
ProfesjaSkrypter
  • Użytkownicy

WayneBlack

Wymagania broni
#5 2016-09-27, 14:05(Ostatnia zmiana: 2016-09-27, 14:11)
Pomijając fakt, że napisałeś to dla broni jednoręcznej, to chyba niezły pomysł...

Jak zamiast "self.hitchance[1h]" napiszę "self.hitchance[crossbow]" to wyskakuje błąd. GMDK pisze, że właśnie tej frazy (crossbow) nie rozumie w tej linijce kodu.

Spróbuję tam wstawić "NPC_TALENT_CROSSBOW" między nawiasy kwadratowe.

Post połączony: 2016-09-27, 14:11
Wróciłem!

Działa idealnie... co prawda zdejmuje KAŻDĄ broń, jak spróbuje się założyć, ale to nie problem. Przynajmniej nie dla mnie.
 

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
self.hitchance[1h]
Powinno być:
self.hitchance[1] - jednoręczna
self.hitchance[2] - Dwuręczna
self.hitchance[3] - Łuk
self.hitchance[4] - Kusza
 :ok:
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

WayneBlack

WayneBlack

Użytkownicy
posty30
Propsy6
ProfesjaSkrypter
  • Użytkownicy
U mnie jest tak:
INSTANCE ItRw_Mil_Crossbow(C_Item)
{


name = "Kusza";

mainflag = ITEM_KAT_FF;
flags = ITEM_CROSSBOW;
material = MAT_WOOD;

value = Value_MilArmbrust;

damageTotal = 60;
damagetype = DAM_POINT;
munition = ItRw_Bolt;
cond_atr[2]    = ATR_STRENGTH;
cond_value[2]  = 10;
visual = "ItRw_Mil_Crossbow.mms";

on_equip = Equip_Mil_Crossbow;

description = name;
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = "Wymaga 30% w posługiwaniu się kuszami";
TEXT[5] = NAME_Value; COUNT[5] = value;
};

FUNC VOID Equip_Mil_Crossbow()
{
if (self.hitchance[NPC_TALENT_CROSSBOW] < 30)
{
      AI_UnequipWeapons(self);
};
};
I działa. Więc... spoko. Teraz tylko poustawiać wszystko jak należy... he he
 


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