Skip to content

This script pattern to use custom events in Custom NPC Minecraft mod

License

Notifications You must be signed in to change notification settings

Evanechecssss/cnps_event_pattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CustomNPCCUstomEventsPattern

This script pattern to use custom events in Custom NPC Minecraft mod

Tutor by Creman

Установка:

  1. ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ custom_events Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΌΠΈΡ€Π°: .minecraft\saves[НазваниС ΠΌΠΈΡ€Π°]
  2. ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» eventAPI Π² ΠΏΠ°ΠΏΠΊΡƒ скриптов: .minecraft\saves[НазваниС ΠΌΠΈΡ€Π°]\customnpcs\scripts\ecmascript ИспользованиС: Π­Ρ‚ΠΎΡ‚ скрипт позволяСт Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ²Π΅Π½Ρ‚Ρ‹ Π² ΠΎΠ΄Π½ΠΈΡ… нпс/Π±Π»ΠΎΠΊΠ°Ρ…/ΠΈΠ³Ρ€ΠΎΠΊΠ°Ρ… ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ - ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΈΡ… нпс/Π±Π»ΠΎΠΊΠΎΠ²/ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². Для Π½Π°Ρ‡Π°Π»Π° создадим ΠΈΠ²Π΅Π½Ρ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅ custom_events, ΠΏΡ€ΠΈΠΌΠ΅Ρ€: 1 "event1": { 2 "name": "say_name", 3 "args": { 4 "value1": 0 5 }, 6 "description": "Π­Ρ‚ΠΎΡ‚ ΠΈΠ²Π΅Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для вСсСлья" 7 }

Π§Ρ‚ΠΎ здСсь ΠΊ Ρ‡Π΅ΠΌΡƒ, я объясню Π² процСссС создания скрипта, Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³Ρ‡Π΅, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ приступим. НапишСм скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° нпс заставляСт Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ нпс произнСсти имя ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ: function interact(e){ SEND_TO_ALL_NPCS(INSTANCE( "event1", {value1:e.npc.name} )) }

Π­Ρ‚ΠΎΡ‚ скрипт ΠΌΡ‹ вставляСм Π² нпс, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ. Π’ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… здСсь - id ΠΈΠ²Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ написано Π² строкС β„–1 ΠΈΠ²Π΅Π½Ρ‚Π° Π² ΠΏΠ°ΠΏΠΊΠ΅. Π’ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках - Π·Π°Π΄Π°ΡŽΡ‚ΡΡ значСния всСх Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (строки β„–3 ΠΈ β„–4 Π² скриптС). Π­Ρ‚ΠΈ значСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ нпс. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ числа, строки (ΠΈΡ… Π½Π°Π΄ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…) ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (Ρƒ нас Π² скриптС ΠΌΠ΅Ρ‚ΠΎΠ΄ - e.npc.name, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Ρ€Ρ‘Ρ‚ имя исходного нпс). Π’Π΅ΠΏΠ΅Ρ€ΡŒ напишСм скрипт для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ нпс: 1 var npc; 2 function init(e){npc = e.npc} 3 function say_name(e){ 4 npc.say(e.value1)}

Π’ΡƒΡ‚ say_name Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строчкС - это Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΠ²Π΅Π½Ρ‚Π° (прописываСтся Π² строкС β„–2 скрипта Π² Ρ„Π°ΠΉΠ»Π΅, см. Π²Ρ‹ΡˆΠ΅). Π’ΠΎΠΎΠ±Ρ‰Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ id ΠΈΠ²Π΅Π½Ρ‚Π° Π² Ρ„Π°ΠΉΠ»Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ. Π’ΠΎΠ³Π΄Π° ΠΈ Π² нпс-ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ ΠΈ Π² нпс-ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠ΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅. ΠŸΡ€ΠΈ этом скрипт ΠΏΡ€ΠΈΠΌΡƒΡ‚ всС ΠΏΡ€ΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ нпс Π² ΠΌΠΈΡ€Π΅, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² ΠΎΠΊΠ½Π΅ скрипта Π΅ΡΡ‚ΡŒ "function say_name" ΠΈ всС Π½Π°Ρ‡Π½ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ свои дСйствия, связанныС с этим ΠΈΠ²Π΅Π½Ρ‚ΠΎΠΌ. Если Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρƒ всСх Ρ€Π°Π·Π½Ρ‹Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠΌ ΠΈΠ· нпс скрипт Π² Π±Π»ΠΎΠΊ: 1 function interact(e){ 2 var w = e.npc.world 3 var blocks = [w.getBlock(15,102,2),w.getBlock(15,108,2)] 4 SEND_TO_BLOCKS(INSTANCE( "event1", {value1:456} ), blocks) }

Π­Ρ‚Ρƒ Ρ‡Π°ΡΡ‚ΡŒ ΠΌΡ‹ вставляСм Π² нпс. Π’ Ρ†Π΅Π»ΠΎΠΌ, Ρ‚ΡƒΡ‚ всё Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² строкС β„–3 Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ (Ρ‡Π΅Ρ€Π΅Π· getBlock ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ) ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ всСх Π±Π»ΠΎΠΊΠΎΠ², ΠΊΡƒΠ΄Π° Π²Ρ‹ отправляСтС скрипт. И Ссли Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ "function say_name", Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΅Ρ‘ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‚.

Π­Ρ‚Ρƒ Ρ‡Π°ΡΡ‚ΡŒ Π² Π±Π»ΠΎΠΊ:

var block; function init(e){block = e.block} function say_name(e){ block.world.setBlock(block.x,block.y+1,block.z,'minecraft:stone',0)}

Π‘Π»ΠΎΠΊ, ΠΏΡ€ΠΈΠ½ΡΠ²ΡˆΠΈΠΉ скрипт, поставит Π±Π»ΠΎΠΊ камня Π½Π°Π΄ собой.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° скрипта Π² ΠΈΠ³Ρ€ΠΎΠΊΠ° осущСствляСтся Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² нпс, Π½ΠΎ вмСсто SEND_TO_ALL_NPCS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ SEND_TO_ALL_PLAYERS. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ скрипт Π² ΠΈΠ³Ρ€ΠΎΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΈΠ²Π΅Π½Ρ‚:

var player; function interact(e){player = e.player} function say_name(e){ player.showDialog(14,"Π‘ΠΊΠΈΠ½")}

Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ с id 14.

About

This script pattern to use custom events in Custom NPC Minecraft mod

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •