Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. NPC that gives random cards for amount of 1m per roll normal monster 100% chance and 10% chance for mini monster cards that i can add or remove cards thanks in advance
  3. got this warning and debug : [17/May 19:10][Warning]: script:query_sql: Too many columns, discarding last 3 columns. [17/May 19:10][Debug]: Source (NPC): MVPLadder (invisible/not on a map) [17/May 19:10][Debug]: Source (NPC): MVPLadder is located in: npc/custom/mvplad.txt this is my script: //====== rAthena Script ====================================================== //= MVP ladder script //===== By: ================================================================== //= Rokimoki but edited and adapted from AnnieRuru PVP Ladder //= https://herc.ws/board/topic/18871-dota-pvp-ladder/ //= Mark Script fixed and adapted some small things //===== Current Version: ===================================================== //= 2.1 //===== Compatible With: ===================================================== //= rAthena 2020-10-20, with MySQL 8.0 //===== Description: ========================================================= //= MVP ladder store in SQL table //= Requested by DevThor //===== Additional Comments: ================================================= //= 1.0 initial version //= 2.0 added total kill count and fixed some sql bugs //= 2.1 fixed sql sorting rank //============================================================================ /* CREATE TABLE `mvpladder` ( `id` int(11) NOT NULL AUTO_INCREMENT, `char_id` int(11) unsigned NOT NULL default '0', `mob_id` INT NOT NULL, `kills` INT DEFAULT 0, PRIMARY KEY (`id`), INDEX (`char_id`), INDEX (`mob_id`), INDEX (`kills`) ) ENGINE=MyISAM AUTO_INCREMENT=1; */ //---- MvP Ladder Logic Script - script MVPLadder -1,{ OnInit: // Config .map_killannounce = 1; // announce when MVP is dead on the map where the MVP was killed : 0 - off, 1 - o .killannounce = 1; // announce when MVP is dead globally : 0 - off, 1 - on .gmnokill = 0; // GMs are not suppose to kill MVP. A GM with <this number> level or higher will do nothing. IF set to 60, GM60 and above kill any player will not get anything : 0 - off // .min_gm_menu = 90; // minimum level of GM can use the GM menu on ladder npc .showtotal = 20; // show the length of ladder. .showpage = 10; // set the views per page. .showstatue = 3; // number of statues. This number must match with the number of duplicates at the end of the script .fix_custom_sprite = false; // if your server has custom animated sprite that overlaps the sprite animation repeatedly on the statues, enable this // Config ends ------------------------------------------------------------------------------------------ // to prevent bug happen if (.gmnokill <= 0) .gmnokill = 100; sleep 1; OnTimer30000: // refresh statues every 30 seconds. Note the `char` table is unrealiable, player still need to perform certain task to save the character -> see 'save_settings' in conf\map-server.conf .@query$ = "SELECT `char`.`char_id`, `char`.`name`, `char`.`guild_id`, `char`.`class`, " + "`char`.`sex`, `char`.`hair`, `char`.`hair_color`, `char`.`clothes_color`, " + "`char`.`body`, `char`.`head_top`, `char`.`head_mid`, `char`.`head_bottom`, `char`.`robe`, " + "SUM(`mvpladder`.`kills`) as `orderKills` " + "FROM `char` RIGHT JOIN `mvpladder` ON `char`.`char_id` = `mvpladder`.`char_id` GROUP BY `char`.`char_id` ORDER BY `orderKills` DESC LIMIT " + .showstatue; .@nb = query_sql(.@query$, .@cid, .@name$, .@guild_id, .@class, .@sex$, .@hair, .@hair_color, .@clothes_color, .@body, .@head_top, .@head_mid, .@head_bottom, .@robe, .@kills); if (.fix_custom_sprite) { for (.@i = 0; .@i < .@nb; ++.@i) { setunitdata .statue[.@i +1], UNPC_HEADTOP, 0; setunitdata .statue[.@i +1], UNPC_HEADMIDDLE, 0; setunitdata .statue[.@i +1], UNPC_HEADBOTTOM, 0; setunitdata .statue[.@i +1], UNPC_ROBE, 0; } } for (.@i = 0; .@i < .@nb; ++.@i) { setunitdata .statue[.@i +1], UNPC_CLASS, .@class[.@i]; setunitdata .statue[.@i +1], UNPC_SEX, (.@sex$[.@i] == "F")? SEX_FEMALE:SEX_MALE; setunitdata .statue[.@i +1], UNPC_HAIRSTYLE, .@hair[.@i]; setunitdata .statue[.@i +1], UNPC_HAIRCOLOR, .@hair_color[.@i]; setunitdata .statue[.@i +1], UNPC_CLOTHCOLOR, .@clothes_color[.@i]; setunitdata .statue[.@i +1], UNPC_BODY2, .@body[.@i]; setunitdata .statue[.@i +1], UNPC_HEADTOP, .@head_top[.@i]; setunitdata .statue[.@i +1], UNPC_HEADMIDDLE, .@head_mid[.@i]; setunitdata .statue[.@i +1], UNPC_HEADBOTTOM, .@head_bottom[.@i]; setunitdata .statue[.@i +1], UNPC_ROBE, .@robe[.@i]; setnpcdisplay "mvp_ladder_statue#"+(.@i +1), .@name$[.@i]; .statue_name$[.@i +1] = .@name$[.@i]; .statue_guild$[.@i +1] = getguildname(.@guild_id[.@i]); .statue_kills[.@i +1] = .@kills[.@i]; } for (.@i = .@nb; .@i < .showstatue; ++.@i) setunitdata .statue[.@i +1], UNPC_CLASS, HIDDEN_WARP_NPC; initnpctimer; end; OnNPCKillEvent: // Logic to detect when a MvP is killed if (getmonsterinfo(killedrid, MOB_MVPEXP) > 0) { .@selectIfKillExistQuery$ = "SELECT char_id, mob_id, kills FROM mvpladder WHERE char_id = '" + getcharid(0) + "' AND mob_id = '" + killedrid + "';"; if (query_sql(.@selectIfKillExistQuery$) > 0) { // Exist a kill of that MVP so +1 to kill count .@updateLadderQuery$ = "UPDATE mvpladder SET kills = kills + 1 WHERE char_id = '" + getcharid(0) + "' AND mob_id = '" + killedrid + "'"; } else { // Create a new kill of specific MVP //.@updateLadderQuery$ = "INSERT INTO mvpladder (char_id, mob_id, kills) VALUES ('" + getcharid(0) + "','" + killedrid + "','1');"; .@updateLadderQuery$ = "INSERT INTO mvpladder (`char_id` , `mob_id` , `kills`) VALUES ('" + getcharid(0) + "','" + killedrid + "','1');"; } query_sql(.@updateLadderQuery$); } end; } //---- MvP Ladder Info NPC prontera,161,207,3 script MVP Manager 10279,{ .@npcname$ = strnpcinfo(0); while (1) { mes "["+ .@npcname$ +"]"; mes "Hello "+ strcharinfo(0) +"..."; mes "If you want to I can show you your MVP stats."; next; switch (select("Monthly Winner Shop","Key Shop","Most MVP killer list","Most MVP killed list","Own Information")) { mes "["+ .@npcname$ +"]"; case 1: mes "[Barter NPC]"; mes "..."; close2; callshop "MVPSHOP"; end; case 2: mes "[Barter NPC]"; mes "..."; close2; callshop "MVPPOINT"; end; case 3: .@queryKillerList$ = "SELECT t1.char_id, SUM(t1.kills) as `orderKills`, t2.name " + "FROM `mvpladder` t1 " + "INNER JOIN `char` t2 " + "ON t1.char_id = t2.char_id " + "GROUP BY t1.char_id " + "ORDER BY `orderKills` DESC " + "LIMIT " + getvariableofnpc(.showtotal, "MVPLadder") + ";"; .@nb = query_sql(.@queryKillerList$, .@charid, .@kills, .@name$); if (!.@nb) { mes "The ladder currently is empty."; next; } for (.@j = 0; .@j < .@nb; .@j += getvariableofnpc(.showpage,"MVPLadder")) { for (.@i = .@j; .@i < (getvariableofnpc(.showpage,"MVPLadder") + .@j) && .@i < .@nb; ++.@i) mes "^996600" + (.@i+1) + ": ^006699" + .@name$[.@i] + " ^00AA00[^FF0000" + .@kills[.@i] + " MvP^00AA00 killed]^000000"; next; } break; case 4: .@queryKilledList$ = "SELECT char_id, mob_id, SUM(kills) as `orderKills` " + "FROM `mvpladder` " + "GROUP BY mob_id " + "ORDER BY `orderKills` DESC " + "LIMIT " + getvariableofnpc(.showtotal, "MVPLadder") + ";"; .@nb = query_sql(.@queryKilledList$, .@charid, .@mobid, .@kills); if (!.@nb) { mes "The ladder currently is empty."; next; } for (.@j = 0; .@j < .@nb; .@j += getvariableofnpc(.showpage,"MVPLadder")) { for (.@i = .@j; .@i < (getvariableofnpc(.showpage,"MVPLadder") + .@j) && .@i < .@nb; ++.@i) { mes "^996600" + (.@i+1) + ": ^006699" + strmobinfo(1, .@mobid[.@i]) + " ^FF0000MvP ^00AA00[Killed ^FF0000" + .@kills[.@i] + " ^00AA00times]^000000"; } next; } query_sql("SELECT SUM(kills) FROM mvpladder;", .@killCount); mes "^996600==> ^006699Total MvP Kills [^FF0000" + .@killCount[0] + " ^00AA00kills]^000000"; break; case 5: .@queryOwnLadder$ = "SELECT char_id, mob_id, SUM(kills) as `orderKills` " + "FROM `mvpladder` " + "WHERE char_id = '" + getcharid(0) + "'" + "ORDER BY `orderKills` DESC;"; .@nb = query_sql(.@queryOwnLadder$, .@charid, .@mobid, .@kills); if (!.@nb) { mes "The ladder currently is empty."; next; } .@totalKillCount = 0; for (.@j = 0; .@j < .@nb; .@j += getvariableofnpc(.showpage,"MVPLadder")) { for (.@i = .@j; .@i < (getvariableofnpc(.showpage,"MVPLadder") + .@j) && .@i < .@nb; ++.@i ) { mes "^996600" + (.@i+1) + ": ^006699" + strmobinfo(1, .@mobid[.@i]) + " ^FF0000MvP ^00AA00[Killed ^FF0000" + .@kills[.@i] + " ^00AA00times]^000000"; .@totalKillCount = .@totalKillCount + .@kills[.@i]; } next; } mes "^996600==> ^006699Total Own MvP Kills [^FF0000" + .@totalKillCount + " ^00AA00kills]^000000"; break; } OnInit: setunitdata (getnpcid(0), UNPC_GROUP_ID, 19); setunittitle(getnpcid(0), "Venris NPC"); initnpctimer; end; OnTimer500: showscript("MVP Manager"); setnpctimer 0; end; } close; } //---- MSG board NPCs - script mvp_ladder_statue -1,{ .@id = getelementofarray(getvariableofnpc(.npcgid, "MVPLadder"), getnpcid(0)); mes "^996600[TOP "+ .@id +"]"; mes "^006699Name : "+ getelementofarray(getvariableofnpc(.statue_name$, "MVPLadder"), .@id); .@guildname$ = getelementofarray(getvariableofnpc(.statue_guild$, "MVPLadder"), .@id); mes "^00AAAAGuild : "+((.@guildname$ == "null")? "^AAAAAANone": .@guildname$); mes "^00AA00Total MVP Kills : ["+ getelementofarray(getvariableofnpc(.statue_kills, "MVPLadder"), .@id) +"]"; close; OnInit: .@id = strnpcinfo(2); set getvariableofnpc(.statue[.@id], "MVPLadder"), getnpcid(0); set getvariableofnpc(.npcgid[getnpcid(0)], "MVPLadder"), .@id; end; } prontera,151,219,4 duplicate(mvp_ladder_statue) mvp_ladder_statue#1 1_F_MARIA prontera,149,222,5 duplicate(mvp_ladder_statue) mvp_ladder_statue#2 1_F_MARIA prontera,153,222,2 duplicate(mvp_ladder_statue) mvp_ladder_statue#3 1_F_MARIA prontera,151,220,4 script #top1 111,{ OnInit: initnpctimer; end; OnTimer1000: showscript("Top MVP Killer"); setnpctimer 0; end; } so i created sql table with this, which is provided in the npc script CREATE TABLE `mvpladder` ( `id` int(11) NOT NULL AUTO_INCREMENT, `char_id` int(11) unsigned NOT NULL default '0', `mob_id` INT NOT NULL, `kills` INT DEFAULT 0, PRIMARY KEY (`id`), INDEX (`char_id`), INDEX (`mob_id`), INDEX (`kills`) ) ENGINE=MyISAM AUTO_INCREMENT=1; any clue? please help thank you
  4. so its itemid not headgear accessoryid. use client 2020 above.
  5. Strange, a friend managed to create a custom item with ID 40k
  6. Friend, I want to know what command I put in itemdb.yml, so the weapon can be equipped as a visual.
  7. Today
  8. Exception Type: 0xc0000005 0x00869311 Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x00c2761f Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x008464c6 Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x00bb3849 Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x0062a07f Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x00bb1730 Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x00bb1acb Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x00546a22 Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x00634d2e Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x0081360a Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x0089a47b Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x00c52855 Z:\RO Server\04_kRO\2021-11-17_Ragexe_4thjob.exe 0x75ea7ba9 C:\WINDOWS\System32\KERNEL32.DLL 0x7709be3b C:\WINDOWS\SYSTEM32\ntdll.dll 0x7709bdbf C:\WINDOWS\SYSTEM32\ntdll.dll eax: 0x00000003 ebx: 0x00000000 ecx: 0x94d9273d edx: 0x94d9273d esi: 0x0019f17c edi: 0x94d9273e ebp: 0x0019ffec esp: 0x0019ffe4 stack 0019ffe4 - 001a03e4 0019FFE4 : FF FF FF FF 5E 99 0C 77 00 00 00 00 00 00 00 00 0019FFF4 : 1C 29 C5 00 00 10 39 00 00 00 00 00 41 63 74 78 001A0004 : 20 00 00 00 01 00 00 00 FC 32 00 00 DC 00 00 00 001A0014 : 00 00 00 00 20 00 00 00 00 00 00 00 14 00 00 00 001A0024 : 01 00 00 00 07 00 00 00 34 00 00 00 7C 01 00 00 001A0034 : 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 001A0044 : 00 00 00 00 00 00 00 00 02 00 00 00 4E EF 26 1A 001A0054 : 98 02 00 00 44 00 00 00 E0 02 00 00 54 02 00 00 001A0064 : 00 00 00 00 BA 71 32 F3 34 05 00 00 4A 00 00 00 001A0074 : 80 05 00 00 36 03 00 00 00 00 00 00 5B 49 59 2D 001A0084 : B8 08 00 00 32 00 00 00 EC 08 00 00 00 03 00 00 001A0094 : 00 00 00 00 CD EA CE 32 EC 0B 00 00 42 00 00 00 001A00A4 : 30 0C 00 00 36 03 00 00 00 00 00 00 C8 5F 50 38 001A00B4 : 68 0F 00 00 5E 00 00 00 C8 0F 00 00 56 03 00 00 001A00C4 : 00 00 00 00 44 05 28 B1 20 13 00 00 56 00 00 00 001A00D4 : 78 13 00 00 86 03 00 00 10 00 00 00 09 00 00 00 Launch Info 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 Job : Novice renderer.cpp 835
  9. didnt understand. the geneerator auto generate the lua files. which auto create the required lines. if u asking about the sprite and texture, there are some examples you can download in downloaads section sprite.
  10. btw 30k is quite a big number, officially didnt even reached 5k. didnt try lower ? What does it shows ?
  11. Всем привет! Надеюсь на интересное и плодотворное общение! Что, на ваш взгляд, является ключом к счастливой жизни? Уважаемые участники форума, спасибо за ваше активное участие и ценные мысли! До новых встреч! Ваш партнер для диалога, контакты в профиле.
  12. Thank you both. I was having the same problem and didn't know how to solve it until I read this article. cookie clicker 2 unblocked
  13. i see, so as you mentioned that its messy... what are the methods in the source that i should check to do such? there are some skill mods that i wanted to implement and i think its more organize if i put every mods in a script outside the source.
  14. I already tested the script you sent me. For example, here my novice has 9 skill points and the 2 skills that the NPC gives me from the Platinum Skill. However, when I reset, I should get back 9 points, but it gives me back 11. I need it not to reset my platinum skills or to only return the skill points that are not platinum
  15. I changed the ID on the client to accept larger numbers. It still didn't work, it doesn't accept anything above 30000. Is there any configuration in luafiles or in the system?
  16. I want to know what custom to add for a custom weapon to become a visual weapon. I didn't see this option on your generator
  17. Need help, Warm Wind buff is getting removed every time you switched weapons. Any one knows how to make it stay even if you switch weapons? I am using 2019 client.
  18. most probably because of accessoryid, accname are not exist. Try my generator here : about ID that u said, what ID ? if headgear ID, you can increase when creating the client using nemo/warp.
  19. what do you mean by custom weapon as visual ? the location is costume head top. seems difference with what you want to achieve. I have custom weapon generator release here :
  20. Yesterday
  21. How to add the custom weapon as a visual? Exemple? - Id: 24500 AegisName: arma_1 Name: Arma 1 Type: Armor Locations: Costume_Head_Top: true ArmorLevel: 1 EquipLevelMin: 1 View: 24500
  22. I notice that my hexed is not accepting the id 30000 above. How to increase?
  23. I added some visual items to the server for testing, there was no error but when equipping it does not show on the character as shown in the attached image. Would anyone know how to resolve it?
  24. https://github.com/rathena/rathena/blob/master/npc/custom/resetnpc.txt this one ?
  25. If you want it to reload on `@reloadstatusdb` or any other reload command of your choosing, you can just add the line `battleground_db.reload();` to the desired spot in the reload function: https://github.com/rathena/rathena/blob/master/src/map/atcommand.cpp#L4201 For status db you'd add it after line 4281.
  26. It's possible, but usually messy. You would need to get a reference to the NPC calling the script down to the C layer, and that can be messy, especially if instances are involved. What functionality do you want? It's likely that a source mod is more straightforward. You can add a statement somewhere in skill.cpp's `skill_additional_effect` function if you want something to happen after Bash hits a target, or you can add it under the SM_BASH case label in skill.cpp's `skill_castend_damage_id` if you want to happen as soon as Bash is used.
  1. Load more activity
×
×
  • Create New...