Jump to content

chowking

Members
  • Posts

    178
  • Joined

  • Last visited

  • Days Won

    1

chowking last won the day on September 14 2013

chowking had the most liked content!

1 Follower

Profile Information

  • Gender
    Male
  • Location
    Philippines
  • Github: Gau
  • Discord: Idyl#8747
  • Interests
    Eat pasta yum!!!

Contact Methods

Recent Profile Visitors

4043 profile views

chowking's Achievements

Poring

Poring (1/15)

  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

16

Reputation

10

Community Answers

  1. Request the Icon border pack the was released waay back in eathena for making ragna icons
  2. packet_db.txt was removed it will now work if you've configured packets and recompiled its good clientinfo.xml is the same as always
  3. I checked your code its the same as the original, What to do: -Check if there are errors in map console when using acid demo -Double check item db if item are set to indestructible -Recompile -check skill db might be something there Compare your skill.c to github working skill.c find all cr_acid demo compare of theyre the same If you still dont solve i recommend getting a new clean rathena implement mods 1 by 1, test it before implemwnting a new one to detect errors l/bugs
  4. if youve already have the server in pre-re mode, mobs are still there at mob_db.sql but wont spawn in maps, so basically you'll just have blank maps i suppose
  5. Did you customize something in @go? That map invek is undeclared
  6. so i did this waay back, this code modifies spiderweb to be placed on the ground and trap anyone who walks overit. =========================================================================== Index: src/map/skill.cpp =========================================================================== @@ -13642,6 +13642,7 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, uns case UNT_FIREPILLAR_ACTIVE: case UNT_ELECTRICSHOCKER: case UNT_MANHOLE: + case UNT_SPIDERWEB: return 0; default: ShowError("skill_unit_onplace_timer: interval error (unit id %x)\n", sg->unit_id); @ -13817,7 +13818,23 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, uns sc_start(ss,bl,SC_STOP,100,0,skill_get_time2(sg->skill_id,sg->skill_lv)); } break; - + case UNT_SPIDERWEB: + if (sg->val2 == 0 && tsc) { + int sec = skill_get_time2(sg->skill_id, sg->skill_lv); + if (status_change_start(ss, bl, type, 10000, sg->skill_lv, sg->group_id, 0, 0, sec, tick)) { + const struct TimerData* td = tsc->data[type] ? get_timer(tsc->data[type]->timer) : NULL; + if (td) + sec = DIFF_TICK(td->tick, tick); + unit_movepos(bl, unit->bl.x, unit->bl.y, 0, 0); + clif_fixpos(bl); + sg->val2 = bl->id; + } + else + sg->limit = DIFF_TICK(tick, sg->tick) + sec; + sg->interval = -1; + unit->range = 0; + } + break; case UNT_ANKLESNARE: case UNT_MANHOLE: if( sg->val2 == 0 && tsc && ((sg->unit_id == UNT_ANKLESNARE && skill_id != SC_ESCAPE) || bl->id != sg->src_id) ) { @ -17932,6 +17949,7 @@ int skill_delunit(struct skill_unit* unit) switch (group->skill_id) { case HT_ANKLESNARE: case SC_ESCAPE: + case PF_SPIDERWEB: { struct block_list* target = map_id2bl(group->val2); enum sc_type type = status_skill2sc(group->skill_id); @ -18540,6 +18558,12 @@ static int skill_unit_timer_sub(DBKey key, DBData *data, va_list ap) } } break; + case UNT_SPIDERWEB: + if (unit->val1 <= 0) { + if (group->unit_id == UNT_SPIDERWEB && group->val2 > 0) + skill_delunit(unit); + } + break; case UNT_REVERBERATION: case UNT_NETHERWORLD: if (unit->val1 <= 0) { =========================================================================== Index: db/pre-re/skill_db.txt =========================================================================== @@ -603,7 +603,7 @@ 402,9,6,1,0,0x1,0,5,1,no,0,0,0,none,0,0x0, PF_MINDBREAKER,Mind Breaker 403,0,0,4,0,0x1,0,1,1,yes,0,0,0,magic,0,0x0, PF_MEMORIZE,Foresight 404,9,6,2,2,0x1,0,5,1,yes,0,0x100,2,magic,0,0x10000, PF_FOGWALL,Blinding Mist -405,7,6,1,0,0x1,0,1,1,no,0,0,3,magic,0,0x0, PF_SPIDERWEB,Fiber Lock +405,7,6,2,0,0x1,0,1,1,no,0,0,4,magic,0,0x0, PF_SPIDERWEB,Fiber Lock //**** // Assassin Cross =========================================================================== Index: db/pre-re/skill_unit_db.txt =========================================================================== @@ -89,7 +89,7 @@ 369,0xb3, , -1, 0,10000,all, 0x008 //PA_GOSPEL 395,0xb5, , 4, 0, -1,all, 0x200 //CG_MOONLIT 404,0xb6, , -1, 0, -1,all, 0x8000 //PF_FOGWALL -405,0xb7, , 0, 0, -1,enemy, 0x8000 //PF_SPIDERWEB +405,0xb7, , 0, 1, 0,enemy, 0x8000 //PF_SPIDERWEB 409,0xb2, , 0,-1, -1,noone, 0x000 //WE_CALLBABY 410,0xb2, , 0,-1, -1,noone, 0x000 //WE_CALLPARENT 428,0x86, , 0, 1, 100,enemy, 0x000 //SG_SUN_WARM =========================================================================== it does the job yeah but the main problem is the finer points where intended behavior: when a player is webbed/trapped and prof/sage places another web beside, the web will forcefully move character/mob. (this works already) when there is no one trapped and prof casts spiderweb beyond 4, 1st web cast should be deleted the previous web now gets deleted as the character was removed by another web, allowing to infinitely move the character/mob out of his/her will. what is happening: when a player is webbed/trapped and prof/sage places another web beside, the web will forcefully move character/mob. the previous web persists but doesn't trap anyone anymore, and after reaching the limit of 4 webs(defined in skill_db.txt) the skill will fail until the 1st web vanishes releasing the trapped character/mob if you'll notice the code is closely similar to ankle snare, i built this trying to get reference from already existing skills.
  7. Copy that thanks for pointing it out
  8. i applied malufetts mod for go warp delay im trying to get it to show the actual remaining time before the command can be used again in '@go' if (!pc_get_group_level(sd) && DIFF_TICK(gettick(), sd->canlog_tick) < 10000) { sprintf(atcmd_output, msg_txt(sd, 1505), sd->canlog_tick); //Please wait %d seconds before warping. return 0; } no errors and warning on recompile but the no message shows in client when trying to warp while attacking player i already added in map msg conf import line 1505 Edit: had to add int since code only shows canlog_tick here is the working code if (!pc_get_group_level(sd) && DIFF_TICK(gettick(), sd->canlog_tick) < 10000) { int w_tick = 10 - (DIFF_TICK(gettick()+500, sd->canlog_tick) / 1000); //+500 (0.5s) will make it roundup if needed be sprintf(atcmd_output, msg_txt(sd, 1505), w_tick); //Please wait %d seconds before warping. clif_displaymessage(fd, atcmd_output); return 0; }
  9. @nestymow that should be default you probably did something there compare to rathena skill.cpp for you to see whats wrong
  10. in status.cpp find: case SC_STRIPHELM: if (sd && !(flag&SCSTART_LOADED)) { short i; if(sd->bonus.unstripable_equip&EQP_HELM) return 0; i = sd->equip_index[EQI_HEAD_TOP]; if ( i < 0 || !sd->inventory_data[i] ) return 0; pc_unequipitem(sd,i,3); } if (tick == 1) return 1; // Minimal duration: Only strip without causing the SC break; add below break; case SC_CP_ARMOR: status_change_end(bl, SC_STRIPARMOR, INVALID_TIMER); break; case SC_CP_WEAPON: status_change_end(bl, SC_STRIPWEAPON, INVALID_TIMER); break; case SC_CP_SHIELD: status_change_end(bl, SC_STRIPSHIELD, INVALID_TIMER); break; case SC_CP_HELM: status_change_end(bl, SC_STRIPHELM, INVALID_TIMER); break; save and recompile
  11. hey guys, i've modded soul link of blacksmith and starglad to have parry skill, and now im editing it so the blacksmith and SG can use parry with 1h axes and books, so i did this code this works when i use return 0; but following the codes now using return false in checks, i cant seem to work around it bottom line is , is it safe to use return 0; there and wont affect other functions in rAthena if not, please help me get around the return false check; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- EDIT: FIXED,so i removed the code
  12. // By pass FCP when using single strip skills by 100%(requires Glistening Coat). if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] || skill_id == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] || skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] || skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) { int ii = pc_search_inventory(sd, ITEMID_COATING_BOTTLE); if ( ii < MAX_INVENTORY ) { switch ( skill_id ) { case RG_STRIPWEAPON: status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER ); sc_start(src,bl,SC_STRIPWEAPON,"your success rate",skill_lv,skill_get_time(skill_id,skill_lv)); break; case RG_STRIPSHIELD: status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER ); sc_start(src,bl,SC_STRIPSHIELD,"your success rate",skill_lv,skill_get_time(skill_id,skill_lv)); break; case RG_STRIPARMOR: status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER ); sc_start(src,bl,SC_STRIPARMOR,"your success rate",skill_lv,skill_get_time(skill_id,skill_lv)); break; case RG_STRIPHELM: status_change_end( bl, SC_CP_HELM, INVALID_TIMER ); sc_start(src,bl,SC_STRIPHELM,"your success rate",skill_lv,skill_get_time(skill_id,skill_lv)); break; } pc_delitem(sd, ii, 1, 0, 0, LOG_TYPE_CONSUME); clif_skill_nodamage( src, bl, skill_id, skill_lv, i ); break; } }
  13. probably the cause of it are the units being placed on the ground over and over again
  14. i used nemo in diffing,, anyway, ill try and remake my data,
  15. like i said after failing to connect once, i can play with no problems, so it rules out the client problems i think
×
×
  • Create New...