Jump to content

Starfoxcat

Members
  • Posts

    23
  • Joined

  • Last visited

Everything posted by Starfoxcat

  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?
  16. I'm sorry for bumping up this old post, but in case somebody is facing the same issue, setting this to 0 will make the pet hunger bar deplete even faster (no delay). Setting this to 200 will make the hunger rate goes down 2x slower, 300 to make it 3x slower, 2500 to make it 25x slower, and so on. Setting this to 100000 will make the hunger rate always stay full and the pet will never run away, but with 'never hungry' setting will also make the pet intimacy go down gradually because you will never have to feed them. If you insist to feed them when they're full, their intimacy will even be going lower and in worst case, dying. I personally use 2500.
  17. Hello, I don't really understand with what you're saying, but if you want to change the maximum HP of the players, go to ...\conf\battle\player.conf and change these values.
  18. Hi, The IP your mapserv.bat connecting to is unfamiliar to me. Seems like you inserted your public Singaporean IP address instead of your local IP address. If your server is local, open char_athena.conf, map_athena.conf, and login_athena conf, then put "//" at every IP configuration inside those files. Example: //login_ip: 127.0.0.1 Let the server determines the IPs by itself.
  19. Hey, I came across with the same problem too by using the very updated server files and very recent mySQL 8.0, but it appears to be working normally because my logserv refills those null entries with "0" automatically after some times playing. Try to remove those schemas, and rerun/re-execute those two SQL-Scripts (main and logs) again, then start your server, and just simply ignore those errors, create like two characters, play them a bit, logout, and re-login for a couple times, see whether if there's an error, missing items in inventories and storage, character levels and other information. I hope yours will work normally like mine. PS: What version is your MySQL, by the way?
  20. This might not answer your question but there is an application called Browedit and the tutorial how to implement the new maps you have created.
  21. Hi, Have you tried to open and forward the ports via router? It's called Port Forwarding, or you can Google about it. But to sum up, you need to open forward 6900 for the login port, 5121 for the map port, and 6121 for the char port. PLAN A A1. To do that, open your router configuration by using an internet browser (Microsoft Edge or Google Chrome, or any), and type 192.168.1.1. If it's blank or failing, try 192.168.10.1 or 192.168.1.2 or 10.0.1.1. If it still fails, open Command Prompt (RUN > cmd) and type ipconfig, and look at the IP address written at the Default Gateway. (Windows user) Make sure you know your router username and password, (it's both "admin" by default, if you don't know: Try to get them from your router packaging box, usually there's the username and password written, or you have to call your internet provider to ask the username and password.) Find "Port Forwarding" option (or any option similar to it), and forward the port 6900, 5121, and 6121. Then save or apply. To check whether it's open or not, go to https://ping.eu/port-chk/ and put your public IP address and each port above. If each port says open, you're then good to go to the next step. Remember, Public IP is different from your local IP. To know what your public IP is, just simply Google "what's my IP". A2. Go to your server files and open map_athena.conf and change //map_ip: xxx.xxx.xxx.xxx to map_ip: your public IP, and open char_athena.conf and change //char_ip: xxx.xxx.xxx.xxx to char_ip: (your public IP) Don't forget to remove the "//" on each above. A3. Go to your client files and find sclientinfo.xml, open it with notepad, and change the address to your public IP address. If you have clientinfo.xml, do the same (just in case). A4. To make sure everything is good, go to https://ping.eu/port-chk/ again and check your forwarded ports. And go to https://ping.eu/ping/ to ping your server. If it replies, try to login from different computer and different public IP. A5. Copy the client files and give them to your friends from different public IP. And play. I can't guarantee that it will be successful, but worth trying. Since most internet providers give its customers a dynamic public IP (which means your public IP changes over time), you will have to recheck your public IP address periodically and do step A2 and A3 if it is changed. If you have a domain, you can trick it to make it static alike. If it fails, you can use 3rd party application like Hamachi, but it's a bit slower. See PLAN B below. It's recommended if you want a much simpler method. PLAN B To download Hamachi, go to https://www.vpn.net B1. Open Hamachi, click the power button and type your desired Hamachi user name so your friends can identify you. Make sure it's turned on. It's actually all pretty much self-explanatory. B2. Click "Network" tab and click "Create a new network". (For Windows user, if there's a "network type" window popup appears, just choose "Public Network") Put any network name and password, just don't forget because it is what you are going to tell to your friends. B3. Do step A3 (not B3), but this time put your Hamachi IP address written on the Hamachi main window. B4. Copy the client files and give them to your friends. Ask your friend to connect to your Hamachi IP address, and play. ================= Note for yourself: If you play from the same computer as your server, do A3/B3 but with address 127.0.0.1 If you play from different computer but in the same router, do A3/B3 but with your server local IP address inserted (usually started with 192.168.xxx.xxx), to know your local IP address, go RUN > cmd and type ipconfig and look at IPv4 Address section, that's your local IP address. In this case, you must do it from your server computer to know the server local IP address. It's better to start the server NOT from the main computer of where your client is. And with RAM of 2 GB at least. To experts, correct me if there's a mistake.
  22. Hi, 1. Just copy and paste that script onto a notepad and save it as TEST.txt in ...\npc\custom directory. 2. Open scripts_custom.conf file in ...\npc directory, then edit and add this at the bottom: npc: npc/custom/TEST.txt 3. Reload or restart your server.
×
×
  • Create New...