Skrypt EUROPEA - g.script do OpenTTD
#1
To niezbyt skomplikowany skrypt  , tyle że ukazuje przysposobienie do rozbudowy .

 changelog.txt :
Kod:
 wersja posiada:
1. by przez pewien czas od początkowego roku do np. 10 lat - w zależności od ustawień parametru - z mapy nie ubywało przemysłu, jeśli nie ma drugiego identycznego .
2. by za każdym razem nie wpisywać nazwy firmy i prez. 

 readme.txt :
Kod:
W G.S zawarta w założeniach branża ma możliwość odbudowania się zaraz w tym samym miejscu , jeżeli zostanie zamknięta, tak jakby była zawieszona poniekąd . Można to i w trakcie anulować, jeśli użytkownik nie ma zamiaru inwestować akurat w tym obszarze .
Oprócz tego jest możliwość zmiany w pliku firms.cfg by była wpisana na stałe swoja nazwa użytkownika
(dopiero chyba od OTTD 1.9 wprowadzono zautomatyzowany wybór koloru, ale nie ma możliwości określenia do tego płci - jest w AI lub z patch'em )  .

Żeby nie powtarzać niektóre mechanizmy, w G.S można skorzystać z szablony MinimalGS . To zastosowano w tym . Aby nie pisać od nowa to samo można korzystać z bibliotek (tu: SuperLib_for_NoGo-36 ). Wtedy wystarczy odwołanie domyślnie do folderu /library z którego wywoływana jest biblioteka (ze "Sprawdź dodatki online"). Funkcje, które zostaną użyte stamtąd, nie trzeba przepisywać, a tylko wstawić odpowiednią nazwę . Skraca to majstrowanie skryptu . Jakiś  GS_LIB nie posiada info.nut  a „library.nut”.

W squirrel'u jest rozróżnia wielkość liter, ale przy zadeklarowaniu użycia biblioteki, można użyć: 
import()
 albo 
Import() 

G.S może mieć w kodzie jakieś rezultaty, które można wyświetlić w Ottd. Do takich napisów wyjściowych służy plik językowy  english.txt :
Kod:
STR_WELCOME                :Hello {COMPANY}!{}{}You are playing a game with M.GS - a boilerplate for GS authors.

# dodane :
STR_PYTAJNIK            :Rebuilding the closing industry ?

tudzież tłumaczenie polish.txt   
Kod:
# dodane :
STR_WELCOME                 :Powitanie {COMPANY}!{}{}Uruchomienie z Europea GS - autorzy GS.

STR_PYTAJNIK                :Odbudowanie branży zamykanej ?

oba umiejscowione w skryptowym podkatalogu \lang\ . 

G.S został zaczęty od uzupełnienia w M.GS nowych zdarzeń , a do tego nowe pliki 2 . 
Klasa główna to fundament ze strukturą zapisu/ładowania i zapętlenie  . Dołączono import SuperLib, ale można to usunąć - do usunięcia kilka przypadków, w których pomocne SuperLib jest wymienione - i zawrzeć w plikach razem.

 info.nut     
Kod:
/*
* Ten plik jest częścią "szablonu" MinimalGS, która jest GameScript dla OpenTTD
 * Prawa autorskie (C) 2012-2013 Leif Linse
 *
 * MinimalGS to darmowe oprogramowanie; możesz go redystrybuować i/lub modyfikować
 * zgodnie z warunkami Powszechnej Licencji Publicznej GNU opublikowanej przez
 * Fundacja Wolnego Oprogramowania; wersja 2 licencji
 *
 * MinimalGS jest rozpowszechniany w nadziei, że będzie przydatny,
 * ale BEZ ŻADNEJ GWARANCJI; nawet bez dorozumianej gwarancji
 * PRZYDATNOŚĆ HANDLOWA lub PRZYDATNOŚĆ DO KONKRETNEGO CELU. Zobacz
 * Powszechna Licencja Publiczna GNU po więcej szczegółów.
 *
 * Powinieneś otrzymać kopię Powszechnej Licencji Publicznej GNU
 * wraz z MinimalGS; Jeśli nie, patrz <http://www.gnu.org/licenses/> lub
 * napisz do Free Software Foundation, Inc., 51 Franklin Street,
 * Fifth Floor, Boston, MA 02110-1301 USA.
*
*/

/*** squirrel 2.2.5 & OpenTTD 1.8 , Format UTF-8 ***/

require("version.nut");
require("firms.cfg");

class InfoKlasa extends GSInfo {
    function GetAuthor()        { return "[spaceport]"; }
    function GetName()            { return "EuropeaGS"; }
    function GetDescription()     { return "m.in. branże zamykane mogą zostać odbudowane odrazu w tym samym typie i miejscu - opcjonalne, od daty początkowej przez lat np.10..."; }
    function GetVersion()        { return SELF_VERSION; }    // 3 lub SELF_VERSION;
    function GetDate()            { return "2020-04-11"; }
    function CreateInstance()    { return "MainKlasa"; }
    function GetShortName()        { return "UEGS"; }             // Zamień to na swój własny, 4-literowy ciąg
    function GetAPIVersion()    { return "1.3"; }
    function GetURL()            { return "openttd-polska.pl"; }
    // dodane:
    // function MinVersionToLoad() { return 2; }

    function GetSettings() {
        AddSetting(
        {
        name = "log_level",
        description = "Debug: Log level (wyzszy = wyswietla wiecej) ",
        easy_value = 3,
        medium_value = 3,
        hard_value = 3,
        custom_value = 3,
        flags = CONFIG_INGAME,
        min_value = 1,
        max_value = 3
        });
        AddLabels("log_level",
        {
        _1 = "1: Info", _2 = "2: Gadatliwy", _3 = "3: Debug"
        } );
    
        // dodane :                                                 
    
        AddSetting({name = "lata",
        // description = "Liczba lat kiedy od rozpoczęcia będą zastępowane automatycznie zamykane branże",
        description = "Branże mogą zostać przez lat ",    // dwukropek na koncu dodawany pozniej automatycznie
        min_value = 0
        max_value = 99
        easy_value = 10,                                // wartość domyślna (można zmienić)        
        medium_value = 3,        
        hard_value = 1,            
        custom_value = 10,
        step_size = 1,
        flags = CONFIG_INGAME    
        });
        
        AddLabels("lata",
        {
        _0 = "wyłączone", _10 = "10 ~ standard", _99 = "99 max."
        } );
        
        AddSetting( { name = "use_custom_setcompany",
        description = "Możliwość użycia dostosowanych dla firmy np.nazewnictw przy starcie ",
        easy_value = 1,                                    // wartość domyślna ~ tylko cyfry, (można 0)
        medium_value = 0,
        hard_value = 0,
        custom_value = 0,    
        flags = CONFIG_BOOLEAN+CONFIG_NONE    
        });
        
        AddSetting({name = "name_firm",
        description = "Nazwa dla firmy przy starcie ",    
        min_value = 1
        max_value = 2
        easy_value = 2,                                    // wartość domyślna (można zmienić)        
        medium_value = 2,        
        hard_value = 2,            
        custom_value = 2,                        
        flags = CONFIG_NONE                        
        });
        
        AddLabels("name_firm",
        {
        _1 = "Bez nazwy", _2 = "swoje np. "+SELF_FIRM                    // "Bez nazwy" do wpisania później
        } );
        AddSetting({name = "name_prez",
        description = "Nazwa dla szefa przy starcie ",    
        min_value = 1
        max_value = 2
        easy_value = 2,                                    // wartość domyślna (można zmienić)        
        medium_value = 2,        
        hard_value = 2,            
        custom_value = 2,                        
        flags = CONFIG_NONE                        
        });
        
        AddLabels("name_prez",
        {
        _1 = "losowe", _2 = "swoje np. "+SELF_PREZ                    // wartość domyślna (można  inne )    
        } );
        AddSetting({name = "gend_prez",
        description = "płeć prez.przy starcie ",    
        easy_value = 0,                                    // wartość domyślna (można zmienić)        
        medium_value = 0,        
        hard_value = 1,            
        custom_value = 0,                        
        flags = CONFIG_NONE    // CONFIG_BOOLEAN + CONFIG_INGAME    
        min_value = 0
        max_value = 2
        });
        
        AddLabels("gend_prez",
        {
        _0 = "facet", _1 = "kobieta" ,_2="losowo"                    // wartość domyślna - on    
        } );
        
        AddSetting({name = "kolor_def",
        description = "kolor default ",    
        easy_value = 13,                                    // wartość domyślna (można zmienić)        
        medium_value = 1,        
        hard_value = 1,            
        custom_value = 1,                        
        flags = CONFIG_NONE    // CONFIG_BOOLEAN + CONFIG_INGAME    
        min_value = 0
        max_value = 16
        });
        
        AddLabels("kolor_def",
        {
        _0=" losowe ", _1 = " Ciemno niebieski ", _2 = " Blado zielony ", _3 = " Różowy ", _4 = " Żółty ", _5 = " Czerwony ", _6 = " Jasno niebieski ", _7 = " Zielony ", _8 = " Ciemno zielony ", _9 = " Niebieski ", _10 = " Kremowy ", _11 = " Fioletowy ", _12 = " Purpurowy ", _13 = " Pomarańczowy ", _14 = " Brązowy ", _15 = " Szary ", _16 = " Biały "                            // wartość domyślna - orange    
        } );
        AddSetting( { name = "kolory_zapas",
        description = "włącznik dostosowanych kolorów dodatkowych - nie dla koloru losowego  ",
        easy_value = 1,                                    // wartość domyślna ~ tylko cyfry, (można 0)
        medium_value = 0,
        hard_value = 0,
        custom_value = 0,    
        flags = CONFIG_BOOLEAN+CONFIG_NONE    
        });
    }
}
// info do rdzenia, że to GS
RegisterGS(InfoKlasa());


 version.nut    
Kod:
/*
* Ostrzeżenie: ten plik jest ładowany zarówno przez main.nut, jak i info.nut
 * dlatego nie umieszczaj tutaj niczego, co jest ciężkie lub nie jest wymagane
 * dostępne, gdy OpenTTD skanuje plik info.nut.
*/

SELF_VERSION <- 2;

...więcej chyba nie zmieści się w jednym poście, reszta po tym


Wiadomości w tym wątku
EUROPEA - g.script do OpenTTD - przez spaceport - 11-04-2020, 20:29
RE: EUROPEA - g.script do OpenTTD - przez spaceport - 14-04-2020, 00:02
RE: EUROPEA - g.script do OpenTTD - przez spaceport - 14-04-2020, 14:20
RE: EUROPEA - g.script do OpenTTD - przez spaceport - 13-05-2020, 19:30

Skocz do:

[-]
Zamknięcie forum OpenTTD Polska
Forum OpenTTD Polska zostało wyłączone. Obecnie znajduje się tu archiwum dyskusji o dodatkach tworzonych przez naszą społeczność.
Po aktualne treści i dyskusje zapraszamy na nasz discord! :)

[-]
Discord