SP Other [WB][OSP] Language Education Module (Modmerger pack)

Shcherbyna

Sergeant
Best answers
0
New update under way..
+ Ported 90% of game_menus to the dynamic translate base;
+ Finishing in progress of the Kanji Mahjong game (part of this Education Module). It will helps to learning japanese kanji.  Although the samurai did not wear shields, such associations were born on this theme .. you can get it for free here.

 

Shcherbyna

Sergeant
Best answers
0


This is an example of the mental strike unfinished yet but fully free for use anybody anymod.. comming in the next update...
On this picture you can see how the fire_shot-particles moves from player to target_agent.
The problem is "how to turn player_agent to enemy_agent by face"

.._particle_systems.py said:
("fire_shot", psf_always_emit|psf_randomize_size|psf_randomize_rotation, "prt_mesh_fire_1",
    10, 0.75, -10, 0.03, 10.0, 0.0,    #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
    (0.5, 0.:cool:, (1, 0),        #alpha keys
    (0.5, 1.0), (1, 0.9),      #red keys
    (0.5, 0.7),(1, 0.3),      #green keys
    (0.5, 0.2), (1, 0.0),      #blue keys
    (0, 0.15),  (0.4, 2.3),  #scale keys
    (0.0, 0.0, 0.0),      #emit box size
    (0, 1, 0),              #emit velocity
    0.0,                      #emit dir randomness
    200,                      #rotation speed
    0.5                        #rotation damping
    ),
commandLine_scripts.py said:
# Player agent particle effect (shot)
            (agent_get_position, pos20, ":player_agent"),
            (position_move_z, pos20, 100),
            (particle_system_burst, "psys_fire_shot", pos20, 5),

# Defining pause time depending on distance to target
# Определение времени задержки эффекта в зависимости от расстояния до цели (чем дальше цель, тем позже появится эффект удара на цели)

            # time = (distance * 300)/1000; (dist 1000 = time 300)
    #        (agent_get_position, pos30, "$g_studyMod_current_enemy_agent_no"),
    #        (get_distance_between_positions, ":dist", pos20, pos30),
    #        (val_max, ":dist", 10),
    #        (val_mul, ":dist", 300),
    #        (store_div, "$g_cmd_timer_pause", ":dist", 1000),
            (assign, "$g_cmd_timer_pause", 300), # temporary set const
           
          # Enemy agent particle damage effect after 1 sek pause
            # Активирую таймер, который подождет пока ГГ отыграет анимацию удара, после чего нанесет урон врагу

            (assign, "$g_studyMod_current_enemy_agent_no", ":agent_no"),
            (assign, "$g_cmd_enable_damage_effect_timer", 1),
            (assign, "$g_cmd_start_timer_time", "$g_cmd_cur_time"),
...
...
#script_command_line_deliver_damage_to_enemy: Implementing damage to enemy agent / Наносит урон врагу
  # INPUT: None
  # OUTPUT: None

  ("command_line_deliver_damage_to_enemy",
        # Target enemy damage particle effect
        (agent_get_position, pos30, "$g_studyMod_current_enemy_agent_no"),
        (position_move_z, pos30, 100), # установить партикл-еффект урона на уровне пояса
        (particle_system_burst, "psys_fireplace_fire_big", pos30, 10), # fire explosion
...
...
commandLine_presentation.py said:
(ti_on_presentation_run,
    [
      (store_trigger_param_1, "$g_cmd_cur_time"),
     
# Enemy damage effect timer (needs for StudyMod Damage System)
      (try_begin),
        (eq, "$g_cmd_enable_damage_effect_timer", 1),
        (store_sub, ":pause", "$g_cmd_cur_time", "$g_cmd_start_timer_time"), # pause = cur_time - start_timer_time
        (ge, ":pause", "$g_cmd_timer_pause"), #(300) if pause > 0.3 sek => continue, else wait (depends on cast animation speed / зависит от скорости анимации каста)
        (call_script, "script_command_line_deliver_damage_to_enemy"),
        (assign, "$g_cmd_enable_damage_effect_timer", 0), # turn off damage_effect_timer
      (try_end),
 

Dusk Voyager

Count
Best answers
0
It teaches Russian, Japanese or English while entertaining you, with some mini-games and stuff thrown into the mix.
 

Shcherbyna

Sergeant
Best answers
0
Ok.
This project is designed to help you learn the words of foreign languages ​​(Japanese, English, Russian). If you learn a language, you can do it during the game.
During combat, you see the foreign words  over the enemies. If you know the translation of a word, you can write it on the Command Line and cause a mental blow to the enemy. Learning words are divided into levels. As you study, you can move to a higher level to new words.
Also, in the tavern soon will have another way of learning - Kanji Manyong game, but only for the Japanese language.
 
Best answers
0
Ok, so if i want to learn the language all the people are talking already, except the newest generation, then i just play a game inside the game. Cool thanks for explanation.
 

Shcherbyna

Sergeant
Best answers
0
Update: Version 0.72

+ Added a new level of words.
+ Has worked 87% of the dynamic menu. Some omitted in the absence of texts, some are disabled because of problematical portation, but need to be tested.
+ Added a mini-game Kanji Mahjong. Only for JP-EN mode, as double-digit characters - this is the maximum that is placed on the tiles. In the tavern you can play for denars, or you can buy a non-commercial version with a bookseller.
After the purchase, the game box to put in a weapon slot (in the inventory), then change weapons in the hands (by mouse scroll). Once the box is taken in hand - the game starts.
All the tile schemes are located in a separate file and can be easily edited. Current schemes made ​​for a quick hand and will probably be changed later .. (maybe we can arrange a competition for the best scheme from users? =)
+ Added command "mahjong" and "mahjongu onegai shimasu" - allow the manipulation of the tavernkeeper =) ie ask him to bring mahjong (for example, we sat down at any table). In development ...
+ The effect of the player's mental strike is off as a solution "to turn to the enemy by face" is not found. Left only the effect on the victim.
+ Added a new studyMod utility "List Code Generator" that reads dictionary word list and calculates their codes. This saves time when creating a new learning level.
- This release shared with the included word's background (unfinished). Look at   agentNameOverlay  to disable it, variable slot_agent_name_bg_overlay_id

For more information, look in the first post, updated.
 

Anas Pasha

Recruit
WBNWVCM&BWF&S
Best answers
0
Great Idea!
play and learn! (but not those silly disgusting educational games)
Eager to see another educational Ideas in other mods (almost you can learn everything in the great unlimited mount & blade world) . maybe in Bannerlords though  :wink:
 

Corbul

Sergeant
WBVC
Best answers
0
Maybe I'm necroing this thread, but just in case

Care to add more languages? Say French, Italian, German, Spanish, Turkish? :roll:
 

Shcherbyna

Sergeant
Best answers
0
Yes, is possible.
Maybe later I find time to explain "how to" =)

This is my old manual. I don't remember exactly what it means but you can try =)
How to add a new study level (new language) in?

===[StudyMod]===
1) studyMod_dict.py - Create a list of new words, num-codes and script-loader for it (studyMod_code_loader_lvl_XX(language)).
2) studyMod_strings.py - Create a lists of strings based on new word-code-list from studyMod_dict.py. Every string_ID must be unique!
3) studyMod_constants.py - (# Level Indexes) Add a new begin_ id of new lvl (en_begin = "str_en_a" en_level_2 = "str_en_one" ... en_end = "str_en_end") each item in appropriate list before closing .._end.
4) studyMod_dict.py - (# LANGUAGE Dict start indexes list from studyMod_constants) Add new begin_ id (from prev step) in appropriate lists (en_lvl_indexes = [en_begin, en_begin, en_level_2, ..new_index.., en_end]) for each language.
5) studyMod_scripts.py - create code-loader-scripts.
6) studyMod_dict.py - scripts from prev step add to script-lists (en_lvl_code_loaders = ['script_load_jp_alphabet_codes', 'script_load_jp_alphabet_codes', 'script_load_en_codes_lvl_2', ...])
7) studyMod_presentations.py - increase max study lvl (assign, "$g_studyMod_max_lng_level", 3),
PS: for new language increase max langs count (assign, "$g_studyMod_langs_num", 4),
===[StudyBook]===
8 ) studyBook_strings.py - add link for new study-lvl on Index-page
9) add checking for loading new lvl if need (store_add, ":translated_str_id", jp_level_3_reading, ":str_no"),
===[KanjiMahjong]===
10) add checking for loading new lvl (for kanji only) (store_add, ":kanji_reading_str", reg2, jp_level_3_reading),
Also you need to add appropriate fonts.