Jump to content

clydelion

Members
  • Posts

    754
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by clydelion

  1. You can use Gravity's HackShield though. I used it when I was still running a server.. Do not tick the "Disable HShield" in diff patcher, and do not rename your EXE. Run your exe normally and hackshield files will be downloaded automatically. You have to add checksum checks in your server to make sure your players are using the same client.
  2. It is hardcoded to the client.. But you can force it to display 0 always.. Index: login.c =================================================================== --- login.c (revision 16690) +++ login.c (working copy) @@ -1197,7 +1197,7 @@ WFIFOL(fd,47+n*32) = htonl((subnet_char_ip) ? subnet_char_ip : server[i].ip); WFIFOW(fd,47+n*32+4) = ntows(htons(server[i].port)); // [!] LE byte order here [!] memcpy(WFIFOP(fd,47+n*32+6), server[i].name, 20); - WFIFOW(fd,47+n*32+26) = server[i].users; + WFIFOW(fd,47+n*32+26) = 0; WFIFOW(fd,47+n*32+28) = server[i].type; WFIFOW(fd,47+n*32+30) = server[i].new_; n++;
  3. You are using an incompatible lub for your client version.. change your 'data/lua files/hotkey.lub' to a compatible one
  4. using the same sample provided by emistry prontera,155,181,5 script Sample 757,{ dispbottom "Total Cash Points "+#CASHPOINTS+" Points."; end; }
  5. Merge this to your current grf.. Just take out the other files w/c you had customized. http://rathena.org/board/topic/66962-basic-complete-renewal-data-english-folder/
  6. You can refer to this http://www.eathena.ws/board/index.php?showtopic=274491 Currently, there is no guild based variables, you have to store it in your sql.
  7. change login_ip,char_ip,map_ip to 127.0.0.1 (map_athena.conf,char_athena.conf,login_athena.conf)
  8. - script FloatingRates -1,{ OnChangeRate: //Base exp setbattleflag("base_exp_rate",$@brate); //Job exp setbattleflag("job_exp_rate",$@jrate); //Drops setbattleflag("item_rate_common",$@drate); setbattleflag("item_rate_heal",$@drate); setbattleflag("item_rate_use",$@drate); setbattleflag("item_rate_equip",$@drate); //we don't change card drops rate, because these values won't change them anyway atcommand "@reloadmobdb"; announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060; end; OnPCLoginEvent: if(getusers(1)>=40 && $@brate == 100){ set $@brate,rand(101,150); set $@jrate,rand(101,150); set $@drate,rand(101,150); donpcevent "FloatingRates::OnChangeRate"; } end; OnPCLogoutEvent: if(getusers(1) < 40 && $@brate != 100){ set $@brate,100; set $@jrate,100; set $@drate,100; donpcevent "FloatingRates::OnChangeRate"; } end; } Wrote it on the fly, test if it works.
  9. Maybe it's better if you cap the rate instead of the status def status.c rate -= rate*sd->sc.data[sC_COMMONSC_RESIST]->val1/100; } } + rate = cap_value(rate, 0, 8000); //capped to 80% if (!(rnd()%10000 < rate)) return 0; //Why would a status start with no duration? Presume it has //duration defined elsewhere. oh well, you were asking about def_ele in status.c return ELE_UNDEAD; if(sc->data[sC_ELEMENTALCHANGE]) return sc->data[sC_ELEMENTALCHANGE]->val2; if(sc->data[sC_SHAPESHIFT]) return sc->data[sC_SHAPESHIFT]->val2; return (unsigned char)cap_value(element,0,UCHAR_MAX); } UCHAR_MAX is the max value return, w/c is 255.. change it to whatever you want to use <255
  10. this should do it. clif.c //homunculus [blackhole89] if( merc_is_hom_active(sd->hd) ) { +if(map_flag_gvg(sd->bl.m)) { +clif_displaymessage(sd->fd, "Homunculus are not allowed in Guild Wars."); +merc_hom_vaporize(sd,0); +} map_addblock(&sd->hd->bl); clif_spawn(&sd->hd->bl); clif_send_homdata(sd,SP_ACK,0);
  11. You can use this mod made by Xantara http://rathena.org/board/files/file/2239-mapflag-droprate/
  12. clif_skill_damage(src,bl, tick, status->amotion, status->dmotion, 1, 1, skillnum, skilllv, 5); change the values accordingly
  13. Index: pc.c =================================================================== --- pc.c (revision 16690) +++ pc.c (working copy) @@ -1129,6 +1129,8 @@ } class_ = status_get_class(bl); + if(class_ == MOBID_EMPERIUM) + return 0; if (!pcdb_checkid(class_)) { unsigned int max_hp = status_get_max_hp(bl); if ((pos == 1 && max_hp < 6000) || (pos == 2 && max_hp < 20000))
  14. Here http://supportmii.com/ro1/Clients/Bypass_Clients/Waeyan/WDGSkipPacketHeaderObfuscation.dll
  15. check mo sa const.txt, andun yung mga valid emotions
  16. Can you please elaborate? What is mi gao?
  17. The topic of this thread is about Duration of the buff (w/c is the 5th value in skill_cast_db entries), your question (after cast act delay) points to the 3rd value. If it still has a slight delay, its probably a sprite animation issue. The client prevents people to cast skills while the animation is still on-going.
  18. By default, Renewal settings have a fixed delay. To turn it off by commenting out RENEWAL_CAST in src/config/renewal.h
  19. edit it in db/*/skill_cast_db.txt SkillID,CastingTime,AfterCastActDelay,AfterCastWalkDelay,Duration1,Duration2,Cool Down,Fixed Casting Time 75,0,2000,0,10000:15000:20000:25000:30000,0,0,0 change the 5th value, the : corresponds to the per-level assignment.
  20. Hi, I made a diff for this.. It inherits the group permission for charcommands It uses '!' as char command symbot if you want to use account_id/char_id. id_charcommand.diff
  21. Can you give a scenario how it doesn't return the ticket? The ticket returns when the deal is cancelled, or one of the players force quit the client. Well, that's based on my test.
  22. Not really necessary though. For example the character's name is: Renji Abarai the proper command would be: #item "Renji Abarai" 501
  23. I was bored so I did this stuff. Bypass_TradeRestriction_via_Ticket.diff
  24. I don't know where you got this, but if you want to make it rathena compatible.. then it should probably look like this.. case BL_CHAR: { struct map_session_data *sd = BL_CAST(BL_PC, bl); nullpo_retv(sd); char charhp[25], *str_p = charhp; WBUFW(buf, 0) = cmd = 0x195; if( battle_config.show_char_info&1 ){ str_p += sprintf(str_p, "Lv. %d | ", sd->status.base_level); } if( str_p != charhp ) { *(str_p-3) = '\0'; memcpy(WBUFP(buf,30), charhp, NAME_LENGTH); WBUFB(buf,54) = 0; memcpy(WBUFP(buf,78), charhp, NAME_LENGTH); } } break;
×
×
  • Create New...