Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Provo

Strony: [1]
1
Pytania i problemy / Kilka problemów ze skryptami
« dnia: 2019-04-25, 22:06 »
No nareszcie, na windows-1250 działa w ~90% bo w ~10% przypadków nie wyświetla polskich znaków...
no ale tyle można przeboleć :)

Dzięki wielkie Patrix9999!
 

2
Pytania i problemy / Kilka problemów ze skryptami
« dnia: 2019-04-25, 13:26 »
Dzięki wielkie outlander! :) Problem nr 2 i 4 rozwiązany.

Z trzecim na pewno miało wpływ to o czym wspomniałeś ale problemu to nie rozwiązało, dopiero po entych próbach gdy linijkę z kodem oddania przedmiotu NPC'owi przesunąłem na koniec if'a (a nie jako druga linijka) problem się rozwiązał.

Wykonywało się to tak, że gdy miałem przedmiot to spełniałem warunek i wchodziłem do if'a , pomijał linijkę z dialogiem (tym razem numeracja była poprawiona), oddawałem przedmiot, pomijało wszystkie następne dialogi, robił wpis do dziennika i wskakiwał do elsa i wykonywał wszystkie dialogi z niego... Jak dla mnie to dziwna sytuacja ;P

No i pozostał mi jeszcze problem z polskimi znakami... gdyby ktoś coś to byłbym bardzo wdzięczny :)
Opis problemu w pierwszym poście :)

3
Pytania i problemy / Kilka problemów ze skryptami
« dnia: 2019-04-23, 10:38 »
Hej, mam dziwne problemy z którymi nie mogę sobie poradzić ze skryptami w G2NK..

1. Brak polskich znaków w dialogach (notepad++).
  • Wklepuje jakiś tekst z polskimi znakami (polskie znaki działają w edytorze)
  • Format/Konwertuj na format ANSI (polskie znaki znikają)
  • Reparsuje skrypty w Spacerze (upgrade, save)
  • W grze tekst jest bez polskich znaków.

2. Dziwne zachowanie z wyborem dialogu.
*Item jest przykładowy
FUNC VOID DIA_VLK_9998_SC_HELLO_Info(){


if( Npc_HasItems (other, ItAt_Addon_Heart) >= 1 ) {

Info_AddChoice (DIA_VLK_9998_SC_HELLO, "Tak, prosze"  ,   DIA_VLK_9998_SC_HELLO_YesIHave );

} else {

Info_AddChoice (DIA_VLK_9998_SC_HELLO, "Nie mam serca",   DIA_VLK_9998_SC_HELLO_iDontHave );
Info_ClearChoices (DIA_VLK_9998_SC_HELLO);

};
};

Według mnie powinno to działać tak, że jeżeli mam ten określony item to odpali się funkcja ...HELLO_YesIHave a jeśli nie mam tego itemu odpali się funkcja ...HELLO_iDontHave.

Działa prawidłowo jeżeli mam ten item ale jeżeli nie mam go to jakby pomijał funkcję iDontHave i uruchamiał tylko Info_ClearChoices

*Funkcja iDontHave to sam tekst, brak jakichkolwiek warunków.


3. Kolejny problem z dialogiem

func void DIA_9999_AR_Amulet_Info (){

AI_Output (self, other, "DIA_9999_AR_Amulet_26_00"); // Bla, bla


if( Npc_HasItems (other, ITAM_STRG_01) >= 1 ) {

AI_Output (self, other,"DIA_9999_Archibald_Amulet_26_01"); //Masz go

B_giveinvitems ( other, self, ITAM_STRG_01, 1);

B_LogEntry( TOPIC_SC, "Oddałem go");
Log_SetTopicStatus(TOPIC_SC, LOG_SUCCESS);


} else {

AI_Output (self, other,"DIA_9999_AR_Amulet_26_01"); //Nie masz go

B_LogEntry( TOPIC_Scenarzysta, "Nie miałem go");
Log_SetTopicStatus(TOPIC_Scenarzysta, LOG_SUCCESS);

};
};

Tym razem mając item if odpala się dobrze tyle, że pomija tekst NPC'a, oddaję mu item, zadanie zakończone jest sukcesem i odpala się tekst z elsa...

4. Mam przywołać swojego potworka i przy jego pomocy ubić konkretnego potworka, który ma konkretny przedmiot.
Po ubiciu potworka mam dostać wpis do dziennika oraz gdy zdobędę ten przedmiot kolejny wpis.

Kod sprawdzający żywotność potworka dodałem do ZS_Dead:
if( Npc_IsDead( ktos_tam ) && isDead == FALSE){

Log_CreateTopic( TOPIC_SC, LOG_MISSION );
Log_SetTopicStatus( TOPIC_ScC, LOG_RUNNING );
B_LogEntry( TOPIC_Scenarzysta, "Zabity" );

isDead = TRUE;
};

Kod do sprawdzania czy dorwałem item w startup.d

func void INIT_GLOBAL()
{
// wird fuer jede Welt aufgerufen (vor INIT_<LevelName>)
Game_InitGerman();
       LeGo_Init (LeGo_All);

if (!FF_Active (heart) && iHave == FALSE ) {

  FF_ApplyOnce (heart);

};

};

Wywoływana funkcja heart

func int heart()
{


if( Npc_HasItems (other, ItAt_Addon_Heart) ) {

iHave = TRUE;

} else {

iHave = FALSE;

return FALSE;

};


if( iHave == TRUE ) {

Log_CreateTopic(TOPIC_SC, LOG_MISSION);
Log_SetTopicStatus(TOPIC_SC, LOG_RUNNING);
B_LogEntry( TOPIC_SC, "Mam serce");

return TRUE;
};
   
};

(Funkcja troszkę pokombinowana bo już testowałem przeróżne warunki oraz jakiś sposób na zatrzymanie wywoływania tej funkcji po zdobyciu mojego fanta aby odciążyć system)
I gdy np odpalę mojego pomagiera to od razu po jego pierwszym ataku dostaję wpisy, że tamten jest martwy i mam z niego item...

Strony: [1]
Do góry