Pledix
Kızıltaş Madencisi
- En iyi cevaplar
- 0
Evet arkadaşlar, bir ara birilerinin referansı üzerine Rust inşa sisteminin skripti geliştirmeye başlamıştım. Fakat mantıklı olmadığını farkettim. Çünkü inşa sistemini koordinat sistemine entegre ederek geliştirmek gerçekten bazı sınırları zorlamamı falan sağlamıştı. Neyse fazla uzatmadan bu kodları anlayacak ve geliştirebilecek olan arkadaşlar için projede son safhadaki kodlarımı paylaşıyorum. Üzerine yoğunlaşırsanız kodları anlayabileceğinizi düşünüyorum, iyi forumlar! Bu projeyi bitirecek işsiz arkadaşlar vardır elbet değil mi?
Kod:
options:
prefix: &6[RUST]
command /resetrust:
trigger:
clear {rust::*}
on right click:
if player's tool's name is "Sütun":
if player's tool is oak log:
set {_blockType} to oak log
if player's tool is spruce log:
set {_blockType} to spruce log
if player's tool is birch log:
set {_blockType} to birch log
set {_loc} to player's location
remove 1 from {_loc}'s y coord
send "slabback"
if 1 is 1:
send "slab"
set {_point} to event-block's location
set {_chunk} to "%{_point}'s chunk%"
replace all "chunk (" and ") of %event-block's world%" in {_chunk} with ""
loop {rust::chunk::%{_chunk}%::*}:
if {_areas} isn't set:
set {_areas} to loop-value-1
else:
if {_areas} contains loop-value-1:
set {_areas} to {_areas}
else:
set {_areas} to "%{_areas}% %loop-value-1%"
set {_areas::*} to split {_areas} at " "
loop {_areas::*}:
send "ID: %{_id}%"
set {_id} to loop-value parsed as int
set {_rad} to {rust::area::%{_id}%}
send "%{_rad}%"
set {_rad::*} to split {_rad} at "@"
send "%{_rad::*}%"
set {_yAxis::*} to split "%{_rad::5}%" at "."
loop 4 times:
set {_rCorner.%loop-number%} to {_center}
set {_rCorner.%loop-number%::*} to split "%{_rad::%loop-number%}%" at ","
set {_rCorner.%loop-number%.x::*} to split "%{_rCorner.%loop-number%::1}%" at "."
set {_rCorner.%loop-number%.z::*} to split "%{_rCorner.%loop-number%::2}%" at "."
send "%{_rCorner.%loop-number%::1}%"
send "%{_rCorner.%loop-number%::2}%"
send "%{_yAxis::1}%"
#send "%{_point}'s x coord%,%{_point}'s y coord%,%{_point}'s z coord%"
#send "%{_rCorner.%loop-number%}'s x coord%.5,%{_rCorner.%loop-number%}'s y coord%.5,%{_rCorner.%loop-number%}'s z coord%.5"
if "%{_point}'s x coord%,%{_point}'s y coord%,%{_point}'s z coord%" is "%{_rCorner.%loop-number%::1}%,%{_yAxis::1}%.5,%{_rCorner.%loop-number%::2}%":
add 1 to {_point}'s y coord
set {_point+} to {_point}
add 1 to {_point+}'s y coord
set {_point++} to {_point}
add 2 to {_point++}'s y coord
set block at {_point} to {_blockType}
set block at {_point+} to {_blockType}
set block at {_point++} to {_blockType}
if player's tool's name is "Zemin":
player's tool is oak plank or spruce plank or birch plank
if player's tool is oak plank:
set {_blockType} to 125:0
else if player's tool is spruce plank:
set {_blockType} to 125:1
else:
set {_blockType} to 125:2
set {_center} to event-block's location
# CORNERS IS SETTING
set {_corner.1} to {_center}
set {_corner.2} to {_center}
set {_corner.3} to {_center}
set {_corner.4} to {_center}
# Corner 1
remove 2 from {_corner.1}'s x coord
remove 2 from {_corner.1}'s z coord
# Corner 2
add 2 to {_corner.2}'s x coord
add 2 to {_corner.2}'s z coord
# Corner 3
remove 2 from {_corner.3}'s x coord
add 2 to {_corner.3}'s z coord
# Corner 4
add 2 to {_corner.4}'s x coord
remove 2 from {_corner.4}'s z coord
set {_no} to 0
loop blocks within {_corner.1} to {_corner.2}:
if loop-block is any leaves or water or any sand:
send "{@prefix} &cBuraya Zemin koyamazsın."
stop
else if loop-block is double normal slab item or double pine slab item or double birch slab item:
set {_wood} to true
stop loop
if {_wood} is true:
loop 4 times:
set {_corner.%loop-number%.chunk} to "%{_corner.%loop-number%}'s chunk%"
replace all "chunk (" and ") of %event-block's world%" in {_corner.%loop-number%.chunk} with ""
add {_corner.1.chunk} to {_chunks::*}
if {_corner.2.chunk} isn't {_corner.1.chunk}:
add {_corner.2.chunk} to {_chunks::*}
if {_corner.3.chunk} isn't {_corner.1.chunk} or {_corner.2.chunk}:
add {_corner.3.chunk} to {_chunks::*}
if {_corner.4.chunk} isn't {_corner.1.chunk} or {_corner.2.chunk} or {_corner.3.chunk}:
add {_corner.4.chunk} to {_chunks::*}
set {_matchedCorners} to 0
send "&cSIZE >> &l%size of {_chunks::*}%"
loop {_chunks::*}:
send "&aLOOP CHUNK ID: %loop-value-1%"
if {rust::chunk::%loop-value-1%::*} is set:
send "&dSIZE: %size of {rust::chunk::%loop-value-1%::*}%"
loop {rust::chunk::%loop-value-1%::*}:
if {_areas} isn't set:
set {_areas} to loop-value-2
else:
if {_areas} contains loop-value-2:
set {_areas} to {_areas}
else:
set {_areas} to "%{_areas}% %loop-value-2%"
set {_areas::*} to split {_areas} at " "
loop {_areas::*}:
set {_id} to loop-value-1 parsed as int
set {_rad} to {rust::area::%{_id}%}
set {_rad::*} to split {_rad} at "@"
set {_yAxis::*} to split "%{_rad::5}%" at "."
set {_yAxis} to {_yAxis::1} parsed as int
loop 4 times:
set {_rCorner.%loop-number%} to {_center}
set {_rCorner.%loop-number%::*} to split "%{_rad::%loop-number%}%" at ","
set {_rCorner.%loop-number%.x::*} to split "%{_rCorner.%loop-number%::1}%" at "."
set {_rCorner.%loop-number%.z::*} to split "%{_rCorner.%loop-number%::2}%" at "."
set {_rCorner.%loop-number%}'s x coord to {_rCorner.%loop-number%.x::1} parsed as int
set {_rCorner.%loop-number%}'s y coord to {_yAxis}
set {_rCorner.%loop-number%}'s z coord to {_rCorner.%loop-number%.z::1} parsed as int
loop 4 times:
loop 4 times:
if "%{_corner.%loop-number-1%}'s x coord%,%{_corner.%loop-number-1%}'s z coord%" is "%{_rCorner.%loop-number-2%}'s x coord%.5,%{_rCorner.%loop-number-2%}'s z coord%.5":
set {_corner.%loop-number-1%.match} to true
send "&7Eşleşme başarılı!"
loop 4 times:
if {_corner.%loop-number%.match} is true:
send "%loop-number%"
add 1 to {_matchedCorners}
send "Total = &b%{_matchedCorners}%"
if {_matchedCorners} is 0:
send "0"
stop
else if {_matchedCorners} is 1:
send "1"
stop
else if {_matchedCorners} is 2 or 3 or 4:
send "2 or 3 or 4"
loop blocks within {_corner.1} to {_corner.2}:
set loop-block to {_blockType}
loop 4 times:
set {_corner.%loop-number%.chunk} to "%{_corner.%loop-number%}'s chunk%"
replace all "chunk (" and ") of %event-block's world%" in {_corner.%loop-number%.chunk} with ""
add {_corner.1.chunk} to {_chunks::*}
if {_corner.2.chunk} isn't {_corner.1.chunk}:
add {_corner.2.chunk} to {_chunks::*}
if {_corner.3.chunk} isn't {_corner.1.chunk} or {_corner.2.chunk}:
add {_corner.3.chunk} to {_chunks::*}
if {_corner.4.chunk} isn't {_corner.1.chunk} or {_corner.2.chunk} or {_corner.3.chunk}:
add {_corner.4.chunk} to {_chunks::*}
set {_lastAreaNo} to size of {rust::area::*}
if {_lastAreaNo} isn't set:
set {_lastAreaNo} to 1
else if {_lastAreaNo} is 0:
set {_lastAreaNo} to 1
else:
add 1 to {_lastAreaNo}
loop {_chunks::*}:
add "%{_lastAreaNo}%" to {rust::chunk::%loop-value%::*}
set {_rad} to "%x coord of {_corner.1}%,%z coord of {_corner.1}%@%x coord of {_corner.2}%,%z coord of {_corner.2}%@%x coord of {_corner.3}%,%z coord of {_corner.3}%@%x coord of {_corner.4}%,%z coord of {_corner.4}%@%y coord of {_center}%"
set {rust::area::%{_lastAreaNo}%} to {_rad}
else:
send "olağandışı" to console
else:
loop blocks within {_corner.1} to {_corner.2}:
set loop-block to {_blockType}
loop 4 times:
set {_corner.%loop-number%.chunk} to "%{_corner.%loop-number%}'s chunk%"
replace all "chunk (" and ") of %event-block's world%" in {_corner.%loop-number%.chunk} with ""
add {_corner.1.chunk} to {_chunks::*}
if {_corner.2.chunk} isn't {_corner.1.chunk}:
add {_corner.2.chunk} to {_chunks::*}
if {_corner.3.chunk} isn't {_corner.1.chunk} or {_corner.2.chunk}:
add {_corner.3.chunk} to {_chunks::*}
if {_corner.4.chunk} isn't {_corner.1.chunk} or {_corner.2.chunk} or {_corner.3.chunk}:
add {_corner.4.chunk} to {_chunks::*}
set {_lastAreaNo} to size of {rust::area::*}
if {_lastAreaNo} isn't set:
send "yok mu"
set {_lastAreaNo} to 1
else if {_lastAreaNo} is 0:
send "0 mı"
set {_lastAreaNo} to 1
else:
send "artırıldı mı"
add 1 to {_lastAreaNo}
loop {_chunks::*}:
add "%{_lastAreaNo}%" to {rust::chunk::%loop-value%::*}
set {_rad} to "%x coord of {_corner.1}%,%z coord of {_corner.1}%@%x coord of {_corner.2}%,%z coord of {_corner.2}%@%x coord of {_corner.3}%,%z coord of {_corner.3}%@%x coord of {_corner.4}%,%z coord of {_corner.4}%@%y coord of {_center}%"
set {rust::area::%{_lastAreaNo}%} to {_rad}
on place:
event-block is any oak plank or spruce plank or birch plank or oak log or spruce log or birch log
cancel event