Bir ara geliştirmek üzere başladığım Rust inşa sisteminin son kodları.. Anlayan geliştirebilir.

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
 

Kovalski_Eyes

Kızıltaş Madencisi
En iyi cevaplar
0
en iyisi şematik + basıcaksın yapılara claimleri güçlendiriceksin falan yogbox gibi sonra gelsin towny
 
Üst