Jump to content

jaBote

Members
  • Posts

    182
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by jaBote

  1. If only Skoegul is active and you want to warp to prt_guild 122, 240 then you should: //Changing only the Prontera location setarray .region_x[0],122, 0, 0, 0, 0, 0, 148; setarray .region_y[0],240, 0, 0, 0, 0, 0, 163; and then reload the script. You can easily change the x and y coordinates each day (for sending people near the active castle of the day), but the problem is when you want to provide an option to warp to 2 different castles in the same region on the same day. If I were you and you want to code yourself a warper, I'd code a separate NPC because of not having to cope with a system NOT thought for warping to 2 places the same day (you'd need to do a fairly heavy modification of the script) and for making your code. It's quite simple and fast to code that NPC in that way providing you know (or want to know, it's a quite simple one!) some basic scripting.
  2. Just get the coordinates by using /where ingame wherever you want to warp your players. It works like this: setarray .region_x[0],prontera_x, payon_x, geffen_x, aldebaran_x, arunafeltz_x, schwarzwald_x, novice_guild_x; setarray .region_y[0],prontera_y, payon_y, geffen_y, aldebaran_y, arunafeltx_y, schwarzwald_y, novice_guild_y; For example, let's suppose you want to warp to x = 150, y = 30 on Prontera region, and 60, 75 for payon region, so you'll have to change it for this: setarray .region_x[0],150, 60, 0, 0, 0, 0, 148; setarray .region_y[0],30, 75, 0, 0, 0, 0, 163; So now you know how to edit that to your liking.
  3. Sí, pero tienes que usar SQL para obtener el ranking y consultas SQL con algún JOIN (búsqueda simultánea en varias tablas) para determinar el nombre de un personaje a partir de su Char ID, porque supongo que con el char ID no te bastará. Estoy bastante oxidadillo con esto de consultas SQL en scripting (y más si hay que usar JOINs, pero si con esta ayudita pequeña que apenas sirve de nada no puedes, puedo intentar repasarme un poco de scripting y echarte una mano algo más directamente. ¡Un saludo!
  4. For editing the effects of your weapons you'll have to edit them yourself in the item db located in /db/{re or pre-re}/item_db.txt (or in the item db table if you use the SQL item DB). Look up the item by its ID or name and then edit the bonus, which is the code between the curly braces (you'll need to know some basic scripting in order to do this).
  5. And then reload your NPC script (only that one). If not, it won't work.
  6. Just make this: change any item_drop_****_min to 10000 (it means 100.00%) but only change item_drop_card_min to 5000 and item_drop_card_max to 5000 to make them fixed at 50%. You could have read and applied Note 2 yourself.
  7. I've also updated string no 1040. Thanks Cydh for the reminder!
  8. The use of setitemscript will make the change temporary until server restart but it's server-wide, not only map-wide. What you can do on them is just to make a new restricted zone and forbid it on your item_noequip.txt, then apply and unapply the mapflag with the new zone.
  9. I don't know what's happening right now, but try to have groups with GM level between 0 and 99. At least it was impossible to be GM level 100 before the new permission system was implemented.
  10. I think this has something to do with the #DEFINE NAME_LENGTH definition in /src/common/mmo.h but I'm not sure.
  11. Well, I've restructured it a bit because I thought it'd be better. You needed to declare shops outside the script and then use callshop to call them on the script, just like the script I've written here: zhakastia,123,69,4 script Molly, Pet Shop 890,{ mes "Molly, Pet Shop"; mes "Hello!"; mes "Would you like to look at the shop?"; next; switch(select("Pet Food:Pet Armor:Taming Items:Not Today")) { case 1: // Pet Food mes "I'll open the Pet Food Shop for you"; close2; // Closes the NPC dialog without ending the script callshop "PetFoodShop",1; // Only Sell window end; // We end the script just after opening the shop so no need to break case 2: // Pet Armor mes "I'll open the Pet Armor Shop for you"; callshop "PetArmorShop",1; end; case 3: // Taming Items mes "I'll open the Taming Items Shop for you"; callshop "TamingItemsShop",1; end; default: // Any other case not covered above. "Not today" in this example. mes "See you again!"; close; // This statement closes and ends the script so no need to end again } // No need to close or end anything at this point } // Please add yourself the items you want to sell, last one doesn't need a comma - shop PetFoodShop -1, - shop PetArmorShop -1, - shop TamingItemsShop -1, Now you only need to add the items you want to sell and their price on the shops at the end of the code.
  12. First of all: you're missing all closing curlies. Those missing curlies are errors, so I suggest you to automatically close them once you open a curly and then working on its inside. Then, you've never set the .name$ variable and that'll make you get more errors. Also, I'd better use a switch so you can easily control each of the cases in a menu with more than 2 options, like this: zhakastia,123,69,4 script Molly, Pet Shop 890,{ mes "Molly, Pet Shop"; mes "Hello!"; mes "Would you like to look at the shop?"; next; switch(select("Pet Food:Pet Armor:Taming Items:Not Today")) { case 1: // Pet Food // Whatever you want to do here, I suggest using callshop because that's what I understand you want break; // If you don't use break, then case 2 will also be run instead of directly finishing the switch statement case 2: // Pet Armor // Same thing as in case 1 break; // If break is not present, case 3 will also be run case 3: // Taming Items // Same. break; // Same as the other breaks default: // Any other case not covered above. "Not today" in this example. mes "See you again!"; // You don't need to break here } close; // This close statement will be run after all the switch statement } I'll let you finish your script with these directions .
  13. Well, first of all you need to make a new group on /conf/groups.conf just like the normal groups but with trade permission disabled so that the players that just login are moved to that group. I'll create for example group number 6 which inherits from group id 0 (Normal players) and is to be placed after group number 4. You should create any new groups maintaining the current structure of the file: { id: 5 name: "Trade disallowed" level: 0 inherit: ( "Player" ) commands: { /* no commands by default */ } permissions: { can_trade: false } }, Then you'll have to restart your server in order for it to recognise this new group. If you don't get any error on this you're good to go and load this NPC script which is the one which will actually grant or remove the permissions to/from the players: - script block_trade -1,{ OnPCLoginEvent: if (getgmlevel()) end; // Prevents any GM to be affected and denied to trade by early ending the script. Moreover, it prevents to make them normal users. atcommand "@adjgroup 5"; // Puts the can't trade permission to any GM level 0 user that logs in addtimer 300000,strnpcinfo(3)+"::OnEnableTrade"; // 300000 milliseconds = 300 seconds = 5 minutes dispbottom "You'll have trade permissions as soon as you stay 5 minutes online."; end; OnEnableTrade: atcommand "@adjgroup 0"; // Give them back the trade permission dispbottom "You now have trade permissions."; end; } And now you'll have this system active. I haven't tested it, but it should work without any error. Otherwise, tell us here!
  14. Could you please give us any detail on the error? Any custom modifications or the console errors? With that you have showed us we can do nothing.
  15. No, rAthena ya tiene la mecánica y las bases de datos renewal a menos que las desactives expresamente en /src/config/renewal.h comentando las definiciones de ese fichero.
  16. Thats in your rAthena folder/sql-files/logs.sql if I remember correctly.
  17. The loginlog table in rAthena is by default on the logs database, but then the emulator looks for it in the ragnarok one. That's not a critical error -you can still use rAthena with this problem- but if you want to solve it just export the loginlog table structure from the logs database (use PhpMyAdmin if you want) and then import it in the ragnarok database, so you'll never get those notices again.
  18. Could you please tell us where did you get stuck so that we can help you better? Also, there are lots of guides out there, if you don't understand a guide you can look for another one. There are lots of guides out there. I can reccommend you for example the Judas Bible which has everything nicely explained.
  19. I wonder if I could also suggest making a new atcommand called @reloadmsgconf or so (in case you haven't thought on it yet), which would let specify an optional parameter and make the server read the msg_conf again but with a specific language. For example: Usage: @reloadmsgconf <language code> ex: Makes the server read and use English msg_conf files: ex: @reloadmsgconf en ex: Makes the server read and use Spanish msg_conf files: ex: @reloadmsgconf es And so for Indonesian, Chinese, French and so. Opinions on this?
  20. Any script that works on eAthena without the need of a custom source code modification will automatically work in rAthena. At least none of the scripts I made for myself long long ago has any problems when being read and used on rAthena.
  21. Try this one //===== rAthena Script ======================================= //= Reset NPC //===== By: ================================================== //= rAthena Dev Team //===== Current Version: ===================================== //= 1.3 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= Resets skills, stats, or both. //===== Additional Comments: ================================= //= 1.0 First Version //= 1.1 Optimized for the greater good. [Kisuka] //= 1.2 Cleaning [Euphy] //= 1.3 All statuses removed upon skill reset. [Euphy] //============================================================ prontera,150,193,4 script Reset Girl 124,{ set .@coupon_id,<item_id> set .@ResetStat,1; // no of coupons for stat reset set .@ResetSkill,1; // no of coupons for skill reset set .@ResetBoth,2; // no of coupons for resetting both together mes "[Reset Girl]"; mes "I am the Reset Girl."; mes "Reset Stats: "+ .@ResetStat +" coupon(s)"; mes "Reset Skills: "+ .@ResetSkill +"coupon(s)"; mes "Reset Both: "+ .@ResetBoth +"coupon(s)"; mes "Please select the service you want:"; next; switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) { case 1: mes "[Reset Girl]"; if (countitem(.@coupon_id) < .@ResetSkill) { mes "Sorry, you don't have enough coupons."; close; } delitem .@coupon_id, .@ResetSkill; sc_end SC_ALL; ResetSkill; mes "There you go!"; close; case 2: mes "[Reset Girl]"; if (countitem(.@coupon_id) < .@ResetStat) { mes "Sorry, you don't have enough coupons."; close; } delitem .@coupon_id, .@ResetStat; ResetStatus; mes "There you go!"; close; case 3: mes "[Reset Girl]"; if (countitem(.@coupon_id) < .@ResetBoth) { mes "Sorry, you don't have enough coupons."; close; } delitem .@coupon_id, .@ResetBoth; sc_end SC_ALL; ResetSkill; ResetStatus; mes "There you go!"; close; case 4: close; } } I haven't tested this, but it should work.
  22. jaBote

    Request.

    In total or counting by players?
  23. By quickly revising the script, I think you're good to go if you just don't install that SQL table and comment (or delete) anything from the first to the last SQL query. I mean, you have to comment/delete those lines: query_sql("SELECT last_ip FROM `login` WHERE account_id = "+getcharid(3)+"", .@lip$); // recruits ip address query_sql("SELECT last_ip FROM `guildpack`", .@flip$); // recruiter ip address and information if ( .@lip$ == .@flip$ ) { mes "^616D7EIt seems you and your Guild Mates are from IP Address: ^ff0000" + .@flip$ + "^000000. Sorry, but its not allowed."; close; } query_sql("INSERT INTO `guildpack` VALUES (NULL," + getcharid(3) + ",'" + escape_sql(strcharinfo(0)) + "','" + .@lip$ + "')"); Didn't test it though, but should work.
  24. If I'm correct, if you removed ba_frostjoke.txt and dc_scream files from the client, you could get that you want. Give it a try. At least I'm 99% sure it worked on old clients.
  25. I wouldn't use a progress bar. Ever. At least for more than 5 seconds.
×
×
  • Create New...