Jump to content

Starfoxcat

Members
  • Posts

    23
  • Joined

  • Last visited

Profile Information

  • Gender
    Male

Recent Profile Visitors

2086 profile views

Starfoxcat's Achievements

Poring

Poring (1/15)

2

Reputation

2

Community Answers

  1. Hello,, Firstly, I'm sorry for bringing this up back, but I haven't seen the real solution to this. To fix what @Tio Akimaasked and @AnnieRuru explained, it can be done in a very simple way. Head to script.cpp and in the "BUILDIN_FUNC(isequippedcnt)" section: change: To: for (short k = 0; k < 4; k++) { It will make the isequippedcnt function to cease to ONLY check available card slots in an equipped item and FORCE it to always check all four slots whether they are closed or open. That number 4 above and the "smaller than" operator is meant to check the card0, card1, card2, and card3 in an item. (Card0 = 1st card slot, Card1 = 2nd card slot, and so on). By using that method, you will be able to use isequippedcnt function in an item that has cards in the closed card slots. This may be handy for those who use card/orb inserter NPC and still want to limit its abilities (eg. stacking Bigfoot card 4x = immune to insect because 30% x 4 = 120%). Don't forget to recompile the source files, using "Build Solution" option is fine. Or use "Rebuild Solution" if you don't really trust this method. PS: Once again, sorry for bringing back an almost one-year-old post. Lazy version to "find and replace" is in the attachment, download and overwrite your file with that one. Still, you will need to recompile the source files. If you think this is helpful, please upvote so other members can really find this solution faster. Cheers, happy new year 2021. script.cpp
  2. You didn't say that you needed it when the members are close together (not in different screen). ? Mabuhay's script might work for you because he uses getmapxy and distance. ? About the console error, it means there is no Clean Bone (Item ID 25276) in your server, something you must check except if it's intentional.
  3. That might work and simpler, ? but no possibility percentage for the item and it triggers even when you're alone (exploitable?). ? Can just change the if ( killedrid == 1002 ) { like my previous post above to make it triggers by more than one monster. ? EDIT: For the possibility, maybe we can change getitem 607, 1, .@partymemberaid[rand(.@c)]; TO: if(rand(100)<25) getitem 607, 1, .@partymemberaid[rand(.@c)]; // 25% of possibility
  4. All I can do so far: - script PartyLoot -1,{ OnNPCKillEvent: L_RESCAN: set .@map$,strcharinfo(3); if( killedrid == 1002 )||( killedrid == 1063 ){ // PORING & LUNATIC for the sake of easier testing. if ( getcharid(1) ) { getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/ .@partymemberaid[.@c] = $@partymemberaid[.@i]; .@c++; } } set .@randc, rand(.@c); if(attachrid($@partymemberaid[.@randc])) { if(strcharinfo(3) == .@map$){ if(rand(100)<25) getitem 25276, 1, .@partymemberaid[.@randc]; //CLEAN BONE, something that Porings wont ever have. if(rand(100)<25) getitem 7564, 1, .@partymemberaid[.@randc]; // ROTTEN MEAT, something that Porings wont ever have. detachrid; } } else if (attachrid($@partymemberaid[.@randc])) { if(strcharinfo(3) != .@map$){ detachrid; goto L_RESCAN; } } } else { if(rand(100)<10) getitem 607, 3; if(rand(100)<10) getitem 607, 3; } } end; } Details of the script above: - It doesn't work when you're in a party, but you're alone. x That's why the script is called "PartyLoot" ? - It triggers when you kill Poring or Lunatic. - It shares items by the percentage (25%), 2 items to one lucky chosen member by random. - If the member is not at the same map as the killer, he will get skipped. And, at the moment, if you want more monsters to trigger, just add more ||( killedrid == <MONSTER ID> ) example: set .@map$,strcharinfo(3); if( killedrid == 1002 )||( killedrid == 1063 )||( killedrid == 1064 )||( killedrid == 1065 ) { if ( getcharid(1) ) { getpartymember getcharid(1), 1; The "||" means "or", so that script means "If somebody kill 1002 or 1063 or 1064 or 1065, then do ...." Just don't miss the any curly opening bracket at the end of it "{" Of course if you get any error, just reply again this post. If it works, just edit the monster IDs and the item IDs.
  5. What I wrote intended to make that script triggers when you kill monsters which IDs written in the array. setarray .@moblist, 1014, 1015, <MOB ID>, <MOB ID>, <MOB ID and so on>; You put the whole these: setarray .@moblist, 1014, 1015; // LIST OF MOB ID set .@mobsize,getarraysize(.@moblist); set .@val,0; while (.@val <= .@mobsize) { set .@val,.@val+1; set .@moblist[.@val]; below: - script PartyLoot -1,{ OnNPCKillEvent: But it's not tested yet, and I don't know how to test it since you gave an incomplete script.
  6. Hi, Did you mean this? ...\conf\battle\party.conf EDIT: Sorry I misread your question, wait a moment. EDIT: Maybe by the usage of array? And change: if ( getmonsterinfo( killedrid, 1014 ) to if( killedrid == .@moblist[.@val] ) It's not tested and I am not sure yet as my brain is a bit frozen by now (it's almost midnight here), and that script you've given is incomplete. My apologise if there is any mistake.
  7. Did you mean 4 rewards? Just change or add this line: getitem 502,1; To getitem 502,1; getitem <ITEM ID>,<QUANTITY>; getitem <ITEM ID>,<QUANTITY>; getitem <ITEM ID>,<QUANTITY>; The <ITEM ID> is the first value of the structure in the each line: https://raw.githubusercontent.com/rathena/rathena/master/db/re/item_db.txt 502 is indeed the Orange Potion.
  8. Hi, Any screenshot of your logserv, charserv, and mapserv? Having "Pinging SQL server to keep connection alive..." for once awhile is normal, but if it keeps repeating several times in a minute, that's not normal. Ensure that your "login_server_id" and "login_server_pw" in inter_athena.conf file are the same as your mySQL username and password. Also ensure that your client version matches your server's packets.
  9. Hi, Is there any other error messages other than those map limit error messages if you scroll up/down your mapserver window? Usually the error message would be like "[ERROR] File Not Found : <dir> " or "Failed to connect to ..." or something like those. Source file that has something to do with the map limit is in src/common/mmo.h with this entry: The easiest and quickest fix is re-download the whole new server files; and keep your configuration files and database from your old server.
  10. Hi, Try to see if there's no custom script running in your server. And see if the server's source files are all right. If you're not sure, try to re-download and recompile the source files.
  11. Hello, You probably need to edit Pre-renewal: \db\pre-re\item_combo_db.txt or Renewal: \db\re\item_combo_db.txt instead of editing its item_db.txt Or maybe try using a function call. function script F_HunterCardCombo { if (isequippedcnt(4178) == 1 )&&(isequippedcnt(4199) == 1 )&&(isequippedcnt(4234) == 1 )&&(isequippedcnt(4252) == 1 )&&(isequippedcnt(4297) == 1 ){ bonus bAgi,5; bonus bDex,3; bonus bLongAtkRate,20; bonus bPerfectHitAddRate,20; if(BaseClass==Job_Archer) { bonus2 bExpAddRace,RC_Brute,5; bonus2 bComaRace,RC_Brute,100; } } else if (isequippedcnt(4178) >= 2 )&&(isequippedcnt(4199) >= 2 )&&(isequippedcnt(4234) >= 2 )&&(isequippedcnt(4252) >= 2 )&&(isequippedcnt(4297) >= 2 ){ bonus bAgi,5*2; bonus bDex,3*2; bonus bLongAtkRate,20*2; bonus bPerfectHitAddRate,20*2; if(BaseClass==Job_Archer) { bonus2 bExpAddRace,RC_Brute,5*2; bonus2 bComaRace,RC_Brute,100*2; } } else if (isequippedcnt(4178) >= 3 )&&(isequippedcnt(4199) >= 3 )&&(isequippedcnt(4234) >= 3 )&&(isequippedcnt(4252) >= 3 )&&(isequippedcnt(4297) >= 3 ){ bonus bAgi,5*3; bonus bDex,3*3; bonus bLongAtkRate,20*3; bonus bPerfectHitAddRate,20*3; if(BaseClass==Job_Archer) { bonus2 bExpAddRace,RC_Brute,5*3; bonus2 bComaRace,RC_Brute,100*3; } } else if (isequippedcnt(4178) >= 4 )&&(isequippedcnt(4199) >= 4 )&&(isequippedcnt(4234) >= 4 )&&(isequippedcnt(4252) >= 4 )&&(isequippedcnt(4297) >= 4 ){ bonus bAgi,5*4; bonus bDex,3*4; bonus bLongAtkRate,20*4; bonus bPerfectHitAddRate,20*4; if(BaseClass==Job_Archer) { bonus2 bExpAddRace,RC_Brute,5*4; bonus2 bComaRace,RC_Brute,100*4; } } else { bonus bAgi,5; bonus bDex,3; bonus bLongAtkRate,20; bonus bPerfectHitAddRate,20; if(BaseClass==Job_Archer) { bonus2 bExpAddRace,RC_Brute,5; bonus2 bComaRace,RC_Brute,100; } } } Copy and paste above into the notepad and "save as" to npc/custom/huntercardcombo.txt And add this line in npc\scripts_custom.conf file: npc: npc/custom/huntercardcombo.txt ================================================================== And on Pre-renewal: \db\pre-re\item_combo_db.txt or Renewal: \db\re\item_combo_db.txt file. Find this and change: 4178:4199:4234:4252:4297,{ bonus bAgi,5; bonus bDex,3; bonus bLongAtkRate,20; bonus bPerfectHitAddRate,20; if(BaseClass==Job_Archer) { bonus2 bExpAddRace,RC_Brute,5; bonus2 bComaRace,RC_Brute,100; } } To: 4178:4199:4234:4252:4297,{ callfunc "F_HunterCardCombo"; } It's not tested yet, but it's worth trying. ? ======================================================================== Once you know the pattern above as it is understandable, you might want to create for the other combos on your own. Just pay attention to anything that gives resistance / damage reduction buff, for example, you might not want to 4x combo anything that gives 30% damage reduction to Orc. 30% * 4 = 120%, it means you're invincible to Orc (100% damage reduction means invincible), something you don't want to have in your own server.
  12. Hello, Did you mean that you're trying to set up a new server? This is the best detailed rAthena server setup tutorial so far:
  13. Hi, Just get a normal VPS, there are so many out there. Get VPS that is located (hosted) in your country or region for low ping purpose, or depends on your targeted players. For instance, if you want bunch of American (North American) players, get VPS. from USA. Be careful of choosing the machine specs, OS, and price. But before that, try to make your own server first and learn to make it open to public, because usually the support team only cares the things related to the network and VPS itself, not the things related to your server stuff.
  14. Hi, Try to check your sql-files/upgrades/ and see these files: (contain mail_attachment) upgrade_20160814.sql upgrade_20170620.sql upgrade_20171001.sql Update the script if necessary. And make sure your charserv has rights to access to your database via firewall settings. It is also worth checking if your main.sql script is fully integrated with your char.cpp. Lastly, ensure your inter_athena.conf contains these: (Never edit these) // Char Database Tables char_db: char hotkey_db: hotkey scdata_db: sc_data cart_db: cart_inventory inventory_db: inventory charlog_db: charlog skill_db: skill interlog_db: interlog memo_db: memo guild_db: guild guild_alliance_db: guild_alliance guild_castle_db: guild_castle guild_expulsion_db: guild_expulsion guild_member_db: guild_member guild_skill_db: guild_skill guild_position_db: guild_position guild_storage_db: guild_storage party_db: party pet_db: pet friend_db: friends mail_db: mail mail_attachment_db: mail_attachments auction_db: auction quest_db: quest homunculus_db: homunculus skill_homunculus_db: skill_homunculus mercenary_db: mercenary mercenary_owner_db: mercenary_owner elemental_db: elemental skillcooldown_db: skillcooldown bonus_script_db: bonus_script acc_reg_num_table: acc_reg_num acc_reg_str_table: acc_reg_str char_reg_str_table: char_reg_str char_reg_num_table: char_reg_num clan_table: clan clan_alliance_table: clan_alliance
  15. What does the error say when compiling?
×
×
  • Create New...