Сборки серверов

СливПлатные

Сейчас онлайн

  • aboulina89
  • ARCHEEEZER
  • Toping
  • bobobo
  • Daniil_5655
  • KameLiya
  • Shawon12345
  • RoxelyFoxely
  • timverhovniy
  • RooveThelema
  • BlackBro
  • katze225
  • Kryaznov
  • Jarvis20015
  • recate
  • HmsterVed
  • FloTyk_CloWn
  • Avey
  • ArborUncle
  • scom_1209yt
  • PS_LAZY_SEAL
  • ItsFloweSs
  • huydsfhudsfhug
  • AsalERKA
  • kutomori
  • Kukurivec
  • NongMiney
  • Gleban2000
  • Ugin
  • brain
  • Dimka00
  • luckyhh
  • Sanseddy
  • gulping
  • kisa
  • misha123
  • benzobak
  • Marg
  • NikoVK
  • Milly_official
  • Nameless58
  • FrenkiTvinn
  • абвг1345234
  • RamzST
  • m0k0xa
  • GeroiN111
  • RazWars
  • Moadip
  • drrsan
  • Votond
  • T1REK
  • cherte9ok
  • IvanRa
  • ucnobi
  • CrowelyPro
  • pfpff
  • Adept
  • Postal_08
  • hoffmann56r
  • TimTimTim
  • Mariposa
  • Set
  • avl123
  • Чебупелик
  • LastClock
  • serhijhig
  • Mysterio ♡
  • wave6lol
  • TakumiHiji
  • adfhwetujwrjt
  • no_war
  • kyotoagony
  • Iriskas
  • fr1z

Помощь MyCommand + DeluxMenus, ошибка проверки playerdata

  • Автор темыMaavedal
  • Дата начала
M
Картина такая, пытался сделать через DM & MCMD , селлера с обновляемыми предметами, нашёл слитые конфиги всем известного сервера , который использует эту фичу. Проблема в том, что при обновление предмета в DM, если один игрок на сервере , то всё хорошо, круто работает. Когда же несколько игроков , DM почему-то херней страдает и перемешивает playerdata разных игроков.
Пример кода на то, чтобы селлер обнулял и выдавал случайный предмет:
Код:
farmernew:
  command: /farmernew
  type: RUN_COMMAND
  runcmd:
  - '$Script$%if%%mycommand_playerdata_farmernew%==0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmernew 1'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-p1 0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-p2 0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-amount 12800'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-data 0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-price 0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-data-formatted 0'
  - '$delay$<1>'
  - '/farmer-getitem-0'
  - '$delay$<1>'
  - '$RUN_CONSOLE$dm reload farmer'
  permission-required: false
  register: false
farmerfarmergetitem:
  command: /farmer-getitem-0
  type: RUN_COMMAND
  runcmd:
  - '$Script$%PlayerData%variable1=$GetRandomStringFromList%string1;string2;string3;string4%'
  - '$Script$%if%$PlayerData%variable1%==string1'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-data golden_carrot'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-data-formatted Золотая морковь'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-price %rng_160,190%'
  - '$Script$%if%$PlayerData%variable1%==string2'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-data baked_potato'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-data-formatted Печённый картофель'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-price %rng_144,156%'
  - '$Script$%if%$PlayerData%variable1%==string3'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-data chicken'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-data-formatted Курятина'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-price %rng_112,130%'
  - '$Script$%if%$PlayerData%variable1%==string4'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-data cod'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $player farmer-slot0-price %rng_144,178%'
  permission-required: false
  register: false
А это пример кода как выглядит DM
Код:
open_command:
  - farmer
  - фермер
size: 45
register_command: true
update_interval: 1
open_commands:
- '[player] farmernew'

SLOT22:
    material: placeholder-%mycommand_playerdata_farmer-slot0-data%
    slot: 22
    priority: 4
    display_name: '&a%mycommand_playerdata_farmer-slot0-data-formatted% &7| &f%mycommand_playerdata_farmer-slot0-selled%&7/&f%mycommand_playerdata_farmer-slot0-amount%'
    view_requirement:
      requirements:
        seller_beetroot:
          type: has permission
          permission: seller_SLOT22
    lore:
    - ''
    - ' &fЦена за каждые 16шт.: &6%mycommand_playerdata_farmer-slot0-price% монет.'
    - ''
    - ' &cЛКМ&f чтобы продать &61 шт.'
    - ' &cПКМ&f чтобы продать &616 шт.'
    - ' &cShift+ПКМ&f чтобы продать &6всё.'
    - ''
    - ' &fОбновление через &#0BCFFB%cmi_schedule_nextin_farmer%'
    - ''
    update: true
    left_click_requirement:
      requirements:
        type:
          type: javascript
          expression: '%checkitem_amount_mat:{mycommand_playerdata_farmer-slot0-data}% > 0'
          deny_commands:
          - '[sound] ENTITY_WANDERING_TRADER_NO'
    right_click_requirement:
      requirements:
        type:
          type: javascript
          expression: '%checkitem_amount_mat:{mycommand_playerdata_farmer-slot0-data}% > 15'
          deny_commands:
          - '[sound] ENTITY_WANDERING_TRADER_NO'
    shift_right_click_requirement:
      requirements:
        type:
          type: javascript
          expression: '%checkitem_amount_mat:{mycommand_playerdata_farmer-slot0-data}% > 2303'
          deny_commands:
          - '[sound] ENTITY_WANDERING_TRADER_NO'
    left_click_commands:
    - '[player] farmer-farmer-sell 0 1'
    - '[sound] ENTITY_WANDERING_TRADER_YES'
    - '[refresh]'
    right_click_commands:
    - '[player] farmer-farmer-sell 0 16'
    - '[sound] ENTITY_WANDERING_TRADER_YES'
    - '[refresh]'
    shift_left_click_commands:
    - '[player] farmer-farmer-sell 0 all'
    - '[sound] ENTITY_WANDERING_TRADER_YES'
    - '[refresh]'
А вот какая каша получается в итоге
2024 08 16 22 17 26 — Postimages
Может кто знает как исправить это? Либо какие то доп аргументы нужно вводить для проверки даты определённого игрока?
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 130
Это скорее всего конкуренция между потоками данных, playerdata может быть не изолированным для каждого игрока в одновременном выполнении команд.
Попробуйте вариант с переменными на основе ID игрока
 
M
@_Dead_, да я понял это уже к сожалению , как сделать чтобы проверка была айди игрока? Если меняю аргумент $player на аргумент $uuid то мне в консоли пишет что такой игрок офлайн
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 130
@Maavedal, можно попробовать выполнить преобразование UUID в имя игрока перед вызовом команд.
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 130
@Maavedal, Попробуйте
JavaScript:
farmernew:
  command: /farmernew
  type: RUN_COMMAND
  runcmd:
  - '$Script$%if%%mycommand_playerdata_farmernew%==0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmernew 1'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-p1 0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-p2 0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-amount 12800'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-data 0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-price 0'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-data-formatted 0'
  - '$delay$<1>'
  - '/farmer-getitem-0'
  - '$delay$<1>'
  - '$RUN_CONSOLE$dm reload farmer'
  permission-required: false
  register: false

farmerfarmergetitem:
  command: /farmer-getitem-0
  type: RUN_COMMAND
  runcmd:
  - '$Script$%PlayerData%variable1=$GetRandomStringFromList%string1;string2;string3;string4%'
  - '$Script$%if%$PlayerData%variable1%==string1'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-data golden_carrot'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-data-formatted Золотая морковь'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-price %rng_160,190%'
  - '$Script$%if%$PlayerData%variable1%==string2'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-data baked_potato'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-data-formatted Печённый картофель'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-price %rng_144,156%'
  - '$Script$%if%$PlayerData%variable1%==string3'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-data chicken'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-data-formatted Курятина'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-price %rng_112,130%'
  - '$Script$%if%$PlayerData%variable1%==string4'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-data cod'
  - '$RUN_CONSOLE$mycmd-playerdata set_silent $uuid farmer-slot0-price %rng_144,178%'
  permission-required: false
  register: false
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 130
@Maavedal, Сложно так сразу определить почему такое происходит, если бы у меня был доступ к серверной части я бы мог решить эту проблему.
 
ВерхНиз