Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by jaBote

  1. Well, he'll be capable of customizing what he wants because it's fully customizable (except for times, which you have to edit yourself). Haven't finished yet, but you can take a sneak peek of the OnInit event so far: OnInit: // Configurations set .dynratetype, 0; // 0 = nothing; 1 = Base rates are dynamic; 2 = Job rates are dynamic; 4 = Drop rates are dynamic. You can add up these, eg: 7 = 1+2+4 = 1|2|4 // If 0, rates will increase in a linear fashion (rate = A + B*x); // If 1, they'll increase in an exponential fashion (rate = A + B^x); // If 2, they'll increase in another exponential fashion (rate = A + x^. // x will be number of people online. If you don't know how they're, you can plot these graphs on http://fooplot.com if you give a value to A and B set .fashion, 0; if (.dynratetype & 1) { //Rates for Base exp. 100 = 1x; 1000 = 10x and so. set .Abase, 500; set .Bbase, 10; set .capbase, 1000; // Max value to base exp, if our calculations take set .flatbase, 500; // For weekends } if (.dynratetype & 2) { //Rates for Job exp. 100 = 1x; 1000 = 10x and so. set .Ajob, 500; set .Bjob, 10; set .capjob, 1000; // Max value to job exp, if our calculations take set .flatjob, 500; // For weekends } if (.dynratetype & 4) { //Rates for Drop percentage. 100 = 1x; 1000 = 10x and so. set .Adrop, 500; set .Bdrop, 10; set .capdrop, 1000; // Max value to drop %, if our calculations take set .flatdrop, 500; // For weekends } // No settings past this point // Initialization of npcs if ( gettime(4) > 0 && (gettime(4) < 5 || (gettime(4) == 5 && gettime(3) < 16)) ) set .dynamic, 1; else donpc strnpcinfo(3)+"::OnFri1600"; end; Also wanted to make a logarithmic implementation of rates (quite logic since real-life systems have saturation and this has no need for capping), but haven't found any mathematical means to do so. I mean both A + logx( and A + logB(x) methods.
  2. Teóricamente el cliente de Judas funciona sin necesidad de hacer ningún cambio en el código fuente del emulador. Simplemente, si tu servidor es casero y no vas a permitir conexiones desde fuera, le ajustas las credenciales SQL y es suficiente (cambiar el s1/p1 si vas a usarlo solo para ti es tontería, por mucho warning que genere). A mí me funcionó sin siquiera necesitar editar mmo.h: descargar Hercules, compilar en MS Visual C++ 2010 express, instalar las bases de datos y dar usuario y contraseña MySQL a Hercules, y ejecutar run-server.bat; el cliente simplemente descomprimido en una carpeta con el RO oficial instalado y funcionó justamente así. Prueba a rehacer todo a ver si funciona. Lo más seguro es que tu problema sea una nimiedad, pero que se nos está escapando.
  3. jaBote

    Help Me

    If you want to set up a server from scratch, I reccommend you read some documentation first. The README.md file we have on our repository is a good info for most purposes on how to get and make a private server. Sadly, we can hardly help you if you don't tell us what specific problem you have or even if we don't know what's your OS.
  4. Fixed in the upaste.me version. IDK why my scripting is a bit rusty lately.
  5. Have you set the corresponding mapflags? You have to set mapflag loadevent to each map you want this script trigger on. Example: gvgmap mapflag loadeventgvgmap2 mapflag loadeventgvgmap3 mapflag loadevent If you don't set this mapflag on the maps you want this script to trigger, nothing will happen.
  6. Now that I remember, by default the MySQL server didn't allow connections from outside (just from the same machine) and you have to edit the MySQL configurations to allow that (that's disabled by default for security reasons). This means, you won't be able to access from outside even if your have a user with all privileges, if you haven't allowed connections from other computers. So, if you haven't done it yet, try to enable remote connections to your MySQL server. I once was needing this and this guide was useful to me. If you have already allowed remote connections, then the problem is 99.99% from flux and I can't help you there since I've never used it.
  7. Here you go: http://upaste.me/8bfd59863044c49a This leaves me with a feeling of having broken something but I can't find nothing, so please tell me if I really did. I have no console for testing right now. Tell me if it works properly Please, edit yourself all references to the rest of armors this NPC supposedly enchanted. I've left it up to you since I have other things to do and time is tight on me. Edit: if this is correct, which post do I mark as solved? This one or the other NPC modification?
  8. Working on this. Are drop rates variable too? Which ones? P.S.: Remember to test on your home server! P.P.S.: Would be really nice to have that script command on the community since that one's quite popular.
  9. I have no clue why that's happening, but a similar problem has been recently resolved. Could you try what was posted in this topic from message #5 onwards? Maybe that's your answer. Link to topic: http://herc.ws/board/topic/781-unable-to-apply-updates-sql/?p=5477 Thanks Xgear!
  10. Welcome to Hercules! Here we always do our best to help people when we can
  11. @@SlashGeeGee: No, that's the name of the equip position you're looking into (see 'getequipisequiped' script command and reference for script positions to 'getequipid'). Actual equipment is taken on the loop. Since position 4 is for weapons and this script doesn't do anything to weapons, they're skipped. You'll never see that Invalid in your NPC at execution. Modifications are quite different if you make this enchanter work only on upper headgear or work on upper, mid and low headgears independently. What do you exactly want? If you only want Upper headgear I can take the loop out. @@Critica: Yes, you could simply comment (place a // in front of the respective code lines) the 'delitem' script command at lines 673, 764 (763 too if you don't want the material removed), and 852 (and 851 if you want same as before. Just remember this script uses an item with an ID# 30000, which is a custom one. P.S.: It seems I'm starting to expertise in this script
  12. Maybe you can cheapily solve this error adding an atcommand "@refresh"; Just before any of the ends? This is a cheap and unclassy fix, but I can't think of anything better at the moment.
  13. I have never tried FluxCP yet so I can't help you connecting to the database, but this kind of errors are kinda frequent in shared web hosting: You tried to use 451,54 MBytes of memory when your hoster only allowed you to use 128 MBytes. Since installation didn't work properly, I'd reccommend deleting your FluxCP installation and doing it again, but changing something. What can you do? In most cases, you can locally alter memory limit to your liking (just avoid setting it too high). Either: Make a php.ini file un your FluxCP root before installing it. and write in it:memory_limit = 512M Open your installer php file (or each of the installation steps) and add on it (them) the following, where corresponds:ini_set('memory_limit', '512M'); Make a .htaccess file (or edit it if it already exists) in the root of FluxCP and write (add) the following in it:php_value memory_limit 512M Try only one of these at once or you may drive your hosting mad. If neither of they work, I suggest getting a good web hosting. If you fix this error, chances are you'll fix the DB error.
  14. Don't know what's happening then. You see any console errors or so?
  15. Have you checked you have proper lubs for your 2012-04-10 client? If not wou yon't be able to do anything on the client side.Here, take you lub pack (they go inside a data folder or a GRF for your client: http://svn6.assembla.com/svn/ClientSide/Lua_Project/lubs/ Take the 2012-04-10 download, unrar them and what you need is what is in the data folder of the rar. About the newest clients, I don't know but I'm not good in the newest clients and they're rather unstable, so I wouldn't use the 2012-5-22 client yet.
  16. Problem isn't in the pcblockmove script command. In fact, I'd leave it. Problem is caused by using close; when no message window is present. This way of using close is deficient; and has been deprecated and unsupported recently. Try a script with that correction: //===== eAthena Script =======================================//= Guarantee Refine Ticket//===== By: ==================================================//= Euphy / GM Takumirai//===== Current Version: =====================================//= 1.1a//===== Description: =========================================//= Uses [Guarantee Refine Ticket] to refine weapons/armor.//============================================================ function script GuaranteeRefine { set .@CleanEquip,1; // Only refine +0 equipment? (1:yes / 0:no) if (!getarg(1)) { message strcharinfo(0)," ~~ Guarantee Refine Ticket +"+getarg(0)+" ~~ "; for(set .@i,1; .@i<=10; set .@i,.@i+1) { if (getequipisequiped(.@i) && !getiteminfo(getequipid(.@i),13)) set .@menu$, .@menugetequipname(.@i); set .@menu$, .@menu":"; } set .@s, select(.@menu$); } else set .@s, getarg(1); if (!getequipisequiped(.@s)) { dispbottom "Nothing is equipped!"; end; } if (!getequipisenableref(.@s)) { dispbottom getequipname(.@s)+" cannot be refined."; end; } if (getequiprefinerycnt(.@s) >= 10 || (.@CleanEquip && getequiprefinerycnt(.@s))) { dispbottom "+"+getequiprefinerycnt(.@s)+" "+getequipname(.@s)+" cannot be refined any further."; end; } if (getarg(1)) message strcharinfo(0)," ~~ Guarantee Refine Ticket +"+getarg(0)+" ~~ "; if(select("^0055FFRefine +"+getequiprefinerycnt(.@s)+" "+getequipname(.@s)+":^777777Cancel^000000")==2) end; //pcblockmove getcharid(3),1; //specialeffect2 348; //progressbar "",2; if (!countitem(getarg(2))) { dispbottom "Refine failed. Ticket not found."; end; } for(set .@i,0; .@i<getarg(0); set .@i,.@i+1) { if (getequiprefinerycnt(.@s) >= 10) end; successrefitem .@s; } delitem getarg(2),1; //pcblockmove getcharid(3),0; end;} /*Copy the following into dbitem_db2.txt:6228,Guarantee_Weapon_9Up,Guarantee Weapon 9Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",9,4,6228; },{},{}6229,Guarantee_Weapon_8Up,Guarantee Weapon 8Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",8,4,6229; },{},{}6230,Guarantee_Weapon_7Up,Guarantee Weapon 7Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",7,4,6230; },{},{}6231,Guarantee_Weapon_6Up,Guarantee Weapon 6Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",6,4,6231; },{},{}6232,Guarantee_Armor_9Up,Guarantee Armor 9Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",9,0,6232; },{},{}6233,Guarantee_Armor_8Up,Guarantee Armor 8Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",8,0,6233; },{},{}6234,Guarantee_Armor_7Up,Guarantee Armor 7Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",7,0,6234; },{},{}6235,Guarantee_Armor_6Up,Guarantee Armor 6Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",6,0,6235; },{},{}6238,Guarantee_Weapon_10Up,Guarantee Weapon 10Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",10,4,6238; },{},{}6239,Guarantee_Armor_10Up,Guarantee Armor 10Up,11,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "GuaranteeRefine",10,0,6239; },{},{}*/ This should work. Sorry if I left over any close; just change them for end; Tell me if this works.
  17. I'm a bit rusty on scripting as you can see. This script has passed in Hercules Console checking of errors. Try this one: http://upaste.me/9fca5983bac12e78 @Capuche: loading config OnMon0000, using it and then unloading that from memory is intentional and works; also strange rate from mobs and map at once is intended: if a mob of the week is in a map of the week, you get a total base_mobexp * server_rate * (map_bonus + mob_bonus). @general public: Still not thoroughly tested so errors/bugs may still be there, it just passed console parsing.
  18. Maximum refine for the server can be modified in src/map/status.h. See this piece of code: /*** Max Refine available to your server* Changing this limit requires edits to refine_db.txt**/#ifdef RENEWAL#define MAX_REFINE 20#else#define MAX_REFINE 10#endif This should be self-explanatory, but if your server is in Renewal mode, you should edit the first definition of MAX_REFINE; if it is in pre-renewal mode second one. After that you should edit db/re/refine_db.txt if you're on Renewal mode or /db/pre-re/refine_db.txt if you're on pre-renewal. These files are pretty self-explanatory too, just read thoroughly the structure at the start of the file and description of each parameter and modify accordingly. Now you're done with this.
  19. And this, ladies and gentlemen, is what happens when I haven't a console near me for testing or detecting basic errors in npcs. This also justifies what I say about testing them before using and feeding me back with errors. Sorry for these errors, I'll try to fix them as soon as I get back to my pc (I'm on my smartphone right now).
  20. Regular Hercules installation has none of the following: `last_mac` column in table `login`; `virtue_promo` table, and neither of its columns. Considering you have these fields on your server: Line 3, 4 & 7: `day` column isn't enclosed on ``. Shouldn't be a big problem, but just in case. Same for `account_id` for line 4 and `last_mac` for line 7; Line 3: You just select `day`, but provide 2 arrays to write the information to. Don't know if this is a problem, but you shouldn't specify more arrays than columns of data to get. If `day` is always set from gettime(4) (which always returns an integer), it's not safe to treat it as text. Line 7 & 11: No need to enclose an integer between ' ', this way you treat it as string and you're interested on using it as a number. If any of the above doesn't do any effect, try to debug your script by filling it with debugmes or dispbottom if you don't mind spamming your users, telling the number of results returned from the queries and/or the queries executed. Try those queries yourself and see if anything is wrong. Anyways, that NPC seems correct at first glance since these little mistakes shouldn't be any important, but I suggest fixing them.
  21. I do see great potential in this.
  22. As far as I know (I'm not quite good on the client side), data folder is what goes in grf. System must be in the RO files folder as you say.
  23. Few replies: Yes, a least most of content inside data folder. That data structure started to change from 2012-4-18 client onwards. They all are now merged in the same file: itemInfo.lua Hope I've been useful.
  24. jaBote

    CashShop Button

    This topic has gone too far out of its original reason to be. Because of this reason, topic will be closed and marked for deletion on next days. You can start another topic on this matter, but if you do please avoid off-topic and arguments like in this one.
  25. Just comment them (place a // before them) so they won't have any effect. Sent from smartphone.
×
×
  • Create New...

Important Information

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