Jump to content

chowking

Members
  • Posts

    178
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by chowking

  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
  16. i recently made a new server with the latest rev, using client 2012-04-10a configure mmo.h def packet with the clientdate set packet_db_ver: 30 configured the server to use pre-re the problem comes after character creation, here are the steps i did, 1. Login 2. Make new Character 3. input name (didn't touch the hair) 4. press enter ( this takes me back to the character selection) 5. log the char to map when i select the newly created character (pressed enter to log in) the client will display failed to connect to server, trying to log in again and selecting the new char it will now load and log the char to the map, and have no problems, basically.. the server will always fail to login a newly created char the 1st time it is selected i can play normally after that so i dont think i got problems with lua files/client files
  17. hey guys, where to find src responsible for the change color in item name when you insert a card to a equip that has no "card slot" by itemslotcount or by @item2, rather please point me there,
  18. hey guys from pc.c case SP_HP_LOSS_RATE: // bonus2 bHPLossRate,n,t; if(sd->state.lr_flag != 2) { sd->hp_loss.value = type2; sd->hp_loss.rate = val; } break; please make it so that the hp loss rate is within a specific time, lose n HP every t miliseconds in x miliseconds eg lose 500 hp every 1000 miliseconds in span of 3 minutes/ 180000 miliseconds, will be used for usable items and such
  19. the item name will have a corresponding color by its grade, supposed its uncommon, the item name will be green, i am thinking about putting an additional table in SQL item_db as `grade`, and 0/Null=common 1=uncommon, so on.. we might be willing to pay, since i am not the sole owner of the server also idk if it this info will matter, but my client date is 2012-04-10a Edit: how can i reproduce the changecolor of bounditems, with just a check in what value it has on a table in sql
  20. @ponyVPS latest ver available at github ra flux master
  21. bump Edit: Fixed it, for future references in modules/character/view.php FROM: $sql .= "LEFT OUTER JOIN {$server->charMapDatabase}.`global_reg_value` AS reg ON reg.char_id = ch.char_id AND reg.str = 'PC_DIE_COUNTER' "; TO: $sql .= "LEFT OUTER JOIN {$server->charMapDatabase}.`char_reg_num` AS reg ON reg.char_id = ch.char_id AND reg.key = 'PC_DIE_COUNTER' ";
  22. i still haven't fully explored what are the errors that will be encountered but the modules need to be updated, is there a fix for this? tried debugging it myself but failed miserably this error occurs when trying to view character
  23. you'll need sql installed in your laptop, then make the tables needed, change inter_conf.txt and put 127.0.0.1 there,
  24. yes, just replace the red lines with the green search the red, replace it with green, thats how you do it
  25. im using Windows OS, heres how i do it, open the .diff or .patch file then at the tool bar file theres a option that says apply, the rest is self explanatory, just dont apply it twice,
×
×
  • Create New...