-
Content Count
48 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by Arduino
-
How are you putting the data there? You are putting the folder that says pre-renewal on the root directory, right? Can you try putting the renewal folder, just to try? You patched your client with "read data folder first"? if the previous didnt help, try to check that
-
Im not really sure what you want, but i understood that you wanted the enchantment to be random instead of it to be selected in a list. I had made here a modification on line 47 making it random instead of selecting it from the list. mes .n$; mes "Hello, "+strcharinfo(0)+"!"; mes "If you like I can enchant your costume equipment with any enchantment I have in store"; mes ( (.exchange_cost[0] > 0)?"in exchange for "+.enchant_cost[1]+"x "+getitemname(.enchant_cost[0]):"for free")+"."; mes "I can also reset an Enchantment "+ ((.enchant_reset[0] > 0)?", but I require "+.enchant_reset[1]+"x "+getitemname(.enchant_reset[0]):"for free")+"."; next; switch(select("- Enchant Costumes:- Reset Enchantment:- Nevermind")) { case 1: mes .n$; mes "Please select the Costume you want me to enchant:"; for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) { switch(.enchant_slot[.@s]) { case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break; case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break; case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break; case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break; case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break; case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break; case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break; case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break; case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break; case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break; } set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":""); } set .@c_m$,.@c_m$ + ":- Cancel"; set .@c,select(.@c_m$); if(.@c >= getarraysize(.enchant_slot)) close; set .@part,.enchant_slot[.@c-1]; next; mes .n$; if(getequipid(.@part) == -1) { mes "It looks like you don't have any costume equipped on there."; close; } set .@hg,getequipid(.@part); // Saving Item ID set .@ref,getequiprefinerycnt(.@part); // Saving Refine Level, if there is one set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1 mes "Selected Costume: "+getitemname(getequipid(.@part)); if(getequipcardid(.@part,3) != 0) { mes "But it looks like you already have an enchantment in this costume."; close; } mes "Now please select the Enchantment:"; next; set .@rune,rand(0, getarraysize(.enchant_id) - 1); mes .n$; mes "Selected Enchantment: "+getitemname(.enchant_id[.@rune]); if(.enchant_cost[0] > 0 && countitem(.enchant_cost[0]) < .enchant_cost[1]) { mes "But it looks like you don't have enough "+getitemname(.enchant_cost[0])+"!"; close; } mes "Proceed?"; if(select("- Yes:- No") - 1) close; next; if(.enchant_cost[0] > 0) delitem .enchant_cost[0],.enchant_cost[1]; delequip .@part; getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,.enchant_id[.@rune]; equip .@hg; mes .n$; mes "The enchantment was a success."; mes "See ya next time."; enable_items; break; case 2: mes .n$; mes "Please select the Costume you want me to reset the enchantment!"; for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) { switch(.enchant_slot[.@s]) { case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break; case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break; case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break; case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break; case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break; case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break; case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break; case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break; case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break; case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break; } set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":""); } set .@c_m$,.@c_m$ + ":- Cancel"; set .@c,select(.@c_m$); if(.@c >= getarraysize(.enchant_slot)) close; set .@part,.enchant_slot[.@c-1]; next; mes .n$; if(getequipcardid(.@part,3) == 0) { mes "It looks like you don't have any enchantment in this costume."; close; } set .@hg,getequipid(.@part); // Saving Item ID set .@ref,getequiprefinerycnt(.@part); // Saving Refine Level, if there is one set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1 mes "Selected Costume: "+getitemname(getequipid(.@part)); if(.enchant_reset[0] > 0 && countitem(.enchant_reset[0]) < .enchant_reset[1]) { mes "But you don't have the required Items to reset the enchantment!"; close; } mes "Proceed?"; if(select("- Yes:- No") - 1) close; next; if(.enchant_reset[0]) delitem .enchant_reset[0],.enchant_reset[1]; delequip .@part; getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,0; equip .@hg; mes .n$; mes "The enchantment has been reseted."; mes "See ya next time."; break; case 3: break; } end; OnInit: set .n$,"[Costume Enchanter]"; // Enter here every Costume Slot, which you want to be enchantable // Valid Entries: // - EQI_COSTUME_HEAD_TOP // - EQI_COSTUME_HEAD_MID // - EQI_COSTUME_HEAD_LOW // - EQI_COSTUME_GARMENT // - EQI_SHADOW_ARMOR // - EQI_SHADOW_WEAPON // - EQI_SHADOW_SHIELD // - EQI_SHADOW_SHOES // - EQI_SHADOW_ACC_R // - EQI_SHADOW_ACC_L setarray .enchant_slot[0],EQI_COSTUME_HEAD_TOP,EQI_COSTUME_HEAD_MID,EQI_COSTUME_HEAD_LOW; // Enchantment ID's setarray .enchant_id[0],6636,6637,6638,6639,6640,6641; // Price for enchanting: // To disable the price, put 0 as values setarray .enchant_cost[0],501,10; // Item ID,Amount // Price for reseting: // To disable the price, put 0 as values setarray .enchant_reset[0],501,10; // Item ID,Amount end; } If you can be more specific of what do you need maybe i can help you further. If you dont know how to say it you can use the help of google translate
-
I had the same problem some days ago! Just downloaded this https://github.com/llchrisll/ROenglishRE Put the corresponding folder in the root client folder and worked it like a charm
-
I dont think its possible with the current clients, but i can think its doable with robrowser. Maybe if someone creates a plugin for the client (i saw something about that some time ago), it might also work, but i dont think sending it directly to the server, as it only read packets, so it might be neccesary to makes the server configuration to expose who is near who to a third party service and let this third party service manage it... Its an interesting idea (that I as an anxious guy would not really like to use, but see the potential for it for others).
-
Just tried it and for me its working fine... ¿Have you the lasts emulator from the repository, or updated changes?
-
Hi! Can you be a little more specific about it?
-
What client are you using? Had you configured the clientinfo.xml with your ip? In your console of the login server, do you see any attempt of login?
-
Hi, i need help because i wanted to create a dynamic environment system where 3d models spawn on the map (i know that its possible), but all the guides from rathena or from here, indicates that you need to use a granny viewer sdk (version 2.8.52). The problem is that the license for that program its above 10k usd, and all the links that the people posted are currently dead. ¿Does anybody have the program or know where you can download it? its not for commercial purposes of course.
-
Please, show us some console log, and the script of the instance (or its every instance? Are you using plugins?)
-
Búsqueda de Hosting (Latinoamérica y Sur)
Arduino replied to Apacman's question in Soporte al Servidor
Saludos. La mejor opción por mi parte, siempre serán los servidores hosting tradicionales, tales como ovh, contaboo, digital ocean, etc. Ya que todos los otros que son específicamente para Ragnarok siempre escucharas que son una insulto generico...- y la razón de ello es que para cobrar no tienen problema, pero cuando necesitas soporte, no aparecerán más. Yo en lo personal, te recomiendo cualquier vps de OVH, es un buen servicio con buena latencia y características (quiza poco espacio de almacenamiento, pero eso se puede expandir por unos dolares más). Lo que te interesara luego, es ponerle un SO de linux, siendo ubuntu una de las mejores opciones, sobre todo para la gente con menos conocimientos en este tipo de SO. Luego, si sabes ingles vas a querer seguir esta guía para poder instalar todo, quedando una instalación fresca de hercules! espero haber sido de ayuda, y cualquier duda solo dímela! -
Hi! I recommend you to see the doc/script_commands.txt file and search for unit_walk, unit_attack, unit_emote, etc. Those are the commands that you are looking for and in the same documentation file are examples of how to use them!
-
@Temtaime I'm absolutly trash if it invonves graphics, but i want to dig up to the light this little skin design only as a suggestion
-
Hi luis, like in the thread in rathena, you may want to spawn something invisible in the coordinates and then use the specialeffect, but if you are using hercules then you can use the plugin duplicatenpc from @dastgir to duplicate a npc in said coordinates making it with the id class 111 (NPC_INVISIBLE i think)
-
Sincerely, it looks awesome.
-
That's because those maps where not found in the grf's or data directory (and, if you go there, you might crash for gravity) and seeing the image, are maps that practically no server use
-
had you declared the grf's with the 'new' maps in the conf/grf-files.conf? aaaaand, you want to rebuild all the cache, because you changed gats of existing cached maps, so just pass the rebuild flag when calling the mapcache. (./mapcache -rebuild) then, restart your server.
-
Have you run the map-cache.exe before changing the maps?
-
As meko is correct, this script command wouldnt be more appropiate? areamobuseskill("<map name>", <x>, <y>, <range>, <mob id>, <skill id>, <skill level>, <cast time>, <cancelable>, <emotion>, <target type>) *areamobuseskill("<map name>", <x>, <y>, <range>, <mob id>, "<skill name>", <skill level>, <cast time>, <cancelable>, <emotion>, <target type>) This command will make all monsters of the specified mob ID in the specified area use the specified skill. Map name, x, and y define the center of the area, which extending <range> cells in each direction (ex: a range of 3 would create a 7x7 square). The skill can be specified by skill ID or name. <cast time> is in milliseconds (1000 = 1 second), and the rest should be self-explanatory. <target type> can be: 0 = self 1 = the mob's current target 2 = the mob's master 3 = random target Example: // spawn 1 Shining Plant in the 5x5 area centered on (155,188) areamonster("prontera", 153, 186, 157, 190, "Shining Plant", SHINING_PLANT, 1); // make the plant cast level 10 Cold Bolt on a random target areamobuseskill("prontera", 155, 188, 2, SHINING_PLANT, MG_COLDBOLT, 10, 3000, 1, e_gg, 3)
-
You have your ro data files up to date? if not or not sure, just leave your ro updating
-
didnt you notice that this thread have more than two years? o.o
-
What do you mean with the "vending stuff"? The things that the merchants are selling with their vending skill? Or maybe the stores of npc's?
-
How to properly wipe all items and characters
Arduino replied to Thyr's question in General Server Support
Hi, you will also want to empty the following tables: cart_inventory inventory storage guild_storage if you want to the fame list start again empty also char_reg_num_db char_reg_str_db Also, You want that the characters start over, or just deleting their items? -
Great! I'm glad that you are finally back! Maybe i will contact you soon
- 95 replies
-
- maps
- forum setup
- (and 8 more)
-
[Solved] Closed connection before login?
Arduino replied to ShadowKing's question in General Server Support
Great! remember to put this thread as solved!