clydelion Posted November 24, 2012 Group: Members Topic Count: 17 Topics Per Day: 0.00 Content Count: 754 Reputation: 186 Joined: 05/22/12 Last Seen: October 15, 2022 Share Posted November 24, 2012 Hello, we have @homevolve, and I don't see why we wouldn't want to have this.. This is basically a port from Xantara's scriptcommand. Index: atcommand.c =================================================================== --- atcommand.c (revision 16920) +++ atcommand.c (working copy) @@ -8786,6 +8786,41 @@ #undef MC_CART_MDFY } +/*========================================== + * ported from Xantara's homunculus_mutate + * scriptcommand [clydelion] + *------------------------------------------*/ +ACMD_FUNC(hommutate) +{ + int homun_id, m_class = 0, m_id; + int homun_array[5] = {6048,6049,6050,6051,6052}; + nullpo_retr(-1, sd); + + if ( !merc_is_hom_active(sd->hd) ) { + clif_displaymessage(fd, msg_txt(1254)); // You do not have a homunculus. + return -1; + } + + if( sd == NULL ) + return -1; + if (!message || !*message) + homun_id = homun_array[rnd() % 5]; + else + homun_id = atoi(message); + + m_class = hom_class2mapid(sd->hd->homunculus.class_); + m_id = hom_class2mapid(homun_id); + + if ( m_class != -1 && m_id != -1 && m_class&HOM_EVO && m_id&HOM_S && sd->hd->homunculus.level >= 99 ) + hom_mutate(sd->hd, homun_id); + else + { + clif_displaymessage(fd, "Your homunculus must be level 99 to mutate."); + clif_emotion(&sd->hd->bl, E_SWT); + } + return 0; +} + /** * Fills the reference of available commands in atcommand DBMap **/ @@ -8796,6 +8831,7 @@ * Command reference list, place the base of your commands here **/ AtCommandInfo atcommand_base[] = { + ACMD_DEF(hommutate), ACMD_DEF2("warp", mapmove), ACMD_DEF(where), ACMD_DEF(jumpto), Usage: @hommutate <homid> PS: I was thinking to merge this to the current @homevolve instead of making a new command, but it's called mutate now so... Cheers! homunculus_mutate_atcommand.diff Link to comment Share on other sites More sharing options...
Lighta Posted November 24, 2012 Group: Members Topic Count: 16 Topics Per Day: 0.00 Content Count: 737 Reputation: 216 Joined: 11/29/11 Last Seen: December 20, 2020 Share Posted November 24, 2012 Agree with this suggestion and we could also add homreset, found it usefull for some test. I don't like too much code duplicate so when it's use in 2 interface I think we better put the generic in homon, and reduce the call in atcommand and script. nb : if( sd == NULL ) is useless, you already check it with nullpo, and at this place it would have been wrong since you used it before =) Link to comment Share on other sites More sharing options...
Euphy Posted November 24, 2012 Group: Members Topic Count: 72 Topics Per Day: 0.02 Content Count: 2997 Reputation: 1132 Joined: 05/27/12 Last Seen: June 1, 2017 Share Posted November 24, 2012 I agree, this command should be added. Link to comment Share on other sites More sharing options...
clydelion Posted November 24, 2012 Group: Members Topic Count: 17 Topics Per Day: 0.00 Content Count: 754 Reputation: 186 Joined: 05/22/12 Last Seen: October 15, 2022 Author Share Posted November 24, 2012 Agree with this suggestion and we could also add homreset, found it usefull for some test. I don't like too much code duplicate so when it's use in 2 interface I think we better put the generic in homon, and reduce the call in atcommand and script. nb : if( sd == NULL ) is useless, you already check it with nullpo, and at this place it would have been wrong since you used it before =) Ahh yes. I overlooked this when I ported the scriptcommand. I was in a hurry back then and didnt bother removing those useless parts. But you got what I meant. Link to comment Share on other sites More sharing options...
lekkereten Posted December 23, 2012 Group: Members Topic Count: 8 Topics Per Day: 0.00 Content Count: 148 Reputation: 46 Joined: 11/02/11 Last Seen: November 25, 2024 Share Posted December 23, 2012 Added in r17038 Link to comment Share on other sites More sharing options...
Recommended Posts