Добавлен
Есть 2 пакета - Systems и itemlib
В itemlib система статов при поднятии шмоток, в Systems - действия при поднятии шмотки
в Systems:
import public ItemLib
в ItemLib:
import public initlater Systems
При этом, функцию из ItemLib нельзя вызвать, ибо вылезает ошибка:
[Wurst] Function ItemStatSyncAll is not visible here.
function StatSyncAll(unit u)
defined in package ItemLib
Есть ли способ поправить это, не объединяя 2 пакета в один?
Пакеты друг без друга работать не могут
раскрыть

trigger ItemDrop = CreateTrigger() //глобалка

function RemoveStats(integer itemid, unit owner)
	...
	...
	...
	StatsSyncAll(owner) // Ошибка

//=========================================
function Trig_itemdrop_Actions()
	RemoveStats(GetItemTypeId(GetManipulatedItem()),GetManipulatingUnit())
	
function InitTrig_itemdrop()
	TriggerRegisterAnyUnitEventBJ(ItemDrop,EVENT_PLAYER_UNIT_DROP_ITEM)
	TriggerAddAction(ItemDrop, function Trig_itemdrop_Actions )
GetLocalPlayer, прошу помощи :3

Принятый ответ

Такое может произойти если функция не объявлена публичной
public function StatsSyncAll(unit owner)
    // Ра-та-та-та-та
По умолчанию, объявления внутри пакета приватные.
P.S. в Wurst лучше придерживаться стиля Wurst. То бишь, имена функций и переменных следует начинать с маленькой буквы
public function  statsSyncAll(unit owner)
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
6 лет назад
0
Похожие вопросы:

ответ
  1. Никогда, честно говоря, не задумывался.
  2. Заботься о чистоте когда. Любой скриптовой язык пишется для удобства программиста, производительность это не главная вещь, о которой в нем нужно задумываться.
8gabriel8:
Что за visual code? Чтобы тестирование не запускалось в оконном режиме, убери отсюда галку:
Visual Studio Code
Wurst работает с кодом карты и РО из внешнего текстового редактора, на WE остается переключаться разве что ради ландшафта. Это к тому, что JNGP или SharpCraft с Wurst используются не часто.
ответ
Ответ нашёлся, табуляции не было...

1
17
6 лет назад
Отредактирован GetLocalPlayer
1
Такое может произойти если функция не объявлена публичной
public function StatsSyncAll(unit owner)
    // Ра-та-та-та-та
По умолчанию, объявления внутри пакета приватные.
P.S. в Wurst лучше придерживаться стиля Wurst. То бишь, имена функций и переменных следует начинать с маленькой буквы
public function  statsSyncAll(unit owner)
Принятый ответ
0
17
6 лет назад
0
GetLocalPlayer, Спасибо
Чтобы оставить комментарий, пожалуйста, войдите на сайт.