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

View File

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

View File

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

View File

@ -689,7 +689,7 @@
666: Peliharaan tidak diperbolehkan di Guild Wars. 666: Peliharaan tidak diperbolehkan di Guild Wars.
667: Kamu tidak mati. 667: Kamu tidak mati.
668: Posisi memomu saat ini adalah: 668: Posisi memomu saat ini adalah:
669: Kamu menghancurkan senajta lawan. //669 kosong
670: Kamu tidak dapat meninggalkan guild battleground. 670: Kamu tidak dapat meninggalkan guild battleground.
671: Teman sudah ada. 671: Teman sudah ada.
672: Nama tidak ditemukan di daftar. 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. 666: Bichinhos de estimação não são permitidos na Guerra de Clãs.
667: Você não está morto. 667: Você não está morto.
668: Seu ponto de retorno atual é: 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. 670: Você não pode deixar os campos de batalha em uma guerra.
671: Amigo já existente. 671: Amigo já existente.
672: Nome não encontrado na lista. 672: Nome não encontrado na lista.

View File

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

View File

@ -690,7 +690,7 @@
666: Las mascotas están prohibidas en la guerra de clanes. 666: Las mascotas están prohibidas en la guerra de clanes.
667: No estás muerto. 667: No estás muerto.
668: Tus puntos de memorización actuales son los siguientes: 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. 670: No puedes abandonar un clan especial de battleground.
671: Ese jugador ya es amigo tuyo. 671: Ese jugador ya es amigo tuyo.
672: No se ha encontrado el nombre que has introducido. 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. 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>. 667: ¤<>³ה<C2B3>טה´יµ<D799><C2B5>.
668: µ<>ב<EFBFBD>¹ט§·<C2A7>ט¤<D798>³ה´י÷<D799>¹·<C2B9><C2B7>ה<EFBFBD>י<EFBFBD><D799>´<EFBFBD>§¹<C2A7>י: 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. 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>. 671: א¾<D790>ט<EFBFBD>¹·<C2B9>ט<EFBFBD><D798><EFBFBD><EFBFBD><EFBFBD>טב<D798>י<EFBFBD>.
672: ה<>ט¾÷×<C3B7>ט<EFBFBD>ד¹<D793><C2B9><EFBFBD><EFBFBD><EFBFBD><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_FROSTWEAPON:
case SA_LIGHTNINGLOADER: case SA_LIGHTNINGLOADER:
case SA_SEISMICWEAPON: case SA_SEISMICWEAPON:
if (dstsd) { if (dstsd && dstsd->status.weapon == W_FIST) {
if(dstsd->status.weapon == W_FIST || if (sd)
(dstsd->sc.count && !dstsd->sc.data[type] && clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
( //Allow re-enchanting to lenghten time. [Skotlex] clif_skill_nodamage(src,bl,skill_id,skill_lv,0);
dstsd->sc.data[SC_FIREWEAPON] || break;
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;
}
} }
// 100% success rate at lv4 & 5, but lasts longer at lv5 // 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(!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) if (sd)
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); 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; break;