Jump to content

Kichi

Members
  • Posts

    509
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by Kichi

  1. forever status sc_start SC_EXPBOOST,-1,100;
  2. ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2, DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion, MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper 1313,BEELZEBUB_,Beelzebub,Beelzebub,255,10000000,0,6666666,6666666,2,180027,170627, 0,0,2050,555,355,355,1000,355,20,12,2,6,88,0x37B5,100,111,30,432, 3333333,10000,0,5500,0,0,0,5000,0,5000,0,2000,20516,05,2000,2000,2702,2000,985,5432,742,5500,0,0,0,0,0,1 for extend mvp drop become 7 you have to edit src and all mob_db. i recomend to get the mvp id once mvp killed and give a random chance for 4/5/6/7 items
  3. skill.c find: // New guild skills [Celest] case GD_BATTLEORDER: if(flag&1) { if (status_get_guild_id(src) == status_get_guild_id(bl)) sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id, skill_lv)); } else if (status_get_guild_id(src)) { clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_PC, src,skill_id,skill_lv,tick, flag|BCT_GUILD|1, skill_castend_nodamage_id); if (sd) guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; case GD_REGENERATION: if(flag&1) { if (status_get_guild_id(src) == status_get_guild_id(bl)) sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id, skill_lv)); } else if (status_get_guild_id(src)) { clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_PC, src,skill_id,skill_lv,tick, flag|BCT_GUILD|1, skill_castend_nodamage_id); if (sd) guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; case GD_RESTORE: if(flag&1) { if (status_get_guild_id(src) == status_get_guild_id(bl)) clif_skill_nodamage(src,bl,AL_HEAL,status_percent_heal(bl,90,90),1); } else if (status_get_guild_id(src)) { clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_PC, src,skill_id,skill_lv,tick, flag|BCT_GUILD|1, skill_castend_nodamage_id); if (sd) guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; case GD_EMERGENCYCALL: case GD_ITEMEMERGENCYCALL: { int8 dx[9] = {-1, 1, 0, 0,-1, 1,-1, 1, 0}; int8 dy[9] = { 0, 0, 1,-1, 1,-1,-1, 1, 0}; uint8 j = 0, calls = 0, called = 0; struct guild *g; // i don't know if it actually summons in a circle, but oh well. ;P g = sd?sd->guild:guild_search(status_get_guild_id(src)); if (!g) break; if (skill_id == GD_ITEMEMERGENCYCALL) switch (skill_lv) { case 1: calls = 7; break; case 2: calls = 12; break; case 3: calls = 20; break; default: calls = 0; break; } clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member && (!calls || (calls && called < calls)); i++, j++) { if (j > 8) j = 0; if ((dstsd = g->member[i].sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { if (map[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if(map_getcell(src->m,src->x+dx[j],src->y+dy[j],CELL_CHKNOREACH)) dx[j] = dy[j] = 0; pc_setpos(dstsd, map_id2index(src->m), src->x+dx[j], src->y+dy[j], CLR_RESPAWN); called++; } } if (sd) guild_block_skill(sd,skill_get_time2(skill_id,skill_lv)); } break; replace with : // New guild skills [Celest] case GD_BATTLEORDER: if(flag&1) { if (status_get_guild_id(src) == status_get_guild_id(bl)) sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id, skill_lv)); } else if (status_get_guild_id(src)) { clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_PC, src,skill_id,skill_lv,tick, flag|BCT_GUILD|1, skill_castend_nodamage_id); if (sd) skill_blockpc_start(sd, skill_id, time); } break; case GD_REGENERATION: if(flag&1) { if (status_get_guild_id(src) == status_get_guild_id(bl)) sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id, skill_lv)); } else if (status_get_guild_id(src)) { clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_PC, src,skill_id,skill_lv,tick, flag|BCT_GUILD|1, skill_castend_nodamage_id); if (sd) skill_blockpc_start(sd, skill_id, time); } break; case GD_RESTORE: if(flag&1) { if (status_get_guild_id(src) == status_get_guild_id(bl)) clif_skill_nodamage(src,bl,AL_HEAL,status_percent_heal(bl,90,90),1); } else if (status_get_guild_id(src)) { clif_skill_nodamage(src,bl,skill_id,skill_lv,1); map_foreachinrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_PC, src,skill_id,skill_lv,tick, flag|BCT_GUILD|1, skill_castend_nodamage_id); if (sd) skill_blockpc_start(sd, skill_id, time); } break; case GD_EMERGENCYCALL: case GD_ITEMEMERGENCYCALL: { int8 dx[9] = {-1, 1, 0, 0,-1, 1,-1, 1, 0}; int8 dy[9] = { 0, 0, 1,-1, 1,-1,-1, 1, 0}; uint8 j = 0, calls = 0, called = 0; struct guild *g; // i don't know if it actually summons in a circle, but oh well. ;P g = sd?sd->guild:guild_search(status_get_guild_id(src)); if (!g) break; if (skill_id == GD_ITEMEMERGENCYCALL) switch (skill_lv) { case 1: calls = 7; break; case 2: calls = 12; break; case 3: calls = 20; break; default: calls = 0; break; } clif_skill_nodamage(src,bl,skill_id,skill_lv,1); for (i = 0; i < g->max_member && (!calls || (calls && called < calls)); i++, j++) { if (j > 8) j = 0; if ((dstsd = g->member[i].sd) != NULL && sd != dstsd && !dstsd->state.autotrade && !pc_isdead(dstsd)) { if (map[dstsd->bl.m].flag.nowarp && !map_flag_gvg2(dstsd->bl.m)) continue; if(map_getcell(src->m,src->x+dx[j],src->y+dy[j],CELL_CHKNOREACH)) dx[j] = dy[j] = 0; pc_setpos(dstsd, map_id2index(src->m), src->x+dx[j], src->y+dy[j], CLR_RESPAWN); called++; } } if (sd) skill_blockpc_start(sd, skill_id, time); } break; untested
  4. oh oke, thanks for the explaination. feel not qualified enough
  5. at the end of registration step i got "error you don't have permission to access this page" does it mean i have already submitted?
  6. [501] = { unidentifiedDisplayName = "Red Potion", unidentifiedResourceName = "»¡°£Æ÷¼Ç", unidentifiedDescriptionName = { "A potion made from", "grinded Red Herbs that", "restores ^000088about 45 HP^000000.", "^ffffff_^000000", "Weight: ^7777777^000000" }, identifiedDisplayName = "Red Potion", identifiedResourceName = "»¡°£Æ÷¼Ç", identifiedDescriptionName = { "A potion made from", "grinded Red Herbs that", "restores ^000088about 45 HP^000000.", "^ffffff_^000000", "Weight: ^7777777^000000" }, slotCount = 0, ClassNum = 0 }, add your item's info by the format above.
  7. yes if your client below 2013 use this http://rathena.org/board/topic/70005-guide-adding-custom-item-renewal/ if no just pass the idnum* but add the item info to system/itemInfo.lub / .lua
  8. maybe you made a mistake when applying the diff, there are 2 type of 2012 04 10 -Ragexe and RagexeRe or extreme way, block same IP to login (it will affect to user who play in cafe)
  9. diff your client with (disable dual login)
  10. i think blind isn't effect (/effect > disappear) it still visible even your effect off CMIIW
  11. status.c find: /* Other SC which are not necessarily associated to skills */ add above StatusIconChangeTable[SC_STONE] = SI_STONE; StatusIconChangeTable[SC_FREEZE] = SI_FREEZE; StatusIconChangeTable[SC_STUN] = SI_STUN; StatusIconChangeTable[SC_SLEEP] = SI_SLEEP; StatusIconChangeTable[SC_POISON] = SI_POISON; StatusIconChangeTable[SC_CURSE] = SI_CURSE; StatusIconChangeTable[SC_SILENCE] = SI_SILENCE; StatusIconChangeTable[SC_CONFUSION] = SI_CONFUSION; StatusIconChangeTable[SC_BLIND] = SI_BLIND; StatusIconChangeTable[SC_DPOISON] = SI_DPOISON;
  12. status.c find: if( sc->count && sc->data[SC_ITEMSCRIPT] ) { struct item_data *data = itemdb_exists(sc->data[SC_ITEMSCRIPT]->val1); if( data && data->script ) run_script(data->script,0,sd->bl.id,0); } add : if( sc->count && sc->data[SC_PERFECTAIM] ) { pc_bonus2 (sd,SP_SKILL_VARIABLECAST,SN_FALCONASSAULT,-1000); } it will reduce cast time by 1 sec but add the SC_PERFECTAIM with SCB_ALL to read another condition this is quick way CMIIW
  13. everyscript with name of the castle map cause the first Error (Script,Mapflag) i just look into yours the second came from core that tries to load all castle data (Removed on maps data, but still defined on core side)
  14. you are remove the the map but there are script tries to access those maps
  15. thx Xynvaroth
  16. Yes. i have been post my contributions to my old thread HERE. would you like to check? and tell me if i made mistake or i have to give more contribution Thank you in advance
  17. There's a handful I assume: http://rathena.org/board/forum/210-awaiting-contributions/ i think forum admin still busy and don't have time to process CMIIW
  18. oh yeah sorry, but same method, change MAGIC to WEAPON
  19. db/(re/pre-re)/skill_require_db.txt // 485,0,0,15,0,0,600:700:800:900:1000:1100:1200:1300:1400:1500,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,SC_CARTBOOST,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WS_CARTTERMINATION## RED = Zeny Cost BLUE = Item Required & Item Amount there are no way except edit the source. You should extend ....,RequiredItemID10,RequiredItemAmount10,RequiredEquipment,ReqItemID11,ReqItemAmount11 which 11 is for WOE/BG purpose or something you like.
  20. rathena has provided most usefull script "OnPCStatCalcEvent:" you may use that Label to give a temporer skill bonus OnPCStatCalcEvent: if (time > .@now) skill "AL_TELEPORT",1; end; time = perma variable to char .@now = datetimenow this would be more simple and easy to use
  21. this is source related. the code exist in older rathena CMIIW
  22. rollback isn't like a feature of ragnarok so you have to make system for you backup example, you set auto backup on certain time / day -day 1, backup to folder a -day 2, backup to folder b -day 3, backup to folder c from my example you may rollback to specific day
  23. all SI_ are kind of package from client side. we can't add / modify that package yet (I've tried it). CMIIW to add an effect to character you may use existing SI_ or clif_
  24. yes to escape the character
  25. yes. autobonus "{ sc_start \"SC_INCBASEATK\",9000,3000; heal -500,0; }",10,BF_WEAPON;
×
×
  • Create New...