Вопрос Нормальный код на skript

Версия Minecraft
1.18.X

Lacky

Пользователь
Сообщения
15
первый

Код:
on load:
    loop all players:
        add all players to {_players::*}   
        set {_vote} to 0
        set {_size} to size of {_players::*}
        set {_box} to a random integer between 9901 and 9908
        set {_voteProcent} to {_vote} / {_size} * 100   
command /vote <text>:
    trigger:
        if {_%player%.vote} is false:
            if arg 1 is "+":
                set {_vote} to {_vote} + 1
                set {_%player%.vote} to true
            else if {_%player%.vote} is true:
                send "Ты уже проголосовал! Не жульничай!" to player
            else:
                send "используй /vote +" to player
        if {_voteProcent} >= 60:
            wait 3 seconds 
            clear inventory of all players   
            execute console command "givebox {_players::*} {_box}"
            set {_vote} to 0
        loop {_players::*}:
            set {loop-player.vote} to false

и второй

Код:
on load:
        set {leaves.%player%} to 3
on death of player:
        set {leaves.%victim%} to {leaves.%victim%} -1
        message "игрок %victim% умер и у него осталось {leaves.%victim%} жизней" to all players

        if {leaves.%victim%} is 0:
        set gamemode of {victim} to spectator
        message "игрок %victim% истратил все жизни, и больше не сомжет играть с нами.." to all players
 
offtop
Что, собственно говоря, это такое? И зачем эта тема?
ну чтоб вы посмотрели если то проверили, себе взяли. это код на 3 жизни для игрока и голосование командой /vote + и при 60 процентах выполняет команды
 
Используй хеш таблицу это быстрее, старайся не использовать {_vote} лучше используй локальные переменные, можно добавить к примеру сколько игроков уже проголосовало было бы удобно, у меня только вопрос что будет если игрок проголосует отрицательно - или введет /vote и какой нибудь текст))
 
Используй хеш таблицу это быстрее, старайся не использовать {_vote} лучше используй локальные переменные, можно добавить к примеру сколько игроков уже проголосовало было бы удобно, у меня только вопрос что будет если игрок проголосует отрицательно - или введет /vote и какой нибудь текст))
отрицательно не получится а если введет текст ему напишет "используй /vote +"
строка
else: send "используй /vote +" to player
Объединено

отрицательно не получится а если введет текст ему напишет "используй /vote +"
строка
Используй хеш таблицу это быстрее, старайся не использовать {_vote} лучше используй локальные переменные, можно добавить к примеру сколько игроков уже проголосовало было бы удобно, у меня только вопрос что будет если игрок проголосует отрицательно - или введет /vote и какой нибудь текст))
потом может добавлю отрицательное голосование. кстати скрипт изучаю третий день
 
отрицательно не получится а если введет текст ему напишет "используй /vote +"
строка

Объединено



потом может добавлю отрицательное голосование. кстати скрипт изучаю третий день
не плохо
 
ну чтоб вы посмотрели если то проверили, себе взяли. это код на 3 жизни для игрока и голосование командой /vote + и при 60 процентах выполняет команды
ну слушай ты везде используешь локальные переменные зачем? И еще ты создаешь локальную переменную с ником и значением {_player%.vote} и проверить это значений где-нибудь в другом месте будет сложно поскольку значение имеет уникальный айди в виде ника игрока. "on load" это момент когда загрузился файл скрипта
Я переписал твой скрипт и если понял твою затею то получилось так,


Python:
# oldiberezko?

variables:
    {vote} = 0
    {box} = 0
    {voteProcent} = 0
    {p_size} = 0
on load: # Момент когда скрипт загружается
    set {box} to a random integer between 9901 and 9908


on join:
    add 1 to {p_size}
    set {leaves::%player%} to 3
on quit:
    remove 1 from {p_size}

command /vote [<text>]:
    trigger:
        if {vote::%player%} is not set:
            add 1 to {vote}
            set {vote::%player%} to true
            send "Голос получен" to player
            set {voteProcent} to {vote} / {p_size} * 100 
        else if {vote::%player%} is true:
            send "Вы уже голосовали" to player
        else:
            send "Ошибка" to player


every 120 seconds:
    loop all players:
        if {voteProcent} >= 60:
            if {vote::%loop-player%} is true:
                clear {loop-player}'s inventory
                execute console command "givebox %loop-player% {@box}"
                set {vote::%loop-players%} to false



on death of player:
    if {leaves::%victim%} is 0:
        set gamemode of {victim} to spectator
        broadcast "игрок %victim% истратил все жизни, и больше не сомжет играть с нами.."
    else:
        remove 1 from {leaves::%victim%}
        set {_lives} to {leaves::%victim%}
        broadcast "игрок %victim% умер и у него осталось %{_lives}% жизней"
 
ну слушай ты везде используешь локальные переменные зачем? И еще ты создаешь локальную переменную с ником и значением {_player%.vote} и проверить это значений где-нибудь в другом месте будет сложно поскольку значение имеет уникальный айди в виде ника игрока. "on load" это момент когда загрузился файл скрипта
Я переписал твой скрипт и если понял твою затею то получилось так,


Python:
# oldiberezko?

variables:
    {vote} = 0
    {box} = 0
    {voteProcent} = 0
    {p_size} = 0
on load: # Момент когда скрипт загружается
    set {box} to a random integer between 9901 and 9908


on join:
    add 1 to {p_size}
    set {leaves::%player%} to 3
on quit:
    remove 1 from {p_size}

command /vote [<text>]:
    trigger:
        if {vote::%player%} is not set:
            add 1 to {vote}
            set {vote::%player%} to true
            send "Голос получен" to player
            set {voteProcent} to {vote} / {p_size} * 100
        else if {vote::%player%} is true:
            send "Вы уже голосовали" to player
        else:
            send "Ошибка" to player


every 120 seconds:
    loop all players:
        if {voteProcent} >= 60:
            if {vote::%loop-player%} is true:
                clear {loop-player}'s inventory
                execute console command "givebox %loop-player% {@box}"
                set {vote::%loop-players%} to false



on death of player:
    if {leaves::%victim%} is 0:
        set gamemode of {victim} to spectator
        broadcast "игрок %victim% истратил все жизни, и больше не сомжет играть с нами.."
    else:
        remove 1 from {leaves::%victim%}
        set {_lives} to {leaves::%victim%}
        broadcast "игрок %victim% умер и у него осталось %{_lives}% жизней"
спасибо
Объединено

ну слушай ты везде используешь локальные переменные зачем? И еще ты создаешь локальную переменную с ником и значением {_player%.vote} и проверить это значений где-нибудь в другом месте будет сложно поскольку значение имеет уникальный айди в виде ника игрока. "on load" это момент когда загрузился файл скрипта
Я переписал твой скрипт и если понял твою затею то получилось так,


Python:
# oldiberezko?

variables:
    {vote} = 0
    {box} = 0
    {voteProcent} = 0
    {p_size} = 0
on load: # Момент когда скрипт загружается
    set {box} to a random integer between 9901 and 9908


on join:
    add 1 to {p_size}
    set {leaves::%player%} to 3
on quit:
    remove 1 from {p_size}

command /vote [<text>]:
    trigger:
        if {vote::%player%} is not set:
            add 1 to {vote}
            set {vote::%player%} to true
            send "Голос получен" to player
            set {voteProcent} to {vote} / {p_size} * 100
        else if {vote::%player%} is true:
            send "Вы уже голосовали" to player
        else:
            send "Ошибка" to player


every 120 seconds:
    loop all players:
        if {voteProcent} >= 60:
            if {vote::%loop-player%} is true:
                clear {loop-player}'s inventory
                execute console command "givebox %loop-player% {@box}"
                set {vote::%loop-players%} to false



on death of player:
    if {leaves::%victim%} is 0:
        set gamemode of {victim} to spectator
        broadcast "игрок %victim% истратил все жизни, и больше не сомжет играть с нами.."
    else:
        remove 1 from {leaves::%victim%}
        set {_lives} to {leaves::%victim%}
        broadcast "игрок %victim% умер и у него осталось %{_lives}% жизней"
а с локальными я сам исправил
 
ну слушай ты везде используешь локальные переменные зачем? И еще ты создаешь локальную переменную с ником и значением {_player%.vote} и проверить это значений где-нибудь в другом месте будет сложно поскольку значение имеет уникальный айди в виде ника игрока. "on load" это момент когда загрузился файл скрипта
Я переписал твой скрипт и если понял твою затею то получилось так,


Python:
# oldiberezko?

variables:
    {vote} = 0
    {box} = 0
    {voteProcent} = 0
    {p_size} = 0
on load: # Момент когда скрипт загружается
    set {box} to a random integer between 9901 and 9908


on join:
    add 1 to {p_size}
    set {leaves::%player%} to 3
on quit:
    remove 1 from {p_size}

command /vote [<text>]:
    trigger:
        if {vote::%player%} is not set:
            add 1 to {vote}
            set {vote::%player%} to true
            send "Голос получен" to player
            set {voteProcent} to {vote} / {p_size} * 100
        else if {vote::%player%} is true:
            send "Вы уже голосовали" to player
        else:
            send "Ошибка" to player


every 120 seconds:
    loop all players:
        if {voteProcent} >= 60:
            if {vote::%loop-player%} is true:
                clear {loop-player}'s inventory
                execute console command "givebox %loop-player% {@box}"
                set {vote::%loop-players%} to false



on death of player:
    if {leaves::%victim%} is 0:
        set gamemode of {victim} to spectator
        broadcast "игрок %victim% истратил все жизни, и больше не сомжет играть с нами.."
    else:
        remove 1 from {leaves::%victim%}
        set {_lives} to {leaves::%victim%}
        broadcast "игрок %victim% умер и у него осталось %{_lives}% жизней"
offtop привет кста можешь подсказать нормальные уроки по java майнкрафт на русском на ютубе хочу изучать начать
 
ну слушай ты везде используешь локальные переменные зачем? И еще ты создаешь локальную переменную с ником и значением {_player%.vote} и проверить это значений где-нибудь в другом месте будет сложно поскольку значение имеет уникальный айди в виде ника игрока. "on load" это момент когда загрузился файл скрипта
Я переписал твой скрипт и если понял твою затею то получилось так,


Python:
# oldiberezko?

variables:
    {vote} = 0
    {box} = 0
    {voteProcent} = 0
    {p_size} = 0
on load: # Момент когда скрипт загружается
    set {box} to a random integer between 9901 and 9908


on join:
    add 1 to {p_size}
    set {leaves::%player%} to 3
on quit:
    remove 1 from {p_size}

command /vote [<text>]:
    trigger:
        if {vote::%player%} is not set:
            add 1 to {vote}
            set {vote::%player%} to true
            send "Голос получен" to player
            set {voteProcent} to {vote} / {p_size} * 100
        else if {vote::%player%} is true:
            send "Вы уже голосовали" to player
        else:
            send "Ошибка" to player


every 120 seconds:
    loop all players:
        if {voteProcent} >= 60:
            if {vote::%loop-player%} is true:
                clear {loop-player}'s inventory
                execute console command "givebox %loop-player% {@box}"
                set {vote::%loop-players%} to false



on death of player:
    if {leaves::%victim%} is 0:
        set gamemode of {victim} to spectator
        broadcast "игрок %victim% истратил все жизни, и больше не сомжет играть с нами.."
    else:
        remove 1 from {leaves::%victim%}
        set {_lives} to {leaves::%victim%}
        broadcast "игрок %victim% умер и у него осталось %{_lives}% жизней"
поможешь?
 
Назад
Сверху Снизу