Forums
Games
Cyberpunk 2077 Thronebreaker: The Witcher Tales GWENT®: The Witcher Card Game The Witcher 3: Wild Hunt The Witcher 2: Assassins of Kings The Witcher The Witcher Adventure Game
Jobs Store Support Log in Register
Forums - CD PROJEKT RED
Menu
Forums - CD PROJEKT RED
  • Najnowsze
  • AKTUALNOŚCI
  • DZIAŁ OGÓLNY
    WIEDŹMIN GRA PRZYGODOWA
  • FABUŁA
    WIEDŹMIN WIEDŹMIN 2 WIEDŹMIN 3 WIEDŹMIŃSKIE OPOWIEŚCI
  • ROZGRYWKA
    WIEDŹMIN WIEDŹMIN 2 WIEDŹMIN 3 MODY (WIEDŹMIN) MODY (WIEDŹMIN 2) MODY (WIEDŹMIN 3)
  • DZIAŁ TECHNICZNY
    WIEDŹMIN WIEDŹMIN 2 (PC) WIEDŹMIN 2 (XBOX) WIEDŹMIN 3 (PC) WIEDŹMIN 3 (PLAYSTATION) WIEDŹMIN 3 (XBOX) WIEDŹMIN 3 (SWITCH)
  • SPOŁECZNOŚĆ
    TWÓRCZOŚĆ FANÓW (ŚWIAT WIEDŹMINA) TWÓRCZOŚĆ FANÓW (ŚWIAT CYBERPUNKA) INNE GRY
  • RED Tracker
    Cyberpunk Seria gier Wiedźmin GWINT
WIEDŹMIN
WIEDŹMIN 2
WIEDŹMIN 3
MODY (WIEDŹMIN)
MODY (WIEDŹMIN 2)
MODY (WIEDŹMIN 3)
Menu

Register

Przerwanie walki

+
D

debren

Senior user
#1
Aug 16, 2008
Przerwanie walki

W jaki sposób przerwać walkę i np. odpalić dialog? Próbowałem podpiąć skrypty pod zdarzenia onDamaged, onHeartbeat, onEndCombatRound, ale wygląda na to, że w ogóle nie są uruchamianeEDIT:Udało się osiągnąć zamierzony efekt przez wstawienie skryptu do zdarzenia onHeartbeat obszaru. Ale to trochę nieeleganckie. Może ktoś zna lepszy sposób?
 
A

ailinon

Senior user
#2
Aug 16, 2008
Choć to bardzo nieintuicyjne, wpisanie skryptów w typowe pola postaci gdy wybrany jest zestaw Default... powoduje nieużywanie tych wybranych, tylko domyślnych. Jedynym wyjściem jest wlepienie swojego skryptu w OnUserEvent, treści podobnej do tej:
Code:
void main(){	if (GetUserDefinedEventNumber()==CN_USER_ON_HEARTBEAT) {		PrintString("OMG pikawa mi pika!");	}}
-- Sinus
 
D

debren

Senior user
#3
Aug 17, 2008
Wkleiłem Twój kod do zdarzenia onUserDefined postaci, ale wyrzuca błąd: NWNScript Compiler: q03_mietek_f.nss(3): ERROR: VARIABLE DEFINED WITHOUT TYPEWygląda na to, że nie zna zmiennej CN_USER_ON_HEARTBEAT. Czy powinienem zainkludować jakiś plik?Poza tym jakoś nie mogę zrozumieć mechaniki działania tego skryptu. Funkcja GetUserDefinedEventNumber() zwraca id akcji zdefiniowanej przez usera. Ale przecież ja nie definiowałem żadnej akcji, bo skrypt został wklejony właśnie w onUserDefined. Jakiś błąd logiczny, albo ja nie nadążam :) A może chodzi o to, że w zdarzeniu onHeartbeat trzeba coś wcześniej ustawić?
 
A

ailinon

Senior user
#4
Aug 17, 2008
Jakiegoś inkluda brakuje, owszem, inc_ai_consts bodajże. Można to znaleźć wyszukując w /data/scripts/inc tekst "USER_ON_HEARTBEAT" :)Zdarzenie "userdefined" wywoływane jest w obiektach "ręcznie", z parametrem oznaczającym właśnie numer zdarzenia. To mechanizm, pozwalający zdefiniować dowolną ilość rodzajów zdarzeń, a nie tylko te kilka do których przypisuje się skrypty z poziomu edytora. Skrypt wpisany w onuserdefined musi sobie właśnie przez GetUserDefinedEventNumber() odebrać numer zdarzenia, z jakim został wywołany - i odtąd przystąpić do już zupełnie dowolnych działań. Domyślnie, wszystkie skrypty z zestawu "default" po swoich normalnych działaniach wywołują userdefined z parametrem CN_USER_ON_COŚTAM - aby móc własnym skryptem userdefined'owym wzbogacić funkcjonalność defaultów.
 
Share:
Facebook Twitter Reddit Pinterest Tumblr WhatsApp Email Link
  • English
    English Polski (Polish) Deutsch (German) Русский (Russian) Français (French) Português brasileiro (Brazilian Portuguese) Italiano (Italian) 日本語 (Japanese) Español (Spanish)

STAY CONNECTED

Facebook Twitter YouTube
CDProjekt RED Mature 17+
  • Contact administration
  • User agreement
  • Privacy policy
  • Cookie policy
  • Press Center
© 2018 CD PROJEKT S.A. ALL RIGHTS RESERVED

The Witcher® is a trademark of CD PROJEKT S. A. The Witcher game © CD PROJEKT S. A. All rights reserved. The Witcher game is based on the prose of Andrzej Sapkowski. All other copyrights and trademarks are the property of their respective owners.

Forum software by XenForo® © 2010-2020 XenForo Ltd.