Я придумал уже) за основу взял RUNE, сделал ИТЕМУ скилл, durability, перелепил Skillgpr skillname, а etcitemgpr и itemname не трогал. В итоге получилось, что итем в инвентаре нет,а скилл есть и по истечению времени итем скилл исчезает. Корректно работает с забытым инвентарем. Т.е. Итем не занимает место, и инвентарь забивается 80/80
Вообщем, сам спросил, сам ответил
Я придумал уже) за основу взял RUNE, сделал ИТЕМУ скилл, durability, перелепил Skillgpr skillname, а etcitemgpr и itemname не трогал. В итоге получилось, что итем в инвентаре нет,а скилл есть и по истечению времени итем скилл исчезает. Корректно работает с забытым инвентарем. Т.е. Итем не занимает место, и инвентарь забивается 80/80
Вообщем, сам спросил, сам ответил
Без исходников можно, но только костылями. Если же они (исходники, а не костыли ) есть в наличии, то делается наподобие временных предметов. Примерно так:
Добавляем поле классу Skill/L2Skill/Skiliwe (или как там он у тебя называется), обозначающее оставшееся время в виде timestamp (так как скиллов много, этот вариант будет менее затратным, нежели храня его в Date). Не забываем про инкапсуляцию.
Добавляем проверочку на оставшееся время в метод добавления скилла в скилл-лист игрока/нпц, в котором задаем время удаления данного скилла.
Добавляем в парсер и обработчик значения оставшегося времени скилла в xml.