Fixed Endow skills to match official behavior. (#2918)

* Endows are now interchangeable.
* No longer break the weapon on failure and now unequips instead.
Thanks to @Daegaladh!
This commit is contained in:
Daegaladh 2018-02-22 22:23:11 +01:00 committed by Aleos
parent 5998cca3b7
commit 1e2032cc21
9 changed files with 18 additions and 27 deletions

View File

@ -690,7 +690,7 @@
666: Pets are not allowed in Guild Wars.
667: You're not dead.
668: Your actual memo positions are:
669: You broke the target's weapon.
//669 free
670: You can't leave battleground guilds.
671: Friend already exists.
672: Name not found in list.

View File

@ -643,7 +643,7 @@
666: 公會戰不允許有寵物
667: 你沒死亡
668: 你實際儲存點是:
669: 你破壞目標的武器
//669 free
670: 你無法離開戰場公會
671: 這朋友已存在
672: 該名稱不在清單內

View File

@ -655,7 +655,7 @@
666: Pets non-autorisés lors d'une guerre entre guilde.
667: Vous n'êtes pas mort(e).
668: Votre position memo actuelle est:
669: Vous brisez l'arme de la cible.
//669 free
670: Vous ne pouvez pas quitter votre guilde.
671: Cette personne est déjà dans votre liste d'ami.
672: Nom introuvable dans la liste.

View File

@ -689,7 +689,7 @@
666: Peliharaan tidak diperbolehkan di Guild Wars.
667: Kamu tidak mati.
668: Posisi memomu saat ini adalah:
669: Kamu menghancurkan senajta lawan.
//669 kosong
670: Kamu tidak dapat meninggalkan guild battleground.
671: Teman sudah ada.
672: Nama tidak ditemukan di daftar.

View File

@ -635,7 +635,7 @@
666: Bichinhos de estimação não são permitidos na Guerra de Clãs.
667: Você não está morto.
668: Seu ponto de retorno atual é:
669: Você quebrou a arma de seu oponente.
//669 livre
670: Você não pode deixar os campos de batalha em uma guerra.
671: Amigo já existente.
672: Nome não encontrado na lista.

View File

@ -655,7 +655,7 @@
666: Питомцы запрещены во время Войны за Империум.
667: Вы не мертвы.
668: Ваши текущие точки сохранения:
669: Вы сломали оружие цели.
//669 НЕ ИСПОЛЬЗУЕТСЯ
670: Вы не можете покинуть БГ.
671: Друг уже добавлен.
672: Имя не найдено в списке.

View File

@ -690,7 +690,7 @@
666: Las mascotas están prohibidas en la guerra de clanes.
667: No estás muerto.
668: Tus puntos de memorización actuales son los siguientes:
669: Has roto el arma de tu enemigo.
//669 vacío
670: No puedes abandonar un clan especial de battleground.
671: Ese jugador ya es amigo tuyo.
672: No se ha encontrado el nombre que has introducido.

View File

@ -649,7 +649,7 @@
666: <20><>µ<EFBFBD>לא<D79C><D790>י<EFBFBD>§ה<C2A7>טה´י<D799><C2B6><EFBFBD><EFBFBD>÷<EFBFBD>¹<EFBFBD>­<EFBFBD>µד<C2B5>י¹<D799>א¢י<C2A2>ד¹¾<C2B9>י¹·<C2B9>ט Guild Wars.
667: ¤<>³ה<C2B3>טה´יµ<D799><C2B5>.
668: µ<>ב<EFBFBD>¹ט§·<C2A7>ט¤<D798>³ה´י÷<D799>¹·<C2B9><C2B7>ה<EFBFBD>י<EFBFBD><D799>´<EFBFBD>§¹<C2A7>י:
669: ¤<>³ה´י·<D799><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸¢<C2B8>§א»י<C2BB><D799><EFBFBD><EFBFBD><EFBFBD>.
//669 free
670: ¤<>³ה<C2B3>ט<EFBFBD><D798><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6><EFBFBD>¨<EFBFBD><C2A8> Guild ה´יד¹¢³<C2A2><C2B3><EFBFBD><EFBFBD>טד¹ battleground.
671: א¾<D790>ט<EFBFBD>¹·<C2B9>ט<EFBFBD><D798><EFBFBD><EFBFBD><EFBFBD>טב<D798>י<EFBFBD>.
672: ה<>ט¾÷×<C3B7>ט<EFBFBD>ד¹<D793><C2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.

View File

@ -6509,30 +6509,21 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case SA_FROSTWEAPON:
case SA_LIGHTNINGLOADER:
case SA_SEISMICWEAPON:
if (dstsd) {
if(dstsd->status.weapon == W_FIST ||
(dstsd->sc.count && !dstsd->sc.data[type] &&
( //Allow re-enchanting to lenghten time. [Skotlex]
dstsd->sc.data[SC_FIREWEAPON] ||
dstsd->sc.data[SC_WATERWEAPON] ||
dstsd->sc.data[SC_WINDWEAPON] ||
dstsd->sc.data[SC_EARTHWEAPON] ||
dstsd->sc.data[SC_SHADOWWEAPON] ||
dstsd->sc.data[SC_GHOSTWEAPON] ||
dstsd->sc.data[SC_ENCPOISON]
))
) {
if (sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
clif_skill_nodamage(src,bl,skill_id,skill_lv,0);
break;
}
if (dstsd && dstsd->status.weapon == W_FIST) {
if (sd)
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
clif_skill_nodamage(src,bl,skill_id,skill_lv,0);
break;
}
// 100% success rate at lv4 & 5, but lasts longer at lv5
if(!clif_skill_nodamage(src,bl,skill_id,skill_lv, sc_start(src,bl,type,(60+skill_lv*10),skill_lv, skill_get_time(skill_id,skill_lv)))) {
if (dstsd){
short index = dstsd->equip_index[EQI_HAND_R];
if (index&EQP_WEAPON && dstsd->inventory_data[index]->type == IT_WEAPON)
pc_unequipitem(dstsd, index, 3); //Must unequip the weapon instead of breaking it [Daegaladh]
}
if (sd)
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
if (skill_break_equip(src,bl, EQP_WEAPON, 10000, BCT_PARTY) && sd && sd != dstsd)
clif_displaymessage(sd->fd, msg_txt(sd,669));
}
break;