writeByte(0x81);
writeInt(result);
if (crystalId == 0)
sendEnchantFailed(4);
else
sendEnchantFailed(1);
нг шмотки даже точить нельзя
свитки не найдешь...
А так - на что НГ шмотки разбивать, на Руду Души Посмотреть вложение 77785?
там идет указание "если был разбит НГ предмет (любой предмет без кристаллов)".Ну так а зачем тогда те параметры? 1 и 4 в пакете, если НГ нельзя точить. И каким это образом можно разбить предмет на НГ кристаллы??
Всем привет, подскажите параметры.
Вот так выглядит пакет:
Java:writeByte(0x81); writeInt(result);
Параметр result:
0 - удачно.
1 - ???
2 - отмена.
3 - не удачно.
4 - ?????
enum ItemEnchantResult : __int32
{
IER_SUCCESS = 0x0,
IER_FAIL = 0x1,
IER_CANCELED = 0x2,
IER_BLESSED_FAIL = 0x3,
IER_EVENT_FAIL = 0x4,
IER_ANCIENT_BLESSED_FAIL = 0x5,
IER_MAX = 0x6,
};
function HandleEnchantResult(string param)
{
//결과에 상관없이 무조건 Hide
Me.HideWindow();
Clear();
}
public class EnchantResult extends L2GameServerPacket
{
private final int _resultId, _crystalId;
private final long _count;
public static final EnchantResult SUCESS = new EnchantResult(0, 0, 0); // вещь заточилась
public static final EnchantResult FAILED = new EnchantResult(1, 0, 0); // вещь разбилась, требует указания получившихся кристаллов, в статичном виде не используется
public static final EnchantResult CANCEL = new EnchantResult(2, 0, 0); // заточка невозможна
public static final EnchantResult BLESSED_FAILED = new EnchantResult(3, 0, 0); // заточка не удалась, уровень заточки сброшен на 0
public static final EnchantResult FAILED_NO_CRYSTALS = new EnchantResult(4, 0, 0); // вещь разбилась, но кристаллов не получилось (видимо для эвента, сейчас использовать невозможно, там заглушка)
public static final EnchantResult ANCIENT_FAILED = new EnchantResult(5, 0, 0); // заточка не удалась, уровень заточки не изменен (для Ancient Enchant Crystal из итем молла)
public EnchantResult(int resultId, int crystalId, long count)
{
_resultId = resultId;
_crystalId = crystalId;
_count = count;
}
@Override
protected final void writeImpl()
{
writeC(0x87);
writeD(_resultId);
writeD(_crystalId); // item id кристаллов
writeQ(_count); // количество кристаллов
}
}
function HandleEnchantResult(string param)
{
local int IntResult;
local ItemID ItemID;
local int64 Count;
local int CountInt;
local ItemInfo ResultItem;
local string EndTxt;
EnchantProgressAnim.HideWindow();
//결과에 상관없이 무조건 Hide
//~ Me.HideWindow();
//~ Clear();
//debug (param);
ParseInt(Param, "Result", IntResult );
ParseItemID(param, ItemID );
Parseint64(param, "Count", Count );
ParseInt(param, "Count", CountInt );
//debug ("count:" @ string(int(Count)));
class'UIDATA_ITEM'.static.GetItemInfo(ItemID, ResultItem );
switch (IntResult)
{
case 0:
bEnchantedbool = true;
EnchantProgressAnim.HideWindow();
EnchantProgressAnim.SetTexture("l2ui_ct1.ItemEnchant_DF_Effect_Success_00");
EnchantProgressAnim.SetLoopCount( 1 );
EnchantProgressAnim.Stop();
EnchantProgressAnim.Play();
Playsound("ItemSound3.enchant_success");
EnchantProgressAnim.ShowWindow();
BackPattern.SetAlpha(0, 0);
BackPattern.ShowWindow();
BackPattern.SetAlpha(255, 2);
SelectItemInfo.Enchanted = SelectItemInfo.Enchanted+1;
EnchantedItemSlot.SetItem( 0, SelectItemInfo );
EnchantedItemSlot.AddItem( SelectItemInfo );
EndTxt = MakeFullSystemMsg(GetSystemMessage(2342), "+"$string(SelectItemInfo.Enchanted) @ SelectItemInfo.Name, "");
InstructionTxt.SetText(EndTxt);
EnchantedItemSlot.SetAlpha(0);
EnchantedItemSlot.ShowWindow();
EnchantedItemSlot.SetAlpha(255,2);
CloverItemSlot.HideWindow();
//~ EnchantItemSlot.SetAlpha(0, 2);
EnchantItemSlot.HideWindow();
EnchantScriptSlot.HideWindow();
CloverItemSlot.HideWindow();
break;
case 1:
bEnchantedbool = true;
EnchantProgressAnim.HideWindow();
EnchantProgressAnim.SetTexture("l2ui_ct1.ItemEnchant_DF_Effect_Failed_01");
EnchantProgressAnim.SetLoopCount( C_ANIMLOOPCOUNT );
EnchantProgressAnim.Stop();
EnchantProgressAnim.Play();
Playsound("ItemSound3.enchant_fail");
EnchantProgressAnim.ShowWindow();
BackPattern.SetAlpha(0, 0);
BackPattern.ShowWindow();
BackPattern.SetAlpha(255, 2);
//~ ResultItem.
ResultItem.ItemNum = Count;
//debug ("Count2" @ string(int(Count)));
EnchantedItemSlot.SetAlpha(0);
EnchantedItemSlot.SetItem( 0, ResultItem );
EnchantedItemSlot.AddItem( ResultItem );
EnchantedItemSlot.ShowWindow();
EnchantedItemSlot.SetAlpha(255,2);
EndTxt = MakeFullSystemMsg(GetSystemMessage(2343), ResultItem.Name, String(CountInt));
InstructionTxt.SetText(EndTxt);
CloverItemSlot.HideWindow();
EnchantItemSlot.HideWindow();
//~ EnchantItemSlot.SetAlpha(0, 3);
//~ EnchantItemSlot.HideWindow();
EnchantScriptSlot.HideWindow();
CloverItemSlot.HideWindow();
break;
case 2:
EnchantProgressAnim.HideWindow();
if (!bEnchantedbool)
Me.HideWindow();
break;
case 3:
bEnchantedbool = true;
EnchantProgressAnim.HideWindow();
EnchantProgressAnim.SetTexture("l2ui_ct1.ItemEnchant_DF_Effect_Failed_01");
EnchantProgressAnim.SetLoopCount( C_ANIMLOOPCOUNT );
EnchantProgressAnim.Stop();
EnchantProgressAnim.Play();
Playsound("ItemSound3.enchant_fail");
EnchantProgressAnim.ShowWindow();
BackPattern.SetAlpha(0, 0);
BackPattern.ShowWindow();
BackPattern.SetAlpha(255, 2);
//~ ResultItem.
ResultItem.ItemNum = IntToInt64(1);
EnchantedItemSlot.SetAlpha(0);
SelectItemInfo.Enchanted = 0;
EnchantedItemSlot.SetItem( 0, SelectItemInfo );
EnchantedItemSlot.AddItem( SelectItemInfo );
EnchantedItemSlot.ShowWindow();
EnchantedItemSlot.SetAlpha(255,2);
EndTxt = MakeFullSystemMsg(GetSystemMessage(2343), SelectItemInfo.Name, "1");
InstructionTxt.SetText(EndTxt);
CloverItemSlot.HideWindow();
EnchantItemSlot.HideWindow();
//~ EnchantItemSlot.SetAlpha(0, 3);
//~ EnchantItemSlot.HideWindow();
EnchantScriptSlot.HideWindow();
CloverItemSlot.HideWindow();
break;
case 4:
bEnchantedbool = true;
EnchantProgressAnim.HideWindow();
EnchantProgressAnim.SetTexture("l2ui_ct1.ItemEnchant_DF_Effect_Failed_01");
EnchantProgressAnim.SetLoopCount( C_ANIMLOOPCOUNT );
EnchantProgressAnim.Stop();
EnchantProgressAnim.Play();
Playsound("ItemSound3.enchant_fail");
EnchantProgressAnim.ShowWindow();
BackPattern.SetAlpha(0, 0);
BackPattern.ShowWindow();
BackPattern.SetAlpha(255, 2);
//~ ResultItem.
ResultItem.ItemNum = IntToInt64(0);
EnchantedItemSlot.SetAlpha(0);
EnchantedItemSlot.SetItem( 0, ResultItem );
EnchantedItemSlot.AddItem( ResultItem );
//~ EnchantedItemSlot.ShowWindow();
EnchantedItemSlot.SetAlpha(255,2);
EndTxt = MakeFullSystemMsg(GetSystemMessage(64), SelectItemInfo.Name,"");
InstructionTxt.SetText(EndTxt);
CloverItemSlot.HideWindow();
EnchantItemSlot.HideWindow();
//~ EnchantItemSlot.SetAlpha(0, 3);
//~ EnchantItemSlot.HideWindow();
EnchantScriptSlot.HideWindow();
break;
//branch
case 5: // case IER_ANCIENT_BLESSED_FAIL -> ItemEnchantResult 상수가 추가되어 번호가 변경되진 않는지 확인.
bEnchantedbool = true;
EnchantProgressAnim.HideWindow();
EnchantProgressAnim.SetTexture("l2ui_ct1.ItemEnchant_DF_Effect_Failed_01");
EnchantProgressAnim.SetLoopCount( C_ANIMLOOPCOUNT );
EnchantProgressAnim.Stop();
EnchantProgressAnim.Play();
Playsound("ItemSound3.enchant_fail");
EnchantProgressAnim.ShowWindow();
BackPattern.SetAlpha(0, 0);
BackPattern.ShowWindow();
BackPattern.SetAlpha(255, 2);
//~ ResultItem.
ResultItem.ItemNum = IntToInt64(1);
EnchantedItemSlot.SetAlpha(0);
EnchantedItemSlot.SetItem( 0, SelectItemInfo );
EnchantedItemSlot.AddItem( SelectItemInfo );
EnchantedItemSlot.ShowWindow();
EnchantedItemSlot.SetAlpha(255,2);
EndTxt = GetSystemMessage(6004);
InstructionTxt.SetText(EndTxt);
CloverItemSlot.HideWindow();
EnchantItemSlot.HideWindow();
//~ EnchantItemSlot.SetAlpha(0, 3);
//~ EnchantItemSlot.HideWindow();
EnchantScriptSlot.HideWindow();
CloverItemSlot.HideWindow();
break;
//end of branch
}
ExitBtn.SetNameText( GetSystemString(646) );
EnchantBtn.DisableWindow();
ExitBtn.EnableWindow();
}
Код:enum ItemEnchantResult : __int32 { IER_SUCCESS = 0x0, IER_FAIL = 0x1, IER_CANCELED = 0x2, IER_BLESSED_FAIL = 0x3, IER_EVENT_FAIL = 0x4, IER_ANCIENT_BLESSED_FAIL = 0x5, IER_MAX = 0x6, };
интерлюду без разницы на результатСпасибо за ГФ, но интересует ИТ )))
IER_EVENT_FAIL = 0x4, - вот это что?
IER_ANCIENT_BLESSED_FAIL = 0x5, - вот это что?
IER_MAX = 0x6, - вот это что? Максимально-допустимая заточка?
public boolean isAncientEnchantScroll()
{
switch(_itemId)
{
case 22014: // item Mall Wpn B
case 22015: // item Mall Wpn A
case 20519: // item Mall Wpn S
case 22016: // item Mall Arm B
case 22017: // item Mall Arm A
case 20520: // item Mall Arm S
return true;
}
return false;
}
Фейл заточки предмета, который имеет тип кристаллов - event, например 13539IER_EVENT_FAIL
Это появилось в ГФ. В ИЛ этого нет. Я тебе скинул значения enum из ПТС. ПТС ИЛа у меня, к счастью, нет. Но как правило, корейцы не ломают обратную совместимость и большая часть нововведений это расширение функционала, а не замена.IER_EVENT_FAIL = 0x4
IER_ANCIENT_BLESSED_FAIL = 0x5, - вот это что?
IER_MAX = 0x6, - вот это что? Максимально-допустимая заточка?
function HandleEnchantResult(string param)
{
//결과에 상관없이 무조건 Hide
Me.HideWindow();
Clear();
}
IER_ANCIENT_BLESSED_FAIL = 0x5, - вот это что? - итем мол предметы, которых нет в ИТ
От куда на интерлюде рубашка ольфа?
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?