//====================пофикшено в [А по щам?] знает какие времена Гриндом.
//====================первое появление - forum first-team.
public class LogisticsOfficerInstance extends FacilityManagerInstance
{
private static final int[] SUPPLY_NPC = new int[]
{
35665,
35697,
35734,
35766,
35803,
35834
};
private static final int ITEM_ID = 9910; // Blood Oath
public LogisticsOfficerInstance(int objectId, NpcTemplate template)
{
super(objectId, template);
}
@Override
public void onBypassFeedback(Player player, String command)
{
if(!canBypassCheck(player, this))
return;
Fortress fortress = getFortress();
if(!player.isClanLeader() || fortress.getOwnerId() != player.getClanId())
{
showChatWindow(player, "residence2/fortress/fortress_not_authorized.htm");
return;
}
if(command.equalsIgnoreCase("guardInfo"))
{
if(fortress.getContractState() != Fortress.CONTRACT_WITH_CASTLE)
{
showChatWindow(player, "residence2/fortress/fortress_supply_officer005.htm");
return;
}
showChatWindow(player, "residence2/fortress/fortress_supply_officer002.htm", "%guard_buff_level%", fortress.getFacilityLevel(Fortress.GUARD_BUFF));
}
else if(command.equalsIgnoreCase("supplyInfo"))
{
if(fortress.getContractState() != Fortress.CONTRACT_WITH_CASTLE)
{
showChatWindow(player, "residence2/fortress/fortress_supply_officer005.htm");
return;
}
showChatWindow(player, "residence2/fortress/fortress_supply_officer009.htm", "%supply_count%", fortress.getSupplyCount());
}
else if(command.equalsIgnoreCase("rewardInfo"))
{
showChatWindow(player, "residence2/fortress/fortress_supply_officer010.htm", "%blood_oaths%", fortress.getRewardCount());
}
else if(command.equalsIgnoreCase("receiveSupply"))
{
String filename;
if(fortress.getSupplyCount() > 0)
{
if(player.getVar("FortSupply") != null)
{
if(player.getVarLong("FortSupply") > System.currentTimeMillis())
{
player.sendMessage(player.isLangRus() ? "Данное действие доступно 1-н раз в 6 часов." : "This action is available 1-n every 6 hours.");
return;
}
}
player.setVar("FortSupply", System.currentTimeMillis() + 21600000, -1);
filename = "residence2/fortress/fortress_supply_officer016.htm";
NpcInstance npc = NpcHolder.getInstance().getTemplate(SUPPLY_NPC[fortress.getSupplyCount() - 1]).getNewInstance();
npc.setCurrentHpMp(npc.getMaxHp(), npc.getMaxMp());
npc.spawnMe(new Location(getX() - 23, getY() + 41, getZ()));
}
else
filename ="residence2/fortress/fortress_supply_officer017.htm";
NpcHtmlMessage html = new NpcHtmlMessage(player, this);
html.setFile(filename);
player.sendPacket(html);
}
else if(command.equalsIgnoreCase("receiveRewards"))
{
String filename;
int count = fortress.getRewardCount();
if(count > 0)
{
filename = "residence2/fortress/fortress_supply_officer013.htm";
fortress.setRewardCount(0);
fortress.setJdbcState(JdbcEntityState.UPDATED);
fortress.update();
Functions.addItem(player, ITEM_ID, count);
}
else
filename ="residence2/fortress/fortress_supply_officer014.htm";
NpcHtmlMessage html = new NpcHtmlMessage(player, this);
html.setFile(filename);
player.sendPacket(html);
}
else if(command.equalsIgnoreCase("toLevel1"))
buyFacility(player, Fortress.GUARD_BUFF, 1, 100000);
else if(command.equalsIgnoreCase("toLevel2"))
buyFacility(player, Fortress.GUARD_BUFF, 2, 150000);
else
super.onBypassFeedback(player, command);
}
@Override
public void showChatWindow(Player player, int val, Object... arg)
{
showChatWindow(player, "residence2/fortress/fortress_supply_officer001.htm");
}
}
ну 7 печатей я сделал пока вроде всё ок но нужны тесты.А вообще вы бы занялись серьезными делами вида синхронизации осад, семи печатей
ну 7 печатей я сделал пока вроде всё ок но нужны тесты.
Осады нужна полная проверка на тестах проблем не было, но нужны глобал тесты...
Это то понятно , но всё делается сразу, основное я вывел уже, вот теперь тестирую всю серию 7 печатей, так что гарантии пока не даю что он сделан верно.Как бы там нужно вынести весь спавн, и впилить заного нормально.
Это то понятно , но всё делается сразу, основное я вывел уже, вот теперь тестирую всю серию 7 печатей, так что гарантии пока не даю что он сделан верно.
я отписал что я сделал, у вас тоже 7 печатей не сделан как нужно)Так зачем говорить что 7 печатей сделано ?
дай свои контакты в лс есть разговор...Сделай так, чтобы я удивился.
Посмотреть вложение 899
И да... Квесты там тоже почти все переписаны. Разве только что синхронизацию с осадами сделать.
Я точно видел такую сборку, т.к. в голове это засело у меня не просто так.
З.Ы. Хотелось бы посмотреть варианты фиксов.
Все таки запарился и прочитал, как должно работать. Так получается, что в первом посте вообще не фикс, т.к. раз в 6 часов повышается уровень снабжения. В который раз удостоверился, что перед фиксами нужно изучить, как все должно работать=)))там тупейшая ошибка - при спавне сундука не обнуляется количество собранных товаров.
так что тупо делаем так и все.
fortress.setSupplyCount(0);
можно конечно просто уменьшать на нужное количество счетчик. но по оффу вроде как обнуление идет, даже если со времени последнего получения прошло больше 6 часов.
а, вижу уже написали ранее - обновлять блин страницу надо чаще...
Как может говно код работать верно?Все таки запарился и прочитал, как должно работать. Так получается, что в первом посте вообще не фикс, т.к. раз в 6 часов повышается уровень снабжения. В который раз удостоверился, что перед фиксами нужно изучить, как все должно работать)
Смотря что подразумевать под говнокодомКак может говно код работать верно?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?