Leaderboard
Popular Content
Showing content with the highest reputation on 06/21/25 in Posts
-
This map belongs to the game universe expansion series. Made with attention to detail and inspired by the original! .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. um_fild05 Now you can visit the new part of the Hoomga Jungle! The map is a continuation of the Umbala Field 04 location and repeats its main features. The landscape also follows the outlines of the original art design of the location on the world map. The map seamlessly connects with neighboring levels. This map is also supposed to be the home of the MVP Wootan Defender, who was never featured in the original game. However, an ancient version of this MVP was added as a boss in Illusion of Luanda, but for some reason lived in the Comodo North Cave mixed with other monsters and even with another MVP Ancient Tao Gunka instead of in the forest area. Now you can fight its regular version in its native jungle zone and get a unique custom item. I asked the artist to draw a card and a custom shield for this MVP. MVP Wootan Defender MVP Wootan Defender Card Special Loot Wootan's Token - ID 25633 Wootan Defender's Shield Piece - ID 25634 Wootan Defender's Shield [1] - Custom All images and sprites can be downloaded in this topic: https://rathena.org/board/files/file/3844-w0w_custom_collection/ or here: Wootan Defender Card+Shield.zip P.S. You may not have noticed in the video but all the gorillas are doubled in size. In their normal size they look very weak the same height as the player. But they have good pixel art that does not lose its beauty when enlarged. It also allows you to double their HP stats and experience to make their farming at least a little more interesting. P.S.S. Also fixed the neighboring location um_fild04: 1) Removed official inaccessible gat points 168,137 and 185,138 2) Added seamless passage to the new location um_fild05 Please rate it if the map is good enough ~~ This map can be downloaded here https://rathena.org/board/files/file/4487-w0w_map_collection/3 points
-
con el permiso de no ofender al autor del script, quisiera que me ayudaran a colocarle un comando como el del archivo adjunto que seria fusión. - actualmente se le habla al npc pero quisiera que se le agregara la opción @claim, para tener dialogo desde el comando con el script de codigo de canje. - el archivo andjunto es otro script que ya tiene el @claim por lo cuál quienes me ayuden lo podrian sacar de allí, en realidad yo lo intente pero no lo logre. - si es posible también modificar la opción de que el administrador pueda crear la clave de código en el chat de gm. //--- Coupon NPC 1.1.2 -------------------------------------------// //----------------------------------------------------------------// // ttt 000000000 // ttt 000 000 // ttttttttt rrrrrrrrr 000 000 nnnnnnnnn // ttt rrr 000 000 nnn nnn // ttt rrr 000 000 nnn nnn // ttt rrr 000 000 nnn nnn // ttttt rrr 000000000 nnn nnn //----------------------------------------------------------------// //--- Changelogs: ------------------------------------------------// // 1.0.0 Release // 1.1.0 Added code type feature (normal|md5-hash) // 1.1.0 Added prevention for typing 0 into Item ID or Amount // 1.1.0 Added a feature for gms to see available coupons // 1.1.0 Minor bug fixes // 1.1.1 Fixed a bug that caused duplicating items // 1.1.2 Added announce if player got a item //----------------------------------------------------------------// //--- Main Script ------------------------------------------------// prontera,146,173,5 script Coupon Jack 807,{ //Set code type (0 = normal | 1 = MD5-Hash) set .code_type, 0; //Set code length set .code_length, 16; //Set Min. GM Level to add new coupons set .code_gmlvl, 99; setarray .coupon_code$[0],"a","b","c","d","e","f","g","h","i","j","k","l", "m","n","o","p","q","r","s","t","u","v","w","x", "y","z","0","1","2","3","4","5","6","7","8","9"; if(getgmlevel() >= .code_gmlvl) { mes "[^FF7700Coupon Jack^000000]"; mes "Welcome " + strcharinfo(0) + "."; next; switch(select("Add Coupon:Show Coupons:Exit")) { case 1: mes "[^FF7700Coupon Jack^000000]"; mes "Enter Item ID:"; input @coupon_item; next; if(@coupon_item <= 0) goto L_error; mes "[^FF7700Coupon Jack^000000]"; mes "Enter Item Amount:"; input @coupon_amount; next; if(@coupon_amount <= 0) goto L_error; for(set @i, 0; @i < .code_length; set @i, @i+1) { set @random_char, rand(0,(getarraysize(.coupon_code$)-1)); set @new_coupon$, @new_coupon$ + .coupon_code$[@random_char]; } if(.code_type==1) { set @new_coupon$, md5(@new_coupon$); } mes "[^FF7700Coupon Jack^000000]"; mes "Coupon added."; query_sql "INSERT INTO `coupons` (`code`, `item_id`, `item_amount`) VALUES ('"+@new_coupon$+"', "+@coupon_item+", "+@coupon_amount+")"; set @new_coupon$, ""; close; case 2: mes "[^FF7700Coupon Jack^000000]"; mes "--------------------------------"; query_sql "SELECT `code`, `item_id`, `item_amount` FROM `coupons`", .@available_code$, .@available_item, .@available_amount; for(set @i, 0; @i < getarraysize(.@available_code$); set @i, @i+1) { mes "Item: " + getitemname(.@available_item[@i]); mes "Amount: " + .@available_amount[@i]; mes "Code: " + .@available_code$[@i]; mes "--------------------------------"; } close; case 3: mes "[^FF7700Coupon Jack^000000]"; mes "Have a nice day."; close; } } mes "[^FF7700Coupon Jack^000000]"; mes "Welcome to the Coupon Codes System. How can I help you?"; next; switch(Select("Submit Coupon:Exit")) { case 1: mes "[^FF7700Coupon Jack^000000]"; mes "Please enter your Coupon Code:"; input @my_code$; next; query_sql "SELECT `code`, `item_id`, `item_amount` FROM `coupons`", .@available_code$, .@available_item, .@available_amount; for (set @i, 0; @i < getarraysize(.@available_code$); set @i, @i+1) { if(@my_code$==.@available_code$[@i]) { mes "[^FF7700Coupon Jack^000000]"; mes "You get ^0000FF" + getitemname(.@available_item[@i]) + " - " + .@available_amount[@i] + " ea.^000000"; query_sql "DELETE FROM `coupons` WHERE `code`='"+@my_code$+"'"; getitem .@available_item[@i],.@available_amount[@i]; //announce "Coupon Jack: " + strcharinfo(0) + " got " + .@available_amount[@i] + getitemname(.@available_item[@i]) + "(s).",0; close; } } mes "[^FF7700Coupon Jack^000000]"; mes "This Coupon Code doesn't exist."; close; case 2: mes "[^FF7700Coupon Jack^000000]"; mes "Have a nice day."; close; } L_error: mes "[^FF7700Coupon Jack^000000]"; mes "Invalid Number"; close; OnInit: query_sql "CREATE TABLE IF NOT EXISTS `coupons` (`code` TINYTEXT NOT NULL, `item_id` INT NOT NULL, `item_amount` INT NOT NULL, INDEX `code` (`code`(32)) ) ENGINE=MyISAM"; } npc de tron.txt npc_LIL TROLL.txt1 point
-
This map belongs to the game universe expansion series. Made with attention to detail and inspired by the original! .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. mosk_dun04 The map completely repeats all the patterns and elements of levels 1 and 2 of the Moscovia dungeon. I tried to use design elements from the official painted representation as much as possible. The map seamlessly connects with neighboring levels. Excellent for placing low-level monsters without a place to live: Woodie > and < Domovoi Woodie already has its own card with an image and effect, but Domovoi still hasn’t, so I’m glad to show you and suggest using this art for Domovoi card! (Without the use of AI. It is initially a pencil drawing on paper) All sprites can be downloaded here: Woodie Card+Loot.zipDomovoi Card+Loot.zip Please download Domovoi_Card.BMP: Domovoi_Card.bmp P.S. In the Slavic religious tradition, Domovoy is the household spirit of a given kin. Please rate it if the map is good enough ~~ This map can be downloaded here https://rathena.org/board/files/file/4487-w0w_map_collection/1 point
-
I did some research on the Domovoi monster (ID 2336), it has an official hat and cape. Tare Brownie [1] - ID 18628 Boss Brownie Manteau [1] - ID 2592 Also, on some servers it is a boss and the cape description says that it belongs to the brownie boss. Therefore, I also attach a card in the MVP style. Of course you should significantly increase his stats. You can also make Domovoi a miniboss. As you can see, there are five chests under the big trees on the map (mosk_dun04) that belong to brownies, so you can add 5 Domovoi minibosses to the map. I also asked the artist to draw additional custom items, so now the Domovoi also has a staff with an apple on top and its fur for quests on his hat. Apple Staff Domovoi Fur All images and sprites can be downloaded in this topic: https://rathena.org/board/files/file/3844-w0w_custom_collection/ or here: Domovoi Card+Loot.zip1 point
-
Stop crying already. First of all, you're not the only one with a brain who can think. Second, is it really my fault if I had the same idea and acted on it? And lastly, did I even get any code from you? I didn’t even know that thing had already been released. If you really think your idea was stolen, you should’ve registered it with the USCO to avoid this kind of drama. Anyway, I'm not here to argue with you. Like I said, I didn’t know someone else already had the same idea. Then all of a sudden, you’re here crying about it—haha. Let’s move on, bro. You’re not the only one gifted with a brain who can come up with ideas. Let others shine too don’t act like you own all the knowledge. Peace, bro. Next time, if you’re working on something, make sure to register it with the USCO right away.1 point
-
He eliminado los comandos mesitemlink e itemlink que no son compatibles con rAthena 2018. Por favor, intenta ahora. Si aún no funciona: ¿Aparece algún error o mensaje en la consola del map-server al cargar los scripts? ¿O al utilizar el comando? Si te funcionó, ¡dale un voto positivo al post, por favor! - script CouponNPC#main -1,{ S_Start: //Set code type (0 = normal | 1 = MD5-Hash) .code_type = 0; //Set code length .code_length = 12; //Set Min. GM Level to add new coupons .code_gmlvl = 99; setarray .coupon_code$[0],"A","B","C","D","E","F","G","H","I","J","K","L", "M","N","O","P","Q","R","S","T","U","V","W","X", "Y","Z","0","1","2","3","4","5","6","7","8","9"; if (getgmlevel() >= .code_gmlvl) { mes "[^FF7700Cupón Jack^000000]"; mes "Bienvenido GM " + strcharinfo(0) + "."; next; switch(select("Agregar cupón", "Mostrar cupones", "Menú normal", "Cancelar")) { case 1: do { mes "[^FF7700Cupón Jack^000000]"; mes "Ingrese el ID del objeto:"; input @coupon_item; if (getitemname(@coupon_item) == "null") { clear; mes "[^FF7700Cupón Jack^000000]"; mes "ID del objeto " + @coupon_item + " no encontrado."; if (select("Intentar de nuevo", "Cancelar") == 2) close; } else break; } while (true); do { clear; mes "[^FF7700Cupón Jack^000000]"; mes getitemname(@coupon_item) + "?"; mes "Ingrese la cantidad del objeto:"; input @coupon_amount; if (@coupon_amount < 1 || @coupon_amount > 10000) { clear; mes "[^FF7700Cupón Jack^000000]"; mes @coupon_amount + " no es una cantidad válida."; if (select("Intentar de nuevo", "Cancelar") == 2) close; } else break; } while (true); do { clear; mes "[^FF7700Cupón Jack^000000]"; mes @coupon_amount + "x " + getitemname(@coupon_item); mes "¿Cuántos cupones desea crear con estas mismas recompensas?"; next; if (select("Uno", "Ingresar cantidad") == 2) { input .@coupons; if (.@coupons < 1 || .@coupons > 50) { clear; mes "[^FF7700Cupón Jack^000000]"; mes .@coupons + " no es una cantidad válida."; if (select("Intentar de nuevo", "Cancelar") == 2) close; } else break; } else break; } while (true); if (.@coupons < 2) .@coupons = 1; do { switch(select("Generar código aleatorio", "Ingresar código manual", "Cancelar")) { case 1: .@random = true; break; case 2: clear; mes "[^FF7700Cupón Jack^000000]"; mes "Ingrese el cupón:"; mes "Longitud máxima: " + .code_length + " caracter(es)"; input .@input_name$; if(getstrlen(.@input_name$) < 0 || getstrlen(.@input_name$) > .code_length) { clear; mes "[^FF7700Cupón Jack^000000]"; mes "Inválido."; mes "El cupón debe tener al menos 1 caracter y un máximo de " + .code_length + " caracter(es)"; } else { for(.@i = 0; .@i < .@coupons; .@i++) .@new_coupon$[.@i] = .@input_name$; } break; case 3: close; } } while (.@new_coupon$[0] == "" && !.@random); if (.@random || .@coupons > 1) { .@length = .code_length; if (.@new_coupon$[0] != "") { .@endchar = getstrlen(.@new_coupon$[0]); .@length = maximum(.code_length,(.@endchar+4)); } for(.@i = 0; .@i < .@coupons; .@i++) { for(.@j = .@endchar; .@j < .@length; .@j++) { .@random_char = rand(getarraysize(.coupon_code$)); .@new_coupon$[.@i] += .coupon_code$[.@random_char]; } if (.code_type == 1) .@new_coupon$[.@i] = md5(.@new_coupon$[.@i]); } } clear; mes "[^FF7700Cupón Jack^000000]"; mes @coupon_amount + "x " + getitemname(@coupon_item); for(.@i = 0; .@i < .@coupons; .@i++) mes "Cupón" + (.@coupons>1?" "+(.@i+1):"") + ": ^EE8800" + .@new_coupon$[.@i] + "^000000"; if(select("^0000FFConfirmar " + F_InsertPlural(.@coupons,"cupón") + "^000000", "Cancelar") == 2) close; for(.@i = 0; .@i < .@coupons; .@i++) query_sql "INSERT INTO `coupons` (`code`, `item_id`, `item_amount`) VALUES ('" + escape_sql(.@new_coupon$[.@i]) + "', "+@coupon_item+", "+@coupon_amount+")"; clear; mes "[^FF7700Cupón Jack^000000]"; mes F_InsertPlural(.@coupons,"cupón") + " agregado."; for(.@i = 0; .@i < .@coupons; .@i++) mes "Cupón" + (.@coupons>1?" "+(.@i+1):"") + ": ^EE8800" + .@new_coupon$[.@i] + "^000000"; close; case 2: mes "[^FF7700Cupón Jack^000000]"; query_sql "SELECT `code`, `item_id`, `item_amount` FROM `coupons`", .@available_code$, .@available_item, .@available_amount; .@total_codes = getarraysize(.@available_code$); if (!.@total_codes) mes "No hay códigos disponibles."; dispbottom "==============================="; dispbottom "Código | Objeto | Cantidad"; for(.@i = 0; .@i < .@total_codes; .@i++) { mes "--------------------------------"; mes "Objeto: " + getitemname(.@available_item[.@i]); mes "Cantidad: " + .@available_amount[.@i]; mes "Código: " + .@available_code$[.@i]; dispbottom .@available_code$[.@i] + " | " + getitemname(.@available_item[.@i]) + " | x" + .@available_amount[.@i]; } dispbottom "==============================="; close; case 3: break; case 4: mes "[^FF7700Cupón Jack^000000]"; mes "¡Que tenga un buen día!"; close; } } mes "[^FF7700Cupón Jack^000000]"; mes "Bienvenido al sistema de códigos de cupones. ¿En qué puedo ayudarte?"; mes " ", "También puedes usar el comando", "^0000FF@claim <código del cupón>^000000 desde cualquier parte del mundo."; next; switch(Select("Canjear cupón", "Cancelar")) { case 1: mes "[^FF7700Cupón Jack^000000]"; mes "Por favor, introduce tu código de cupón:"; input .@my_code$; clear; callsub S_Submit,.@my_code$; close; case 2: mes "[^FF7700Cupón Jack^000000]"; mes "¡Que tenga un buen día!"; close; } S_Submit: .@my_code$ = getarg(0); query_sql "SELECT `code`, `item_id`, `item_amount` FROM `coupons`", .@available_code$, .@available_item, .@available_amount; for (@i = 0; @i < getarraysize(.@available_code$); @i++) { if (strtoupper(.@my_code$) == strtoupper(.@available_code$[@i])) { if (checkweight(.@available_item[@i],.@available_amount[@i]) == 0) { if (getarg(1,0)) { message strcharinfo(0), "No tienes suficiente espacio en el inventario para reclamar este cupón."; end; } mes "[^FF7700Cupón Jack^000000]"; mes "No tienes suficiente espacio en el inventario para reclamar este cupón."; close; } query_sql "DELETE FROM `coupons` WHERE `code`='" + escape_sql(.@my_code$) + "'"; getitem .@available_item[@i],.@available_amount[@i]; if (getarg(1,0)) { message strcharinfo(0), "¡Cupón canjeado! Has recibido " + getitemname(.@available_item[@i]) + " - " + .@available_amount[@i] + " unidad(es).^000000"; end; } mes "[^FF7700Cupón Jack^000000]"; mes "Has recibido ^0000FF" + getitemname(.@available_item[@i]) + " - " + .@available_amount[@i] + " unidad(es).^000000"; close; } } if (getarg(1,0)) { message strcharinfo(0), "El cupón " + .@my_code$ + " no existe o ya fue canjeado."; end; } mes "[^FF7700Cupón Jack^000000]"; mes "Este código de cupón no existe o ya fue canjeado."; close; OnInit: query_sql "CREATE TABLE IF NOT EXISTS `coupons` (`code` TINYTEXT NOT NULL, `item_id` INT NOT NULL, `item_amount` INT NOT NULL, INDEX `code` (`code`(32)) ) ENGINE=MyISAM"; if (strnpcinfo(2) == "main") bindatcmd "claim",strnpcinfo(3)+"::OnAtcommand"; end; OnAtcommand: if (.@atcmd_parameters$[0] != "") callsub S_Submit,implode(.@atcmd_parameters$, " "),1; callsub S_Start; end; } //Uncomment to enable clickable NPC //prontera,146,173,5 duplicate(CouponNPC#main) Cupón Jack 8071 point