Перейти к содержанию
Авторизация  
BadStealth

Как Заставить Работать .geticon

Рекомендуемые сообщения

Ребят столкнулся с траблом. Вобщем сделал вывод скилов в картинках. Т.е. чтобы при нажатии на моба показывало его скилы и иконку скила. Все прописал, но у меня как-будто вообще нет функции getIcon.

 

Вопрос в следующем- что и куда нужно добавить чтобы функция getIcon начала выводить иконки скилов!

 

Вот часть кода

Collection<L2Skill> list = npc.getAllSkills();
if(list != null && !list.isEmpty())
{
for(L2Skill s : list)
{
if(s.isActive())
{
 dialog.append("<tr><td width=\"32\"><img src=\"").append(s.getIcon()).append("\" width=\"32\" height=\"32\"></td><td width=\"238\"><br><font color=\"LEVEL\">").append(s.getName()).append("</font><br1>[<font color=\"b09979\">").append(player.isLangRus() ? "Уровень: " : "Level: ").append("</font>").append(s.getLevel()).append("][<font color=\"b09979\">Id: </font>").append(s.getId()).append("]</td></tr>");
}
}
dialog.append("</table><table><tr><td valign=\"top\" align=\"center\"><br><br><center><img src=\"L2UI.SquareWhite\" width=\"275\" height=\"1\"></center><table bgcolor=\"333333\" width=\"275\"><tr><td width=\"275\"><center><font color=\"FFFF00\">").append(player.isLangRus() ? "Пассивные Умения" : "Passive Skills").append("</font></center></td></tr></table><center><img src=\"L2UI.SquareWhite\" width=\"275\" height=\"1\"></center></td></tr></table><table>");
for(L2Skill s : list)
{
if(!s.isActive())
{
 dialog.append("<tr><td width=\"32\"><img src=\"").append("s.getIcon()").append("\" width=\"32\" height=\"32\"></td><td width=\"238\"><br><font color=\"LEVEL\">").append(s.getName()).append("</font><br1>[<font color=\"b09979\">").append(player.isLangRus() ? "Уровень: " : "Level: ").append("</font>").append(s.getLevel()).append("][<font color=\"b09979\">Id: </font>").append(s.getId()).append("]</td></tr>");
}
}
}

Изменено пользователем BadStealth

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребят столкнулся с траблом. Вобщем сделал вывод скилов в картинках. Т.е. чтобы при нажатии на моба показывало его скилы и иконку скила. Все прописал, но у меня как-будто вообще нет функции getIcon.

 

Вопрос в следующем- что и куда нужно добавить чтобы функция getIcon начала выводить иконки скилов!

 

Вот часть кода

Collection<L2Skill> list = npc.getAllSkills();
if(list != null && !list.isEmpty())
{
for(L2Skill s : list)
{
if(s.isActive())
{
 dialog.append("<tr><td width=\"32\"><img src=\").append(s.getIcon()).append(\" \" width=\"32\" height=\"32\"></td><td width=\"238\"><br><font color=\"LEVEL\">").append(s.getName()).append("</font><br1>[<font color=\"b09979\">").append(player.isLangRus() ? "Уровень: " : "Level: ").append("</font>").append(s.getLevel()).append("][<font color=\"b09979\">Id: </font>").append(s.getId()).append("]</td></tr>");
}
}
dialog.append("</table><table><tr><td valign=\"top\" align=\"center\"><br><br><center><img src=\"L2UI.SquareWhite\" width=\"275\" height=\"1\"></center><table bgcolor=\"333333\" width=\"275\"><tr><td width=\"275\"><center><font color=\"FFFF00\">").append(player.isLangRus() ? "Пассивные Умения" : "Passive Skills").append("</font></center></td></tr></table><center><img src=\"L2UI.SquareWhite\" width=\"275\" height=\"1\"></center></td></tr></table><table>");
for(L2Skill s : list)
{
if(!s.isActive())
{
 dialog.append("<tr><td width=\"32\"><img src=\").append(s.getIcon()).append(\" \" width=\"32\" height=\"32\"></td><td width=\"238\"><br><font color=\"LEVEL\">").append(s.getName()).append("</font><br1>[<font color=\"b09979\">").append(player.isLangRus() ? "Уровень: " : "Level: ").append("</font>").append(s.getLevel()).append("][<font color=\"b09979\">Id: </font>").append(s.getId()).append("]</td></tr>");
}
}
}

Попробуйте вот так, но я не уверен что это поможет ибо это настройка почти в слепую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте вот так, но я не уверен что это поможет ибо это настройка почти в слепую.

 

Можете скинуть содержимое getIcon? Если он конечно присутствует ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не поняли у меня кажется вообще нет каласса getIcon для вывода иконок скилов.

Пытался добавить класс в L2Skills.java

 public String getIcon()
{
return this._icon;
}

Но начинает ругаться что

[javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\model\L2Skill.java:2834: error: cannot find symbol
[javac] return this._icon;
[javac]			 ^
[javac] symbol: variable _icon

 

Вообще ума не приложу куда и что надо добавить чтобы можно было выводить иконки для скиллов!

Менял на просто this.icon толку нет!

Изменено пользователем BadStealth

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

посмотрите принцип как работают картинки в Дроп листе

Изменено пользователем Расторгуев

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не поняли у меня кажется вообще нет каласса getIcon для вывода иконок скилов.

Пытался добавить класс в L2Skills.java

 public String getIcon()
{
return this._icon;
}

Но начинает ругаться что

[javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\model\L2Skill.java:2834: error: cannot find symbol
[javac] return this._icon;
[javac]			 ^
[javac] symbol: variable _icon

 

Вообще ума не приложу куда и что надо добавить чтобы можно было выводить иконки для скиллов!

Менял на просто this.icon толку нет!

 

 public String getIcon()
{
return this._icon;
}

Здесь ты пытаешься возвратить необъявленную переменную, по-этому выводит ошибку.

 

В общем для начала нужно узнать класс, объект которого создан под именем npc (npc.getAllSkills()).

 

Без знаний ты ничего не сможешь изменить. Что за исходники то?

Изменено пользователем DiQuero

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

посмотрите принцип как работают картинки в Дроп листе

В дроплисте тоже не показывает иконки- уже сам ставил True на показ в скрипте- не показывает и все!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавил строки в L2Skills.java

_icon = set.getString("icon", "");
protected String _icon;
public String getIcon()
{
 return this._icon;
}

 

Все компилиться но вот иконки так и не показывает. Хотя s.getIcon() теперь ошибок не дает.

Где сама формула прописывается для ICON чтобы брать иконки скилов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какая еще формула то?

по коду же ясно что сами названия иконок надо задавать в данных у скиллов, в хмлках с инфой о них т.е.

типа так:

 

<set name="icon" val="icon.skill0001" />

Изменено пользователем Gaikotsu
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какая еще формула то?

по коду же ясно что сами названия иконок надо задавать в данных у скиллов, в хмлках с инфой о них т.е.

типа так:

 

<set name="icon" val="icon.skill0001" />

 

Спасибо теперь все работает. Вот никогда бы не догадался! Ато я уже в стопор встал) :diablo:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребят вопрос!

Сделал для названий скилов русские названия- но еще не все прописал как написать формулу- чтобы если нет русских названий то выводит англ?

    public final String getName_ru()
   {
       return this._name_ru;
   }

    public final String getName()
   {
       return _name;
   }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребят вопрос!

Сделал для названий скилов русские названия- но еще не все прописал как написать формулу- чтобы если нет русских названий то выводит англ?

 public final String getName_ru()
{
return this._name_ru;
}

 public final String getName()
{
return _name;
}

 

Метод определяет вхождение символов в английский алфавит.

Вызывать по типу

 if(detectedLang("hi is test.")) System.out.println("EN");

private static boolean detectedLang(String word)
{
for(int i=0; i<word.length(); i ++)
{
char ch = word.charAt(i);
if(ch >= 97 && ch <= 122) return true;
}
return false;
}

public final String getName()
{
if(!detectedLang(_name)) return _name_ru;
   else return _name;
}

Изменено пользователем xINVIZIBLx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно написать проще? Без вызова метода?

Мне просто надо чтобы если this._name_ru == null то тогда выводил _name_ru

 

Переключение языка мне не надо. У меня просто _name --->выводит английские названия

this._name_ru --->русские названия ---просто я их еще не все перевел- и вот чтобы пустоты не было чтобы если нет this._name_ru подставлялось _name!

 

Пробовал так- но выводит только Русские названия а анг не показывает!

 public final String getName()
{
if(this._name_ru == null) return _name;
    else return this._name_ru;
}

Изменено пользователем BadStealth

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тоже занялся таким . все сделал 1 в 1 только под некстов. и в скиле прописал

 

в L2Skills.java тоже все добавленно

 

<skill id="5895" levels="1" name="Mark of Cowardice" >

 

<set name="target" val="TARGET_SELF" />

<set name="skillType" val="BUFF" />

<set name="operateType" val="OP_ACTIVE" />

<set name="icon" val="icon.skill1337" />

 

шифтую моба иконка темная что может быть ?

Изменено пользователем Расторгуев

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А компилиться нормально?

 

У вас ID скилов при шифте на мобов показывает? Если прописано- тогда смотрите чтобы моб был с тем скилом для которого прописали иконку т.е. id="5895

 

<skill id="5895" levels="1" name="Mark of Cowardice" >
    <set name="icon" val="icon.skill1337" />
    <!--
		  все что ниже может быть по другому у вас прописано...
    -->
   <set name="name-ru" val="Клеймо Труса" />
    <set name="levelModifier" val="1" />
    <set name="magicType" val="MAGIC" />
    <set name="magicLevel" val="85" />
    <set name="castRange" val="300" />
    <set name="hitTime" val="2000" />
    <set name="hitCancelTime" val="500" />
    <set name="mpConsume1" val="30" />
    <set name="mpConsume2" val="120" />
    <set name="target" val="TARGET_SELF" />
    <set name="skillType" val="BUFF" />
    <set name="operateType" val="OP_ACTIVE" />
    <set name="trait" val="DERANGEMENT" />
    <set name="saveVs" val="MEN" />
    <for>
	    <effect count="1" name="Buff" time="120" val="0">
		    <mul order="0x30" stat="maxHp" val="0.9" />
		    <mul order="0x30" stat="pDef" val="0.9" />
		    <mul order="0x30" stat="mDef" val="0.9" />
		    <sub order="0x40" stat="rEvas" val="4" />
		    <mul order="0x30" stat="hpEff" val="0.9" />
		    <add order="0x60" stat="runSpd" val="40" />
	    </effect>
    </for>
   </skill>

 

В Skills.java прописали вывод?

_name = set.getString("name");

и

protected String _name;

Изменено пользователем BadStealth

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

dialog.append("<center><font color=\"LEVEL\">Активный Скил</font></center>");

dialog.append("<table width=\"90%\">");

if(!active.isEmpty())

for(final L2Skill skill : active)

dialog.append("<tr><td width=\"32\"><img src=\"").append("skill.getIcon()").append("\" width=\"32\" height=\"32\"></td><td width=\"238\"><br><font color=\"LEVEL\">").append(skill.getName()).append("</font><br1>[<font color=\"b09979\">").append(player.isLangRus() ? "Уровень: " : "Level: ").append("</font>").append(skill.getLevel()).append("][<font color=\"b09979\">Id: </font>").append(skill.getId()).append("]</td></tr>");

else

dialog.append("<tr><td>Empty</td></tr>");

dialog.append("</table><br>");

Изменено пользователем Расторгуев

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

dialog.append("<tr><td width=\"32\"><img src=\"").append("skill.getIcon()").append(

 

кавычки уберите--- я их поставил чтобы строку закоментировать пока не работала getIcon

.append(skill.getIcon())

 

for(final L2Skill skill : active)

тут у меня list стоит - я в JAVA еще не очень, но думаю он выводит сам список!

Изменено пользователем BadStealth

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сделал вот так

dialog.append("<tr><td width=\"32\"><img src=\"icon.").append(skill.getIcon()).append("\" width=\"32\" height=\"32\"></td><td width=\"238\"><br><font color=\"LEVEL\">").append(skill.getName()).append("</font><br1>[<font color=\"b09979\">").append(player.isLangRus() ? "Уровень: " : "Level: ").append("</font>").append(skill.getLevel()).append("][<font color=\"b09979\">Id: </font>").append(skill.getId()).append("]</td></tr>");

 

 

картинки у меня сервер тянет не с скилов а в базу смотрит там иконки у меня есть почти у всех скилов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а как сделали чтобы в базе брал иконки? Поделитесь плиз методом!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все как и у вас

 

сравнивал структуру показа с дроп листа в картнках хотя так не обьясню по тв могу глянуть различия

 

утром добавлюсь в скайп глянем

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...