Spis funkcji po polsku 4440 7

O temacie

Autor Liberty

Zaczęty 29.07.2019 roku

Wyświetleń 4440

Odpowiedzi 7

Liberty

Liberty

Użytkownicy
posty39
Propsy12
ProfesjaSkrypter
  • Użytkownicy

Liberty

Spis funkcji po polsku
2019-07-29, 15:29(Ostatnia zmiana: 2019-08-03, 10:34)


Prace przerwane na około tydzień

Witam, ostatnio zabrałem się za zrobienie polskiej wikipedii z funkcjami modowania Gothic'a, mam ją zrobioną w ~50%, cały czas pracuje nad jej dokończeniem. Będzie również wersja GIINK

Link do wikipedii: http://wiki-gothic.cba.pl/index.html

Jeżeli ktoś znajdzie jakiś błąd to prosiłbym o zgłoszenie go tutaj w odpowiedzi, nie jestem idealny. Z góry dziękuję.

To samo tylko na forum, gdyby strona wygasła:

Gothic I:
      Content/_Intern/G_Functions/
      
Spoiler
      G_CanNotCast( NPC, Wymagany atrybut, Posiadane );    -    Wiadomość o zbyt małym wyuczeniu atrybutu do założenia
      G_CanNotUse( NPC, Atrybut, Wymagana ilość );    -    Wiadomość o zbyt małym wyuczeniu atrybutu do użycia
      G_CanSteal(  );    -    Sprawdza czy można okraść NPC
      G_PickLock( Sukces, Wytrych sie złamał );    -    Otwieranie skrzyni
      G_PrintScreen( Wiadomość );    -    Wiadomość na ekranie

      Content/_Intern/Set.d
      
Spoiler
      Npc_SetToMad( NPC, Sekundy );    -    Pusta funkcja

      Content/AI/AI_Intern/B_Functions.d
      
Spoiler
      B_GotoWPNextToNpc( NPC który ma iść, NPC do którego ma iść );    -    NPC idzie do danego NPC
      B_CantSeeTurn(  );    -    Obraca się do NPC jeżeli on tego nie widzi
      C_LookAtNpc( NPC który spojrzy, NPC na którego spojrzy );    -    NPC spojrzy na danego NPC
      C_StopLookAt( NPC );    -    NPC przestaje patrzeć na otoczenie
      B_SmartTurnToNpc( NPC który ma sie obrócić, NPC w którego strone ma się obrócić );    -    NPC obraca się w strone danego NPC, jeżeli go widzi - obróci głowe
      B_Say( NPC który ma coś powiedzieć, NPC do którego ma powiedzieć, Wiadomość );    -    NPC obraca się i mówi do danego npc
      B_SayOverlay( NPC który ma coś powiedzieć, NPC do którego ma powiedzieć, Wiadomość );    -    NPC obraca się i mówi do danego npc, pomija wykonywaną czynność przez NPC
      B_StandUp( NPC );    -    NPC wstaje z ławki/krzesła/itd
      B_CallComrades(  );    -    Woła towarzyszy
      B_CallGuards(  );    -    Woła straż, "STRAŻ! TUTAJ!"
      B_IntruderAlert( NPC który krzyczy, NPC do którego krzyczy );    -    Ostrzega NPC o intruzie
      B_FullStop( NPC );    -    Czyści kolejke z wszystkich wykonywanych czynności i staje w miejscu
      B_ResetTempAttitude( NPC );    -    Resetuje nastawienie NPC do innych NPC
      B_WhirlAround( NPC który szuka, NPC którego ma znaleźć );    -    Jeżeli widzi NPC to się do niego obróci, w przeciwnym razie będzie się kręcił w kółko
      B_DropWeapon( NPC );    -    NPC wyrzuci swoją broń na ziemie
      B_RegainDroppedWeapon( NPC );    -    NPC podnosi najbliższą broń z ziemi
      B_RegainDroppedArmor( NPC );    -    NPC podnosi najbliższy pancerz z ziemi
      B_GotoFP( NPC, freepoint );    -    NPC idzie do NASTĘPNEGO freepointa z podanego freepointa
      B_StopGotoHero(  );    -    NPC przestaje iść do gracza
      B_SetAttackReason( NPC, Powód ataku );    -    Ustawia powód ataku NPC
      B_KillNpc( NPC );    -    Zabija NPC, dodaje mu starą monete do ekwipunku (żeby nie znikło ciało) i ściąga bronie
      B_UseFakeScroll( );    -    NPC czyta list
      B_ChangeGuild( NPC, Gildia na jaką ma zmienić );    -    Zmienia gildie NPC
      B_ExchangeRoutine( NPC, Rutyna na która ma się zmienić );    -    Zmienia rutyne NPC
      B_SetPermAttitude( NPC, Natawienie na jakie ma ustawić );    -    Zmienia nastawienie NPC do innych NPC na stałe
      B_LogEntry( Zadanie do którego ma dodać wpis, wpis który ma dodać );    -    Dodaje wpis do dziennika, pojawia się informacja o tym na ekranie
      B_ClearImmortal( NPC );    -    NPC staje się śmiertelny
      B_SetNPCype( NPC, typ NPC );    -    NPC czyta list
      B_GiveInvItems( NPC który daje, NPC który otrzymuje, instancja przedmiotu, ilość danego przedmiotu );    -    Wymiana pomiędzy NPC
      B_CheckForImportantInfo( NPC, NPC );    -    (?)
      B_InitGuildAttitudes( );    -    Zmienia stosunki między gildiami zależnie od rozdziału
      B_PracticeCombat( Waypoint );    -    Pusta funkcja
      B_PrintGuildCondition( Wymagany poziom );    -    Warunek poziomu przyjęcia do obozu

      Content/AI/AI_Intern/C_Functions.d

      
Spoiler
      C_AmIStronger( NPC 1, NPC 2 );    -    Sprawdza czy poziom NPC 1 jest 2 razy większy od poziomu NPC 2
      C_AmIWeaker( NPC 1, NPC 2 );    -    Sprawdza czy poziom NPC 1 razy 2 jest mniejszy niz poziom NPC 2
      C_NpcIsInFightMode( NPC );    -    Sprawdza czy NPC walczy
      C_NpcIsInNeutralSpellMode( NPC );    -    Sprawdza czy NPC czaruje
      C_NpcIsDown( NPC );    -    Sprawdza czy NPC jest na ziemi (śpi, nie żyje itd)
      C_NpcIsHuman( NPC );    -    Sprawdza czy NPC jest człowiekiem
      C_NpcIsMonster( NPC );    -    Sprawdza czy NPC jest potworem
      C_NpcIsDangerousMonster( NPC );    -    Sprawdza czy NPC jest groźnym potworem (zagrożeniem) - nie śpi, ma groźne nastawienie
      C_NpcIsOrc( NPC );    -    Sprawdza czy NPC jest orkiem
      C_NpcIsMonsterMage( NPC );    -    Sprawdza czy NPC jest potworem magiem (Ork szaman, Szkielet mag, Demon, Lodowy/Ognisty golem, Nieumarły ork)
      Npc_SetPermAttitude( NPC, Nastawienie na jaką ma ustawić );    -    Zmienia nastawienie NPC do innych NPC na stałe
      Npc_GetTempAttitude( NPC );    -    Zwraca nastawienie NPC do innych NPC
      C_BodyStateContains( NPC, Ustawienie ciała );    -    Sprawdza czy NPC jest w danej pozycji/czynności
      C_NpcTypeIsFriend( NPC 1, NPC 2 );    -    Sprawdza czy NPC 1 jest nastawiony przyjacielsko do NPC 2
      C_NpcIsGuard( NPC );    -    Sprawdza czy NPC jest strażnikiem (broń biała) (nie tylko gildia)
      C_NpcIsGuardArcher( NPC );    -    Sprawdza czy NPC jest strażnikiem (broń dystansowa) (nie tylko gildia)
      C_NpcIsBoss( NPC );    -    Sprawdza czy NPC jest szefem w obozie (Magnat, Mag Ognia, Mag Wody, Guru)
      C_NpcIsWorker( NPC );    -    Sprawdza czy NPC jest robotnikiem (Kopacz, Cień, Zbieracz, Kret, Szkodnik, Nowicjusz)
      C_NpcIsMage( NPC );    -    Sprawdza czy NPC jest magiem (Mana > 0)
      C_NpcBelongsToOldCamp( NPC );    -    Sprawdza czy NPC należy do Starego Obozu
      C_NpcBelongsToNewCamp( NPC );    -    Sprawdza czy NPC należy do Nowego Obozu
      C_NpcBelongsToPsiCamp( NPC );    -    Sprawdza czy NPC należy do Obozu na Bagnie (Sekty)
      C_ChargeWasAttacked( NPC Strażnik, NPC uderzony, NPC atakujący );    -    (?)
      Npc_HasSpell( NPC, Instancja czaru );    -    Sprawdza czy NPC posiada dany czar
      C_NpcHasAmmo( NPC, Kategoria (ITAMARROW/ITAMBOLT) );    -    Sprawdza czy NPC posiada amunicję (strzały lub bełty)
      C_NpcHasWeapon( NPC, Kategoria (ITEM_KAT_NF/ITEM_KAT_FF) );    -    Sprawdza czy NPC posiada broń z danej kategorii
      C_GetAttackReason( NPC );    -    Sprawdza powód atakowania NPC
   [/p3d]   C_OtherIsToleratedEnemy( NPC 1, NPC 2 );    -    Sprawdza czy NPC jest przyjacielski (NPC 1 posiada UluMulu, NPC 2 to ork)
      B_TolerateEnemy( NPC 1, NPC 2 );    -    Jeżeli NPC 2 to ork to zacznie podążać za NPC 1

      Content/AI/AI_Intern/C_ZSInit.d

      
Spoiler
      C_ZSInit( );    -    NPC przestaje patrzeć na innego NPC i staje się śmiertelny
      C_Orc_ZSInit( );    -    (?)

      Content/AI/AI_Intern/externals.d

      
Spoiler
      Print( Text );    -    Wysyła wiadomość
      PrintMulti( Text 1, Text 2, Text 3, Text 4 );    -    Wysyła kilka wiadomości
      PrintDebug( Text );    -    Wysyła wiadomość do konsoli
      PrintScreen( Text );    -    Pokazuje wiadomość na ekranie gry
      Hlp_Random( Do ilu ma losować );    -    Losuje liczbę do podanej
      Hlp_StrCmp( Text 1, Text 2 );    -    Porównuje 2 stringi czy są takie same
      Hlp_IsValidNpc( Instancja );    -    Sprawdza czy NPC istnieje
      Hlp_IsValidItem( Instancja );    -    Sprawdza czy przedmiot istnieje
      Hlp_IsItem( Przedmiot, Instancja );    -    Sprawdza czy przedmiot posiada taką samą instancje jak podana
      Hlp_GetNpc( Instancja );    -    Zwraca NPC o danej instancji
      Hlp_GetInstanceID( Przedmiot/NPC );    -    Zwraca instancje
      AI_Wait( NPC, Ilość sekund jaką ma czekać );    -    NPC czeka daną ilość sekund
      Npc_GetStateTime( NPC );    -    Zwraca liczbę sekund, przez jaką NPC będzie w pętli
      Npc_setStateTime( NPC, Ilość sekund );    -    Ustawia czas przez jaki NPC będzie w pętli
      Wld_GetDay( );    -    Zwraca dzień z dziennika
      Wld_IsTime( Od godziny, Od minuty, Do godziny, Do minuty );    -    Sprawdza czy jest godzina między podanymi
      Wld_InsertNpc( Instancja NPC, Waypoint w którym ma sie pojawić );    -    Przywołuje NPC w danym waypointcie
      Wld_InsertNpcAndRespawn( Instancja NPC, Waypoint w którym ma sie pojawić, Czas (w sekundach) po jakim ma się odrodzić po śmierci );    -    Przywołuje NPC w danym waypointcie, po śmierci odradza go po podanym czasie
      AI_PlayAni( NPC, Animacja jaką ma odegrać NPC );    -    NPC odgrywa animacje
      AI_StandUp( NPC );    -    NPC wstaje
      AI_StandUpQuick( NPC );    -    NPC wstaje bez animacji
      AI_Quicklook( NPC który spojrzy, NPC na którego spojrzy );    -    NPC patrzy na innego NPC (ruch głowy, 2 sekundy)
      AI_LookAt( NPC, Waypoint/Nazwa voba na którego spojrzy );    -    NPC spojrzy na dany obiekt lub punkt trasy
      AI_LookAtNpc( NPC który ma spojrzy, NPC na którego spojrzy );    -    NPC spojrzy na innego NPC
      AI_StopLookAt( NPC );    -    NPC przestanie patrzeć na otoczenie
      AI_PointAt( NPC, Waypoint/Nazwa voba na którego spojrzy );    -    NPC wskaże ręką na dany obiekt lub punkt trasy
      AI_PointAtNpc( NPC który wskaże, NPC na którego wskaże );    -    NPC wskaże ręką na danego NPC
      AI_StopPointAt( NPC );    -    NPC przestanie wskazywać ręką
      AI_TakeItem( NPC, Przedmiot );    -    NPC podniesie dany przedmiot z ziemi
      AI_DropItem( NPC, Przedmio );    -    NPC wyrzuci przedmiot na ziemie
      AI_UseItem( NPC, Przedmiot );    -    NPC użyje przedmiot
      AI_UseItemToState( NPC, Przedmiot, Slot );    -    NPC użyje przedmiot
      AI_UseMob( NPC, Nazwa moba, Slot );    -    NPC użyje moba
      Wld_IsMobAvailable( NPC, Nazwa moba );    -    Sprawdza czy mob jest w okolicy (10 metrów)
      Wld_GetMobState( NPC, Nazwa moba );    -    Sprawdza czy mob jest wolny
      AI_SetWalkmode( NPC, Typ podążania );    -    Zmienia tryb chodzenia (NPC_RUN/WALK/SNEAK/RUN_WEAPON/SNEAK_WEAPON)
      AI_GotoWP( NPC, Nazwa waypointa do którego ma iść );    -    NPC idzie do podanego waypointa
      AI_GotoFP( NPC, Nazwa freepointa do którego ma iść );    -    NPC idzie do podanego freepointa
      AI_GotoNextFP( NPC, Nazwa freepointa );    -    NPC idzie do następnego freepointa z podanego freepointa
      AI_GotoNpc( NPC który ma iść, NPC do którego ma iść );    -    NPC idzie do innego NPC
      AI_GotoItem( NPC, Przedmiot );    -    NPC idzie do podanego przedmiotu
      AI_GotoSound( NPC );    -    (?)
      AI_Teleport( NPC, Waypoint );    -    NPC przeniesie się do danego waypointa
      Npc_GetNearestWP( NPC );    -    Zwróci najbliższy waypoint od NPC
      Npc_GetNextWP( NPC );    -    Zwróci drugi najbliższy waypoint od NPC
      Wld_IsFPAvailable( NPC, Nazwa freepointa );    -    Sprawdza czy freepoint znajduje się w promieniu 20 metrów
      Wld_IsNextFPAvailable( NPC, Nazwa freepointa );    -    Sprawdza czy dany freepoint jest najbliższy
      Npc_IsOnFP( NPC, Nazwa freepointa );    -    Sprawdza czy NPC znajduje się na danym freepointcie
      Npc_IsWayBlocked( NPC );    -    Zwraca "1" jeżeli droga NPC jest zablokowana
JESZCZE NIE UKOŃCZONA TA LISTA
 

Fabio

Fabio

The Modders
posty3467
Propsy2151
ProfesjaSkrypter
  • The Modders
Pomysł dobry, nie wiem czy aż tak to potrzebne, ale może komuś się przyda. Przerzuć się na coś innego niż cba, bo samo ta górna informacja odrzuca. Proponuję bplaced, nie będzie wtedy tego typu informacji (warunkiem jest tylko logowanie się na stronę raz na miesiąc lub trzy). Ale alternatywa w postaci tego tematu powinna wystarczyć.

PS. Proponowałbym wyświetlanie zbliżyć do tego jak wygląda to na stronie. Czy wywal główny spoiler i zostaw tylko te wewnątrz.

SlavicZmey

SlavicZmey

Użytkownicy
posty7
Propsy1
ProfesjaGracz
  • Użytkownicy
Wydaje mi się, że wszędzie ucina "ś" na Twojej stronie, jakieś problemy z kodowaniem. <meta charset="utf-8"> w "head" powinno rozwiązać problem.
 

Liberty

Liberty

Użytkownicy
posty39
Propsy12
ProfesjaSkrypter
  • Użytkownicy
@SlavicZmey powinno już być lepiej.
@Fabio postaram się coś z tym zrobić ale niczego nie obiecuje

Zmieniłem na stronie zamiast poinformowania o błędzie pisząc w tym temacie to u mnie na prywatnej wiadomości, żeby nie robić spamu.
 

A.K.

A.K.

Użytkownicy
posty159
Propsy161
Profesjabrak
  • Użytkownicy

A.K.

Spis funkcji po polsku
#4 2019-07-29, 19:31(Ostatnia zmiana: 2019-07-29, 20:11)
Pomijając wygląd strony, bo to sprawa subiektywna (no dobra, nie pominę - dla mnie niezbyt ładna i mało czytelna  :|), to jak na "wikipedię" jest dość mało precyzyjna.

Spójrz choćby na tak banalną funkcję B_UseFakeScroll(). U Ciebie jest jedno zdanie - "NPC czyta list". A zobacz, ile tam się dzieje:

// Visualisierung: Schriftstück lesen -> 'self' zieht ein Stück Pergament aus der Tasche und wirft einen Blick drauf
Już ten niemiecki komentarz mówi więcej - że "self" wyjmuje pergamin z ekwipunku i rzuca okiem.
Dowiadujemy się z niego, że funkcja dotyczy tego, kto aktualnie jest interpretowany jako self oraz że list jest wyjmowany z ekwipunku.

Dość istotna informacja:
func void B_UseFakeScroll()

Funkcja jest typu void - nie zwraca wartości.


Teraz spójrzmy na ciało funkcji:

if(C_BodystateContains(self, BS_SIT))
{
AI_StandUp(self);
AI_TurnToNpc(self, hero);
};
Jeśli "self" jest w pozycji siedzącej (kolejna ważna informacja - sprawdza to funkcja C_BodystateContains, którą przecież można zmodyfikować), to zostaje postawiony do pionu i ustawiony przodem do "hero", przez funkcje silnika (AI_StandUp i AI_TurnToNpc)

CreateInvItem(self, Fakescroll);
Przedmiot Fakescroll (czyli ten "lipny zwój" do czytania) zostaje stworzony w ekwipunku "selfa"


AI_UseItemToState(self, Fakescroll, 1);
AI_Wait(self, 3);
AI_UseItemToState(self, Fakescroll, -1);
Na "selfie" zostaje wywołana metoda użycia przedmiotu, następnie wymuszone czekanie (3 s.) i wywołanie funkcji "od-użycia" przedmiotu.

Podsumowując:
Cytuj
B_UseFakeScroll() - tworzy w ekwipunku NPC (self) zwój. NPC zaczyna używać zwoju, czeka 3 sekundy i kończy. Jeżeli NPC jest w pozycji siedzącej - wstaje i obraca się w stronę hero.

A w rozwinięciu:
Cytuj
Rodzaj funkcji: Funkcja skryptowa (czy jak to nazwać. Informacja, że zakodowana w skryptach, a nie w silniku)
Typ zwracany: void
Argumenty: brak
Używane funkcje skryptowe: C_BodystateContains
Używane funkcje silnika: CreateInvItem, AI_StandUp, AI_UseItemToState, AI_Wait
Używane przedmioty: Fakescroll

Ale inicjatywę popieram :)
 

bogu9821

bogu9821

Użytkownicy
posty406
Propsy185
ProfesjaProgramista
  • Użytkownicy

bogu9821

Spis funkcji po polsku
#5 2019-07-29, 20:03(Ostatnia zmiana: 2019-07-29, 20:09)
W tej chwili nie mam chęci w tej chwili sprawdzać, czy wszystko jest poprawne itd., ale pragnę zauważyć, iż plik externals.d nie zawiera wszystkich funkcji zewnętrznych.
Wszystkie chyba możesz znaleźć na wogu (część z nich też jest opisana po niemiecku):
G1: https://www.worldofgothic.de/modifikation/index.php?go=g1functions
G2: https://www.worldofgothic.de/modifikation/index.php?go=g2functions

Poza tym polecałbym też opisać funkcje, które są wykonywany przez engine, jak np. B_RefreshArmor (funkcja wywoływana o 24 lub przy wczytaniu świata)
Tutaj macie trochę informacji o funkcjach wywoływanych przez engine i nie tylko: https://themodders.org/index.php?topic=13208

A i jeszcze coś. Zamiast AI_TakeItem( NPC, Przedmiot ); - NPC podniesie dany przedmiot z ziemidałbym rzeczywisty typ, bo czasem na przykład wymagane jest instance, a czasami obiekt danej klasy.
 
while(false) Do();

Liberty

Liberty

Użytkownicy
posty39
Propsy12
ProfesjaSkrypter
  • Użytkownicy
@bogu9821 tak wiem że nie ma wszystkiego, napisane jest wyraźnie że jest to 50% a na dole externals.d jest napisane że nie jest to jeszcze pełna lista
 

bogu9821

bogu9821

Użytkownicy
posty406
Propsy185
ProfesjaProgramista
  • Użytkownicy
@bogu9821 tak wiem że nie ma wszystkiego, napisane jest wyraźnie że jest to 50% a na dole externals.d jest napisane że nie jest to jeszcze pełna lista
Mi chodzi o to, że po prostu plik w gmdk, externals.d nie ma wszystkich funkcji zewnętrznych. W tamtych linkach masz wszystkie, które są zarejestrowane w silniku.
 
while(false) Do();


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