Jump to content

Hadeszeus

Members
  • Content Count

    651
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Hadeszeus

  1. Any one knows how to fix this? It's only working on summon EMPERIUM. But in actual emperium inside the castle it's not anymore.
  2. Hi Guys, just want to ask if it's possible to hide from chat when someone type a GM command that is not available for normal player or in group id 0? Example: Player A [Group ID 0] type in Normal, Party, Guild Chat any GM COMMANDS Like for example Player A type @allstat <-- @allstat should not appear in Chat Box it's like nothing happen just ignore it from displaying. Thank you..
  3. Dunno about this haha keep looking in the source Thanks buddy!
  4. Can someone help me on how to lower the chance of summoning MVP's using ABRACADABRA skill? This can be spam on any server. Thanks in advance! case SA_ABRACADABRA: { int abra_skill_id = 0, abra_skill_lv, abra_idx; do { abra_idx = rnd() % MAX_SKILL_ABRA_DB; abra_skill_id = skill->abra_db[abra_idx].skill_id; } while (abra_skill_id == 0 || skill->abra_db[abra_idx].req_lv > skill_lv || //Required lv for it to appear rnd()%10000 >= skill->abra_db[abra_idx].per ); abra_skill_lv = min(skill_lv, skill->get_max(abra_skill_id)); clif->skill_nodamage (src, bl, skill_id, skill_lv, 1); if( sd ) {// player-casted sd->state.abra_flag = 1; sd->skillitem = abra_skill_id; sd->skillitemlv = abra_skill_lv; clif->item_skill(sd, abra_skill_id, abra_skill_lv); } else {// mob-casted struct unit_data *ud = unit->bl2ud(src); int inf = skill->get_inf(abra_skill_id); if (!ud) break; if (inf&INF_SELF_SKILL || inf&INF_SUPPORT_SKILL) { if (src->type == BL_PET) bl = (struct block_list*)((TBL_PET*)src)->msd; if (!bl) bl = src; unit->skilluse_id(src, bl->id, abra_skill_id, abra_skill_lv); } else { //Assume offensive skills int target_id = 0; if (ud->target) target_id = ud->target; else switch (src->type) { case BL_MOB: target_id = ((TBL_MOB*)src)->target_id; break; case BL_PET: target_id = ((TBL_PET*)src)->target_id; break; } if (!target_id) break; if (skill->get_casttype(abra_skill_id) == CAST_GROUND) { bl = map->id2bl(target_id); if (!bl) bl = src; unit->skilluse_pos(src, bl->x, bl->y, abra_skill_id, abra_skill_lv); } else unit->skilluse_id(src, target_id, abra_skill_id, abra_skill_lv); } } } break;
  5. I got this warning when compiling. path.c: In function 'distance_client':path.c:476: warning: implicit declaration of function 'sqrt'path.c:476: warning: incompatible implicit declaration of built-in function 'sqrt' From latest Update https://github.com/HerculesWS/Hercules/commit/b5a92f944f126e920442307bebd3c2b53c9b0d54 How to fix this thanks!
  6. Can someone help me fix this job changer script? Whenever a a novice change to baby job basic skill is not reset causing a player to have extra 9 SKILL POINTS. //===== Hercules Script ======================================//= Job Master//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.4//===== Description: =========================================//= A fully functional job changer.//===== Additional Comments: =================================//= 1.1 Fixed reset on Baby job change. [Euphy]//= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. [Euphy]//= 1.3 Kagerou/Oboro added. [Euphy]//= 1.4 Improved legibility (renamed variables, replaced// numbers with constants; Changed syntax to match// Hercules standards; Fixed status point exploit upon// Baby Novice job change. [Haru]//============================================================prontera,178,89,6 script Job Master 1_M_JOBGUIDER,{ function Job_Menu; function A_An; mes "[Job Master]"; if (Class > Job_Soul_Linker) { mes "No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"") +" before proceeding."; close; } if (.skill_point_check && SkillPoint > 0) { mes "Please use all your skill points before proceeding."; close; } .@eac = eaclass(); .@base = .third_classes ? roclass(.@eac&EAJ_UPPERMASK) : Class; if (.@base >= Job_Knight && .@base <= Job_Crusader2) { if (BaseLevel < .rebirth_blevel || JobLevel < .rebirth_jlevel) { .@blvl = .rebirth_blevel - BaseLevel; .@jlvl = .rebirth_jlevel - JobLevel; mes "You need " + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .rebirth_jlevel ? "and " : "")) : "") + (JobLevel < .rebirth_jlevel ? (.rebirth_jlevel - JobLevel) +" more job levels " : "") + "to continue."; close; } if (Class > Job_Crusader2) { mes "Switch to third class?"; next; Job_Menu(roclass(.@eac|EAJL_THIRD)); close; } while (true) { mes "Select an option."; next; //.@choice = select(" ~ ^0055FFRebirth^000000:"+(.third_classes ? " ~ ^FF0000Third Class^000000" : "")+": ~ ^777777Cancel^000000"); .@choice = select(" ~ ^0055FFRebirth^000000:~ ^777777Cancel^000000"); if (.@choice == 3) close; mes "[Job Master]"; mes "Are you sure?"; next; if (.@choice == 1) Job_Menu(Job_Novice_High); else // Job_Menu(roclass(.@eac|EAJL_THIRD)); //mes "[Job Master]"; close; } } .@job1 = roclass(.@eac|EAJL_2_1); .@job2 = roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) { .@newclass = roclass(.@eac|EAJL_THIRD); .@required_jlevel = 99; } else if (Class == Job_Ninja) { .@newclass = .@job1; .@required_jlevel = 70; } if (.@newclass && .third_classes) { if (BaseLevel < .rebirth_blevel || JobLevel < .@required_jlevel) { mes "You need " + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .@required_jlevel ? "and " : "")) : "") + (JobLevel < .@required_jlevel ? (.@required_jlevel - JobLevel) +" more job levels " : "") + "to continue."; close; } mes "Switch to "+jobname(.@newclass)+"?"; next; Job_Menu(.@newclass); close; } if (.@eac&EAJL_2) if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { mes "No more jobs are available."; close; } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .jobchange_first) { mes "A job level of "+.jobchange_first+" is required to change into the 1st Class."; } else if (Class == Job_Novice_High && .linear_jobchange && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else if (Class == Job_Novice) { Job_Menu(Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief, Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby); } else if (Class == Job_Novice_High) { Job_Menu(Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High); } else if (Class == Job_Baby) { Job_Menu(Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief, Job_Super_Baby); } else { mes "An error has occurred."; } close; } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) { mes "No more jobs are available."; } else if (!(.@eac&EAJL_2) && JobLevel < .jobchange_second) { mes "A job level of "+.jobchange_second+" is required to change into the 2nd Class."; } else if (.linear_jobchange && lastJob && (.@eac&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob+Job_Novice_High); } else { Job_Menu(.@job1, .@job2); } close;function Job_Menu { while (true) { if (getargcount() > 1) { mes "Select a job."; .@menu$ = ""; for (.@i = 0; .@i < getargcount(); ++.@i) .@menu$ += " ~ "+jobname(getarg(.@i))+":"; .@menu$ += " ~ ^777777Cancel^000000"; next; .@newjob = getarg(select(.@menu$)-1, 0); if (!.@newjob) close; if ((.@newjob == Job_SuperNovice || .@newjob == Job_Super_Baby) && BaseLevel < .supernovice_level) { mes "[Job Master]"; mes "A base level of "+.supernovice_level+" is required to turn into a "+jobname(.@newjob)+"."; close; } mes "[Job Master]"; mes "Are you sure?"; next; } else { .@newjob = getarg(0); } if (select(" ~ Change into ^0055FF"+jobname(.@newjob)+"^000000 class: ~ ^777777"+(getargcount() > 1 ? "Go back" : "Cancel")+"^000000") == 1) { mes "[Job Master]"; mes "You are now "+A_An(jobname(.@newjob))+"!"; if (.@newjob == Job_Novice_High && .linear_jobchange) lastJob = Class; // Note: This is incompatible with the Valkyrie rebirth script. jobchange .@newjob; if (.@newjob == Job_Novice_High) resetlvl(1); specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; if (.platinum) callsub Get_Platinum; close; } if (getargcount() == 1) return; mes "[Job Master]"; } end;}function A_An { setarray .@vowels$, "a", "e", "i", "o", "u"; .@firstletter$ = strtolower(charat(getarg(0), 0)); for (.@i = 0; .@i < getarraysize(.@vowels); ++.@i) { if (.@vowels$[.@i] == .@firstletter$) return "an "+getarg(0); } return "a "+getarg(0);}Get_Platinum: skill NV_FIRSTAID, 1, 0; if (BaseClass == Job_Novice) { if (Class != Job_SuperNovice) skill NV_TRICKDEAD, 1, 0; } else if (BaseClass == Job_Swordman) { skill SM_MOVINGRECOVERY, 1, 0; skill SM_FATALBLOW, 1, 0; skill SM_AUTOBERSERK, 1, 0; } else if (BaseClass == Job_Mage) { skill MG_ENERGYCOAT, 1, 0; } else if (BaseClass == Job_Archer) { skill AC_MAKINGARROW, 1, 0; skill AC_CHARGEARROW, 1, 0; } else if (BaseClass == Job_Acolyte) { skill AL_HOLYLIGHT, 1, 0; } else if (BaseClass == Job_Merchant) { skill MC_CARTREVOLUTION, 1, 0; skill MC_CHANGECART, 1, 0; skill MC_LOUD, 1, 0; } else if (BaseClass == Job_Thief) { skill TF_SPRINKLESAND, 1, 0; skill TF_BACKSLIDING, 1, 0; skill TF_PICKSTONE, 1, 0; skill TF_THROWSTONE, 1, 0; } if (BaseJob == Job_Knight) { skill KN_CHARGEATK, 1, 0; } else if (BaseJob == Job_Priest) { skill PR_REDEMPTIO, 1, 0; } else if (BaseJob == Job_Wizard) { skill WZ_SIGHTBLASTER, 1, 0; } else if (BaseJob == Job_Blacksmith) { skill BS_UNFAIRLYTRICK, 1, 0; skill BS_GREED, 1, 0; } else if (BaseJob == Job_Hunter) { skill HT_PHANTASMIC, 1, 0; } else if (BaseJob == Job_Assassin) { skill AS_SONICACCEL, 1, 0; skill AS_VENOMKNIFE, 1, 0; } else if (BaseJob == Job_Crusader) { skill CR_SHRINK, 1, 0; } else if (BaseJob == Job_Monk) { skill MO_KITRANSLATION, 1, 0; skill MO_BALKYOUNG, 1, 0; } else if (BaseJob == Job_Sage) { skill SA_CREATECON, 1, 0; skill SA_ELEMENTWATER, 1, 0; skill SA_ELEMENTGROUND, 1, 0; skill SA_ELEMENTFIRE, 1, 0; skill SA_ELEMENTWIND, 1, 0; } else if (BaseJob == Job_Rogue) { skill RG_CLOSECONFINE, 1, 0; } else if (BaseJob == Job_Alchemist) { skill AM_BIOETHICS, 1, 0; } else if (BaseJob == Job_Bard) { skill BA_PANGVOICE, 1, 0; } else if (BaseJob == Job_Dancer) { skill DC_WINKCHARM, 1, 0; } return;OnInit: .rebirth_blevel = 99; // Minimum base level to reborn OR change to third class .rebirth_jlevel = 50; // Minimum base job level to reborn OR change to third class .jobchange_first = 10; // Minimum job level to turn into 1st class .jobchange_second = 40; // Minimum job level to turn into 2nd class .third_classes = 1; // Enable third classes? (1: yes / 0: no) .supernovice_level = 45; // Minimum base level to turn into Super Novice .linear_jobchange = 1; // Enforce linear class changes? (1: yes / 0: no) .skill_point_check = 1; // Force player to use up all skill points? (1: yes / 0: no) .platinum = 1; // Get platinum skills automatically? (1: yes / 0: no) waitingroom " ~ Change Job ~",0; end;}
  7. After upgrading to latest version of herc. I can no longer view VIEW ACCOUNT SECTION of flux.
  8. There were certain amount of commits fixing skill damage in accordance to official behaviour in past few weeks, so maybe thats the reason.. Thanks Dast.
  9. My players totally notice the difference in damage after I update to latest one. For example before update Hundred Spear damage is around 19k Per HIT while on latest rev 5k per hit. Same player using same build and items. is this the correct reduction of demi human or a bug maybe of all range damage? coz in mobs damage is same from previous. Using full renewal setting btw.
  10. LOL i thought it's Ind ::troll::
  11. Can someone guide me which part of the source I need to edit to increase the STAT requirement on negative status immunity? For example if VIT 99+ immunity to stun is like 100% I want to change that to 120. Also for LUK requirements? Thanks
  12. can someone confirm? i can't find any thread about this. also where can i find the script that woe items check if agit is on or pvp?
  13. Got this error [SQL]: DB error - Incorrect table name ''[Debug]: at npc.c:1432 - SELECT `name`, `itemid`, `amount` FROM `` When I check that line I saw this void npc_market_fromsql(void) { SqlStmt* stmt = SQL->StmtMalloc(map->mysql_handle); char name[NAME_LENGTH+1]; int itemid; int amount; if ( SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `name`, `itemid`, `amount` FROM `%s`", map->npc_market_data_db) || SQL_ERROR == SQL->StmtExecute(stmt) ) { SqlStmt_ShowDebug(stmt); SQL->StmtFree(stmt); return; } I check my database and I have npc_market_data <-- table I also created npc_market_data_db but stil getting npc.c error on this line.
  14. 3 problems with Emperium 1. First is it correct that emperium HP from latest rev is only 100? 2. Is it normal that Emperium can be move by vacuum skill? 3. any possible reason why suddenly became Unbreakable during WOE? Dunno if its a bug but im using latest herc rev.
  15. Cant reproduce, i really suggest you guys use plugins >.> less stress. I'll try to repatch later.
  16. Hmm.. i patch without error. I can create a clone but I can't kill it. @marketkill nothing happens (Only message that my clone was killed, but its not) I logged out my clone still alive. I can create multiple clone.
  17. [Error]: sv_readdb: Insufficient columns in line 1 of "db/re/homunculus_db.txt" (found 1, need at least 50).[Error]: sv_readdb: Insufficient columns in line 2 of "db/re/homunculus_db.txt" (found 1, need at least 50).[Error]: sv_readdb: Insufficient columns in line 3 of "db/re/homunculus_db.txt" (found 1, need at least 50).[Error]: sv_readdb: Insufficient columns in line 4 of "db/re/homunculus_db.txt" (found 1, need at least 50).[Error]: sv_readdb: Insufficient columns in line 5 of "db/re/homunculus_db.txt" (found 1, need at least 50).[Error]: sv_readdb: Insufficient columns in line 6 of "db/re/homunculus_db.txt" (found 1, need at least 50).[Error]: sv_readdb: Insufficient columns in line 8 of "db/re/homunculus_db.txt" (found 1, need at least 50).[Error]: sv_readdb: Insufficient columns in line 27 of "db/re/homunculus_db.txt" (found 1, need at least 50).[Error]: sv_readdb: Insufficient columns in line 41 of "db/re/homunculus_db.txt" (found 1, need at least 50). I know it is related to this update https://github.com/HerculesWS/Hercules/commit/acc4d2eb875ddf67898ae0ac443e76de2d640daa But my source is updated, I have homunculus_db.txt inside re folder. void homunculus_read_db(void) { int i; const char *filename[]={DBPATH"homunculus_db.txt","homunculus_db2.txt"};
  18. Confirming this. Thanks Annie!
  19. dirty methodhttp://upaste.me/9e3531 can you tell how you compile your server ? test_server.png [info]: Compiled with Microsoft Visual C++ 2010 (v1600) I compile using 'Debian GNU/Linux 6.0.5 i'll try your dirty method Thanks Annie!
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.