-
Content Count
657 -
Joined
-
Last visited
-
Days Won
29
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by malufett
-
its just an extension of your equipment..like having 2 armor and having benefits on both...
-
How to enable multiple hits for claymore trap?
malufett replied to mybitch's question in Database Support
for easy trick map_foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);if (sg->unit_id != UNT_FIREPILLAR_ACTIVE) clif->changetraplook(&src->bl, sg->unit_id==UNT_LANDMINE?UNT_FIREPILLAR_ACTIVE:UNT_USED_TRAPS);sg->limit=DIFF_TICK(tick,sg->tick)+1500 + (sg->unit_id== UNT_CLUSTERBOMB || sg->unit_id== UNT_ICEBOUNDTRAP?1000:0);// Cluster Bomb/Icebound has 1s to disappear once activated.if( sg->unit_id != UNT_CLAYMORETRAP ) sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again. break; then change your skill_cast_db.txt so the total hit will be (duration1 left/1000) -
iRO has costumized there cash items...it depends on your grf..for me to have that kind of icon I'll used iRo's grf or the bmp files(item) inside the grf..
-
all traps can be blown using arrow shower except ankle snare and electric shocker.. and define in skill.c case BL_SKILL: su = (struct skill_unit *)target; if( su && su->group && su->group->unit_id == UNT_ANKLESNARE ) return 0; // ankle snare cannot be knocked back break;
-
if it has a good purpose +1 but if there is nothing then I say used the athena way...
-
yep..by means of hexing the client...
-
I agree I tried to sniff if the client sent something in the server when doing a search but it doesn't so it means the search is a client function only...
-
--- Hercules/src/map/clif.c Sun Apr 21 23:29:05 2013+++ Hercules/src/map/clif.c Tue Apr 16 22:54:32 2013@@ -13060,11 +13016,8 @@{ struct map_session_data *f_sd; int i;+ char *pname;+ pname = strrchr((char*)RFIFOP(fd,2), ' ');+ memcpy(pname, &pname[1], strlen(pname));+ f_sd = map_nick2sd(pname);- f_sd = map_nick2sd((char*)RFIFOP(fd,2)); // ensure that the request player's friend list is not full ARR_FIND(0, MAX_FRIENDS, i, sd->status.friends[i].char_id == 0); Thanks,,,..
-
I think it's already before...
-
here you have it..so sizzling hot.. --- src/map/clif.c Tue Apr 16 22:33:58 2013+++ src/map/clif.c Tue Apr 16 22:54:32 2013@@ -8361,7 +8325,6 @@ struct map_session_data *ssd = (struct map_session_data *)bl; struct party_data *p = NULL; struct guild *g = NULL;+ char name[NAME_LENGTH]; //Requesting your own "shadow" name. [Skotlex] if (ssd->fd == fd && ssd->disguise)@@ -8373,8 +8336,7 @@ WBUFB(buf,30) = WBUFB(buf,54) = WBUFB(buf,78) = 0; break; }+ sprintf(name, "[%d/%d] %s", ssd->status.base_level, ssd->status.job_level, ssd->status.name);+ memcpy(WBUFP(buf,6), name, NAME_LENGTH);- memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH); if( ssd->status.party_id ) { p = party_search(ssd->status.party_id);@@ -8488,7 +8450,6 @@ int cmd = 0x195, ps = -1; struct party_data *p = NULL; struct guild *g = NULL;+ char name[NAME_LENGTH]; nullpo_retv(ssd);@@ -8498,8 +8459,7 @@ WBUFW(buf,0) = cmd; WBUFL(buf,2) = ssd->bl.id;+ sprintf(name, "[%d/%d] %s", ssd->status.base_level, ssd->status.job_level, ssd->status.name);+ memcpy(WBUFP(buf,6), name, NAME_LENGTH);- memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH); if (!battle_config.display_party_name) { if (ssd->status.party_id > 0 && ssd->status.guild_id > 0 && (g = ssd->guild) != NULL)@@ -11694,8 +11654,6 @@{ struct map_session_data *t_sd; char *name = (char*)RFIFOP(fd,2);+ char *pname;+ name[NAME_LENGTH-1] = '0'; if(map[sd->bl.m].flag.partylock) { // Party locked.@@ -11703,9 +11661,7 @@ return; }+ pname=strrchr(name,' ');+ memcpy(pname, &pname[1], strlen(pname));+ t_sd = map_nick2sd(pname);- t_sd = map_nick2sd(name); if(t_sd && t_sd->state.noask) { // @noask [LuzZza] clif->noask_sub(sd, t_sd, 1);
-
your issue is not existing in Hercules..maybe you have custom mods that causes your problem...
-
OIC...ok...wait for the fix...
-
@Judas can you try this packet(0x01ad,4,clif->pSelectArrow,2);
-
then try it in Hercules...
-
well..I forgot that since most of players don't name their characters more than 15 characters...hahaha..
-
Sorry but "Unable to Reproduce"... did you patch properly the diff?
-
here you have it... Index: clif.c===================================================================--- clif.c (revision 11504)+++ clif.c (working copy)@@ -8325,6 +8332,7 @@ struct map_session_data *ssd = (struct map_session_data *)bl; struct party_data *p = NULL; struct guild *g = NULL;+ char name[NAME_LENGTH]; //Requesting your own "shadow" name. [Skotlex] if (ssd->fd == fd && ssd->disguise)@@ -8336,7 +8344,9 @@ WBUFB(buf,30) = WBUFB(buf,54) = WBUFB(buf,78) = 0; break; }- memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);+ //memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);+ sprintf(name, "[%d/%d] %s", ssd->status.base_level, ssd->status.job_level,ssd->status.name);+ memcpy(WBUFP(buf,6), name, NAME_LENGTH); if( ssd->status.party_id ) { p = party_search(ssd->status.party_id);@@ -8450,6 +8460,7 @@ int cmd = 0x195, ps = -1; struct party_data *p = NULL; struct guild *g = NULL;+ char name[NAME_LENGTH]; nullpo_retv(ssd);@@ -8459,7 +8470,9 @@ WBUFW(buf,0) = cmd; WBUFL(buf,2) = ssd->bl.id;- memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);+ sprintf(name, "[%d/%d] %s", ssd->status.base_level, ssd->status.job_level,ssd->status.name);+ memcpy(WBUFP(buf,6), name, NAME_LENGTH);+ //memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH); if (!battle_config.display_party_name) { if (ssd->status.party_id > 0 && ssd->status.guild_id > 0 && (g = ssd->guild) != NULL)
-
actually its incomplete..cause I'm not still at home to test its just a draft..
-
try this @clif.c case BL_PC: { struct map_session_data *ssd = (struct map_session_data *)bl; struct party_data *p = NULL; struct guild *g = NULL; +char name[NAME_LENGTH]; //Requesting your own "shadow" name. [Skotlex] if (ssd->fd == fd && ssd->disguise) WBUFL(buf,2) = -bl->id; if( ssd->fakename[0] ) { WBUFW(buf, 0) = cmd = 0x195; memcpy(WBUFP(buf,6), ssd->fakename, NAME_LENGTH); WBUFB(buf,30) = WBUFB(buf,54) = WBUFB(buf,78) = 0; break; } +sprintf(name, "[%d/%d] %s", ssd->status.base_level, ssd->status.job_level,ssd->status.name); +memcpy(WBUFP(buf,6), name, NAME_LENGTH); -memcpy(WBUFP(buf,6), ssd->status.name, NAME_LENGTH);
-
No skills viewable with custom class when adding custom skills
malufett replied to Squishyyy's question in Source Support
probably problem skill tree db in both server and client... -
hmm..not add code it.. BTW my implementation is not perfect the character won't show..XD
-
implement 0x82d // packet 0x82dstruct PACKET_HC_ACCEPT2 { /* this+0x0 */ short PacketType /* this+0x2 */ unsigned short PacketLength /* this+0x4 */ unsigned char NormalSlotNum /* this+0x5 */ unsigned char PremiumSlotNum /* this+0x6 */ unsigned char BillingSlotNum /* this+0x7 */ unsigned char ProducibleSlotNum /* this+0x8 */ unsigned char ValidSlotNum /* this+0x9 */ char m_extension[20] /* this+0x1d */ struct CHARACTER_INFO_NEO_UNION charInfo[...] { // Size 116 /* this+0x0 */ unsigned long GID /* this+0x4 */ int exp /* this+0x8 */ int money /* this+0xc */ int jobexp /* this+0x10 */ int joblevel /* this+0x14 */ int bodystate /* this+0x18 */ int healthstate /* this+0x1c */ int effectstate /* this+0x20 */ int virtue /* this+0x24 */ int honor /* this+0x28 */ short jobpoint /* this+0x2a */ int hp /* this+0x2e */ int maxhp /* this+0x32 */ short sp /* this+0x34 */ short maxsp /* this+0x36 */ short speed /* this+0x38 */ short job /* this+0x3a */ short head /* this+0x3c */ short weapon /* this+0x3e */ short level /* this+0x40 */ short sppoint /* this+0x42 */ short accessory /* this+0x44 */ short shield /* this+0x46 */ short accessory2 /* this+0x48 */ short accessory3 /* this+0x4a */ short headpalette /* this+0x4c */ short bodypalette /* this+0x4e */ unsigned char name[24] /* this+0x66 */ unsigned char Str /* this+0x67 */ unsigned char Agi /* this+0x68 */ unsigned char Vit /* this+0x69 */ unsigned char Int /* this+0x6a */ unsigned char Dex /* this+0x6b */ unsigned char Luk /* this+0x6c */ unsigned char CharNum /* this+0x6d */ unsigned char haircolor /* this+0x6e */ short bIsChangedCharName /* this+0x84 */ int Robe }} but I'm not sure if kRO Ragexe accept it since this packet is used by iRO's Ragexe EDIT: yup it accepted and now it works perfectly I can create new chars now...