Leaderboard
Popular Content
Showing content with the highest reputation on 08/02/13 in all areas
-
ROChargenPHP Features Core Support for .spr, .act, .pal, .grf, ... .act file completed support (transparency, scale, color, rotate, ...) Characters fully implemented ( body, head, hats, weapon, shield, robe, mount) with palettes support. Can modify action, animation and direction. Class to generate : Full Character / Character Head only / Monster-NPC-Homunculus / Avatar / Signature. Cache system available (and can be set off) with configurable time to cache. Emblem Loader available. Client Data.ini file support (to list your GRFs) Support GRF (0x200 version only without DES encryption - repack before uploading) - the data folder is always read first. Auto-Extract files from GRF if needed (optimize performance) Updater script available to convert some lua files to PHP. How to use Really url-friendly: myserver.com/chargen/<controller>/<data> // with url-rewriting myserver.com/chargen/index.php/<controller>/<data> // without url-rewriting Example for my character called "KeyWorld": myserver.com/chargen/avatar/KeyWorld // avatar myserver.com/chargen/signature/KeyWorld // signature myserver.com/chargen/character/KeyWorld // full Character myserver.com/chargen/characterhead/KeyWorld // Character's head You can change the default link by modify the array $routes in the index.php file: // $routes['url'] = controller $routes['/avatar/(.*)'] = 'Avatar'; $routes['/character/(.*)'] = 'Character'; $routes['/characterhead/(.*)'] = 'CharacterHead'; $routes['/monster/(\d+)'] = 'Monster'; $routes['/signature/(.*)'] = 'Signature'; Custom display At least, the tool is really easy to use, here an example on how to display a static character: $chargen = new CharacterRender(); $chargen->action = CharacterRender::ACTION_READYFIGHT; $chargen->direction = CharacterRender::DIRECTION_SOUTHEAST; $chargen->body_animation = 0; $chargen->doridori = 0; // Custom data: $chargen->sex = "M"; $chargen->class = 4002; $chargen->clothes_color = 0; $chargen->hair = 5; $chargen->hair_color = 12; // ... head_top, head_mid, head_bottom, robe, weapon, shield, ... // Generate Image $img = $chargen->render(); imagepng($img); Examples / Demos Sources Get the source (Thanks to report all bugs) License Instead of selling it, I give a try to "Open Source project with Donation". So if you think, you would have buy it if i was selling it, think to give a donation ? Notes A directory "client" is in the project, it will be a good idea to move it to a directory not accessible by the user (for example /home/client/). If you use generate images from GRFs you have to know it's a little slower, i recommend you in this case to allow the "AutoExtract" option to gain performance. GRFs have to be save as 0x200 version without any encryption (even the official DES), good idea is to remove unused folders ( textures, wav, models).. If you use the options Cache and AutoExtract, don't forget the script need to have a write access to the client and cache folder. Thanks to Khazou for the acces to his server to fully testing the tool2 points
-
2 points
-
< Stolao's Script Collection> Please Comment, Good or Bad i want to know your guys thoughts on what i should do next. Update History At Afk At Commands Auto Event Custom Functions Daily Login Reward Ex Job Master Floating Rates Fly-Wings Group Buffs Mvp Speed Run Non-Abuse Healer Poring Power Pvp Ladder Mining -Unsupported, Bug Fixes Only- Weapon Mastery -Unsupported, Bug Fixes Only- Coming soon to a server near you1 point
-
2012-04-10aRagexe_v3 dff included. Allow Chat Flood Always Call SelectKoreaClientInfo() Chat @-Bug Disable 1rag1 & 1sak1 Disable 4 Letter User Character Limit Disable 4 Letter User ID Limit Disable 4 Letter User Password Limit Disable HShield Disable Nagle Algorithm Disable Ragexe Filename Check Enable 64K hairstyles Enable ASCII in Text Enable Aura Over Level 99 And Level 150 Enable DNS Support Enable Multiple GRFs Enforce Official Login Background Extended Chat Box Extended Chat Room Box Extended PM Box Force Send Client Hash Packet Increase Headgear View ID Load LUA Before LUB Only First Login Background Read Data Folder First Read msgstringtable.txt Read questid2display.txt Remove Gravity Logo Remove Hourly Game Grade Banner Remove Hourly Playtime-Minder Remove Login Auto Close Remove Login Error Code Remove Serial Display Restore Login Window Skip Packet Header Obsfucation Skip License Screen Translate Client Translate Client Into English Use Normal Guild Brackets Use Plain Text Descriptions Use Ragnarok Icon Fixed Taekwon Job Name For Lang Type 0 Note! things need to check to make it work properly. src\common\mmo.h make sure the #ifndef PACKETVER #define PACKETVER 20120410 and for your packet_db db\packet_db.txt just use this. // Client<->Map Packet Database // // Structure of Database: // PacketType,PacketLength[,Name,FieldIndex1:FieldIndex2:FieldIndex3:...] // // 01. PacketType ID of the packet. // 02. PacketLength Length of the packet. If 0, packet is disabled in current packet version. If -1, packet has variable size. // 03. Name Name of the packet parser function (optional, for incoming packets only). // 04. FieldIndex Specifies the offset of a packet field in bytes from the begin of the packet (only specified when Name is given). // Can be 0, when the layout is not known. // ... // // NOTE: Up to MAX_PACKET_POS (typically 20) field indexes may be used. // // The packet database allows you to add support for new clients, // because packets change every release. // // Note: Every packet version needs a wanttoconnection specification, since // that is the packet used to identify a client's version. // If multiple versions have the same connection packet, the higher version // will be used (unless the lower one is specified as the default) // // Incoming packets have their parser function and layout specified, which enables // them for the current and all higher versions, unless explicitely disabled. // // Outgoing packets must be specified in order to enable them for the current // and all higher versions, unless explicitely disabled. Packets that are not // enabled for a packet version are silently discarded when sent as multicast. // // Every packet version inherits packet definitions from the previous (lower) // packet version. // // Main packet version of the DB to use (default = max available version) // Client detection is faster when all clients use this version. // Version 23 is the latest Sakexe (above versions are for Renewal clients) //packet_db_ver: 25 packet_db_ver: 30 packet_ver: 5 0x0064,55 0x0065,17 0x0066,6 0x0067,37 0x0068,46 0x0069,-1 0x006a,23 0x006b,-1 0x006c,3 0x006d,108 0x006e,3 0x006f,2 0x0070,6 0x0071,28 0x0072,19,wanttoconnection,2:6:10:14:18 0x0073,11 0x0074,3 0x0075,-1 0x0076,9 0x0077,5 0x0078,54 0x0079,53 0x007a,58 0x007b,60 0x007c,41 0x007d,2,loadendack,0 0x007e,6,ticksend,2 0x007f,6 0x0080,7 0x0081,3 0x0082,2 0x0083,2 0x0084,2 0x0085,5,walktoxy,2 0x0086,16 0x0087,12 0x0088,10 0x0089,7,actionrequest,2:6 0x008a,29 0x008b,2 0x008c,-1,globalmessage,2:4 0x008d,-1 0x008e,-1 //0x008f,-1 0x0090,7,npcclicked,2 0x0091,22 0x0092,28 0x0093,2 0x0094,6,getcharnamerequest,2 0x0095,30 0x0096,-1,wis,2:4:28 0x0097,-1 0x0098,3 0x0099,-1,broadcast,2:4 0x009a,-1 0x009b,5,changedir,2:4 0x009c,9 0x009d,17 0x009e,17 0x009f,6,takeitem,2 0x00a0,23 0x00a1,6 0x00a2,6,dropitem,2:4 0x00a3,-1 0x00a4,-1 0x00a5,-1 0x00a6,-1 0x00a7,8,useitem,2:4 0x00a8,7 0x00a9,6,equipitem,2:4 0x00aa,7 0x00ab,4,unequipitem,2 0x00ac,7 //0x00ad,-1 0x00ae,-1 0x00af,6 0x00b0,8 0x00b1,8 0x00b2,3,restart,2 0x00b3,3 0x00b4,-1 0x00b5,6 0x00b6,6 0x00b7,-1 0x00b8,7,npcselectmenu,2:6 0x00b9,6,npcnextclicked,2 0x00ba,2 0x00bb,5,statusup,2:4 0x00bc,6 0x00bd,44 0x00be,5 0x00bf,3,emotion,2 0x00c0,7 0x00c1,2,howmanyconnections,0 0x00c2,6 0x00c3,8 0x00c4,6 0x00c5,7,npcbuysellselected,2:6 0x00c6,-1 0x00c7,-1 0x00c8,-1,npcbuylistsend,2:4 0x00c9,-1,npcselllistsend,2:4 0x00ca,3 0x00cb,3 0x00cc,6,gmkick,2 0x00cd,3 0x00ce,2,killall,0 0x00cf,27,wisexin,2:26 0x00d0,3,wisall,2 0x00d1,4 0x00d2,4 0x00d3,2,wisexlist,0 0x00d4,-1 0x00d5,-1,createchatroom,2:4:6:7:15 0x00d6,3 0x00d7,-1 0x00d8,6 0x00d9,14,chataddmember,2:6 0x00da,3 0x00db,-1 0x00dc,28 0x00dd,29 0x00de,-1,chatroomstatuschange,2:4:6:7:15 0x00df,-1 0x00e0,30,changechatowner,2:6 0x00e1,30 0x00e2,26,kickfromchat,2 0x00e3,2,chatleave,0 0x00e4,6,traderequest,2 0x00e5,26 0x00e6,3,tradeack,2 0x00e7,3 0x00e8,8,tradeadditem,2:4 0x00e9,19 0x00ea,5 0x00eb,2,tradeok,0 0x00ec,3 0x00ed,2,tradecancel,0 0x00ee,2 0x00ef,2,tradecommit,0 0x00f0,3 0x00f1,2 0x00f2,6 0x00f3,8,movetokafra,2:4 0x00f4,21 0x00f5,8,movefromkafra,2:4 0x00f6,8 0x00f7,2,closekafra,0 0x00f8,2 0x00f9,26,createparty,2 0x00fa,3 0x00fb,-1 0x00fc,6,partyinvite,2 0x00fd,27 0x00fe,30 0x00ff,10,replypartyinvite,2:6 0x0100,2,leaveparty,0 0x0101,6 0x0102,6,partychangeoption,2 0x0103,30,removepartymember,2:6 0x0104,79 0x0105,31 0x0106,10 0x0107,10 0x0108,-1,partymessage,2:4 0x0109,-1 0x010a,4 0x010b,6 0x010c,6 0x010d,2 0x010e,11 0x010f,-1 0x0110,10 0x0111,39 0x0112,4,skillup,2 0x0113,10,useskilltoid,2:4:6 0x0114,31 0x0115,35 0x0116,10,useskilltopos,2:4:6:8 0x0117,18 0x0118,2,stopattack,0 0x0119,13 0x011a,15 0x011b,20,useskillmap,2:4 0x011c,68 0x011d,2,requestmemo,0 0x011e,3 0x011f,16 0x0120,6 0x0121,14 0x0122,-1 0x0123,-1 0x0124,21 0x0125,8 0x0126,8,putitemtocart,2:4 0x0127,8,getitemfromcart,2:4 0x0128,8,movefromkafratocart,2:4 0x0129,8,movetokafrafromcart,2:4 0x012a,2,removeoption,0 0x012b,2 0x012c,3 0x012d,4 0x012e,2,closevending,0 0x012f,-1 0x0130,6,vendinglistreq,2 0x0131,86 0x0132,6 0x0133,-1 0x0134,-1,purchasereq,2:4:8 0x0135,7 0x0136,-1 0x0137,6 0x0138,3 0x0139,16 0x013a,4 0x013b,4 0x013c,4 0x013d,6 0x013e,24 0x013f,26,itemmonster,2 0x0140,22,mapmove,2:18:20 0x0141,14 0x0142,6 0x0143,10,npcamountinput,2:6 0x0144,23 0x0145,19 0x0146,6,npccloseclicked,2 0x0147,39 0x0148,8 0x0149,9,gmreqnochat,2:6:7 0x014a,6 0x014b,27 0x014c,-1 0x014d,2,guildcheckmaster,0 0x014e,6 0x014f,6,guildrequestinfo,2 0x0150,110 0x0151,6,guildrequestemblem,2 0x0152,-1 0x0153,-1,guildchangeemblem,2:4 0x0154,-1 0x0155,-1,guildchangememberposition,2 0x0156,-1 0x0157,6 0x0158,-1 0x0159,54,guildleave,2:6:10:14 0x015a,66 0x015b,54,guildexpulsion,2:6:10:14 0x015c,90 0x015d,42,guildbreak,2 0x015e,6 0x015f,42 0x0160,-1 0x0161,-1,guildchangepositioninfo,2 0x0162,-1 0x0163,-1 0x0164,-1 0x0165,30,createguild,6 0x0166,-1 0x0167,3 0x0168,14,guildinvite,2 0x0169,3 0x016a,30 0x016b,10,guildreplyinvite,2:6 0x016c,43 0x016d,14 0x016e,186,guildchangenotice,2:6:66 0x016f,182 0x0170,14,guildrequestalliance,2 0x0171,30 0x0172,10,guildreplyalliance,2:6 0x0173,3 0x0174,-1 0x0175,6 0x0176,106 0x0177,-1 0x0178,4,itemidentify,2 0x0179,5 0x017a,4,usecard,2 0x017b,-1 0x017c,6,insertcard,2:4 0x017d,7 0x017e,-1,guildmessage,2:4 0x017f,-1 0x0180,6,guildopposition,2 0x0181,3 0x0182,106 0x0183,10,guilddelalliance,2:6 0x0184,10 0x0185,34 //0x0186,-1 0x0187,6 0x0188,8 0x0189,4 0x018a,4,quitgame,0 0x018b,4 0x018c,29 0x018d,-1 0x018e,10,producemix,2:4:6:8 0x018f,6 0x0190,90,useskilltoposinfo,2:4:6:8:10 0x0191,86 0x0192,24 0x0193,6,solvecharname,2 0x0194,30 0x0195,102 0x0196,9 0x0197,4,resetchar,2 0x0198,8,changemaptype,2:4:6 0x0199,4 0x019a,14 0x019b,10 0x019c,-1,localbroadcast,2:4 0x019d,6,gmhide,0 0x019e,2 0x019f,6,catchpet,2 0x01a0,3 0x01a1,3,petmenu,2 0x01a2,35 0x01a3,5 0x01a4,11 0x01a5,26,changepetname,2 0x01a6,-1 0x01a7,4,selectegg,2 0x01a8,4 0x01a9,6,sendemotion,2 0x01aa,10 0x01ab,12 0x01ac,6 0x01ad,-1 0x01ae,4,selectarrow,2 0x01af,4,changecart,2 0x01b0,11 0x01b1,7 0x01b2,-1,openvending,2:4:84:85 0x01b3,67 0x01b4,12 0x01b5,18 0x01b6,114 0x01b7,6 0x01b8,3 0x01b9,6 0x01ba,26,remove,2 0x01bb,26,shift,2 0x01bc,26,recall,2 0x01bd,26,summon,2 0x01be,2 0x01bf,3 0x01c0,2 0x01c1,14 0x01c2,10 0x01c3,-1 0x01c4,22 0x01c5,22 0x01c6,4 0x01c7,2 0x01c8,13 0x01c9,97 //0x01ca,-1 0x01cb,9 0x01cc,9 0x01cd,30 0x01ce,6,autospell,2 0x01cf,28 0x01d0,8 0x01d1,14 0x01d2,10 0x01d3,35 0x01d4,6 0x01d5,-1,npcstringinput,2:4:8 0x01d6,4 0x01d7,11 0x01d8,54 0x01d9,53 0x01da,60 0x01db,2 0x01dc,-1 0x01dd,47 0x01de,33 0x01df,6,gmreqaccname,2 0x01e0,30 0x01e1,8 0x01e2,34 0x01e3,14 0x01e4,2 0x01e5,6 0x01e6,26 0x01e7,2,sndoridori,0 0x01e8,28,createparty2,2 0x01e9,81 0x01ea,6 0x01eb,10 0x01ec,26 0x01ed,2,snexplosionspirits,0 0x01ee,-1 0x01ef,-1 0x01f0,-1 0x01f1,-1 0x01f2,20 0x01f3,10 0x01f4,32 0x01f5,9 0x01f6,34 0x01f7,14,adoptreply,0 0x01f8,2 0x01f9,6,adoptrequest,0 0x01fa,48 0x01fb,56 0x01fc,-1 0x01fd,4,repairitem,2 0x01fe,5 0x01ff,10 0x0200,26 0x0201,-1 0x0202,26,friendslistadd,2 0x0203,10,friendslistremove,2:6 0x0204,18 0x0205,26 0x0206,11 0x0207,34 0x0208,11,friendslistreply,2:6:10 0x0209,36 0x020a,10 //0x020b,-1 //0x020c,-1 0x020d,-1 //2004-07-05aSakexe packet_ver: 6 0x0072,22,wanttoconnection,5:9:13:17:21 0x0085,8,walktoxy,5 0x00a7,13,useitem,5:9 0x0113,15,useskilltoid,4:9:11 0x0116,15,useskilltopos,4:9:11:13 0x0190,95,useskilltoposinfo,4:9:11:13:15 0x0208,14,friendslistreply,2:6:10 0x020e,24 //2004-07-13aSakexe packet_ver: 7 0x0072,39,wanttoconnection,12:22:30:34:38 0x0085,9,walktoxy,6 0x009b,13,changedir,5:12 0x009f,10,takeitem,6 0x00a7,17,useitem,6:13 0x0113,19,useskilltoid,7:9:15 0x0116,19,useskilltopos,7:9:15:17 0x0190,99,useskilltoposinfo,7:9:15:17:19 //2004-07-26aSakexe packet_ver: 8 0x0072,14,dropitem,5:12 0x007e,33,wanttoconnection,12:18:24:28:32 0x0085,20,useskilltoid,7:12:16 0x0089,15,getcharnamerequest,11 0x008c,23,useskilltopos,3:6:17:21 0x0094,10,takeitem,6 0x009b,6,walktoxy,3 0x009f,13,changedir,5:12 0x00a2,103,useskilltoposinfo,3:6:17:21:23 0x00a7,12,solvecharname,8 0x00f3,-1,globalmessage,2:4 0x00f5,17,useitem,6:12 0x00f7,10,ticksend,6 0x0113,16,movetokafra,5:12 0x0116,2,closekafra,0 0x0190,26,movefromkafra,10:22 0x0193,9,actionrequest,3:8 //2004-08-09aSakexe packet_ver: 9 0x0072,17,dropitem,8:15 0x007e,37,wanttoconnection,9:21:28:32:36 0x0085,26,useskilltoid,11:18:22 0x0089,12,getcharnamerequest,8 0x008c,40,useskilltopos,5:15:29:38 0x0094,13,takeitem,9 0x009b,15,walktoxy,12 0x009f,12,changedir,7:11 0x00a2,120,useskilltoposinfo,5:15:29:38:40 0x00a7,11,solvecharname,7 0x00f5,24,useitem,9:20 0x00f7,13,ticksend,9 0x0113,23,movetokafra,5:19 0x0190,26,movefromkafra,11:22 0x0193,18,actionrequest,7:17 //2004-08-16aSakexe 0x0212,26,rc,2 0x0213,26,check,2 0x0214,42 //2004-08-17aSakexe 0x020f,10,pvpinfo,2:6 0x0210,22 //2004-09-06aSakexe packet_ver: 10 0x0072,20,useitem,9:20 0x007e,19,movetokafra,3:15 0x0085,23,actionrequest,9:22 0x0089,9,walktoxy,6 0x008c,105,useskilltoposinfo,10:14:18:23:25 0x0094,17,dropitem,6:15 0x009b,14,getcharnamerequest,10 0x009f,-1,globalmessage,2:4 0x00a2,14,solvecharname,10 0x00a7,25,useskilltopos,10:14:18:23 0x00f3,10,changedir,4:9 0x00f5,34,wanttoconnection,7:15:25:29:33 0x00f7,2,closekafra,0 0x0113,11,takeitem,7 0x0116,11,ticksend,7 0x0190,22,useskilltoid,9:15:18 0x0193,17,movefromkafra,3:13 //2004-09-20aSakexe packet_ver: 11 0x0072,18,useitem,10:14 0x007e,25,movetokafra,6:21 0x0085,9,actionrequest,3:8 0x0089,14,walktoxy,11 0x008c,109,useskilltoposinfo,16:20:23:27:29 0x0094,19,dropitem,12:17 0x009b,10,getcharnamerequest,6 0x00a2,10,solvecharname,6 0x00a7,29,useskilltopos,6:20:23:27 0x00f3,18,changedir,8:17 0x00f5,32,wanttoconnection,10:17:23:27:31 0x0113,14,takeitem,10 0x0116,14,ticksend,10 0x0190,14,useskilltoid,4:7:10 0x0193,12,movefromkafra,4:8 //2004-10-05aSakexe packet_ver: 12 0x0072,17,useitem,6:13 0x007e,16,movetokafra,5:12 0x0089,6,walktoxy,3 0x008c,103,useskilltoposinfo,2:6:17:21:23 0x0094,14,dropitem,5:12 0x009b,15,getcharnamerequest,11 0x00a2,12,solvecharname,8 0x00a7,23,useskilltopos,3:6:17:21 0x00f3,13,changedir,5:12 0x00f5,33,wanttoconnection,12:18:24:28:32 0x0113,10,takeitem,6 0x0116,10,ticksend,6 0x0190,20,useskilltoid,7:12:16 0x0193,26,movefromkafra,10:22 //2004-10-25aSakexe packet_ver: 13 0x0072,13,useitem,5:9 0x007e,13,movetokafra,6:9 0x0085,15,actionrequest,4:14 0x008c,108,useskilltoposinfo,6:9:23:26:28 0x0094,12,dropitem,6:10 0x009b,10,getcharnamerequest,6 0x00a2,16,solvecharname,12 0x00a7,28,useskilltopos,6:9:23:26 0x00f3,15,changedir,6:14 0x00f5,29,wanttoconnection,5:14:20:24:28 0x0113,9,takeitem,5 0x0116,9,ticksend,5 0x0190,26,useskilltoid,4:10:22 0x0193,22,movefromkafra,12:18 //2004-11-01aSakexe 0x0084,-1 0x0215,6 //2004-11-08aSakexe 0x0084,2 0x0216,6 0x0217,2,blacksmith,0 0x0218,2,alchemist,0 0x0219,282 0x021a,282 0x021b,10 0x021c,10 //2004-11-15aSakexe 0x021d,6,lesseffect,2 //2004-11-29aSakexe packet_ver: 14 0x0072,22,useskilltoid,8:12:18 0x007e,30,useskilltopos,4:9:22:28 0x0085,-1,globalmessage,2:4 0x0089,7,ticksend,3 0x008c,13,getcharnamerequest,9 0x0094,14,movetokafra,4:10 0x009b,2,closekafra,0 0x009f,18,actionrequest,6:17 0x00a2,7,takeitem,3 0x00a7,7,walktoxy,4 0x00f3,8,changedir,3:7 0x00f5,29,wanttoconnection,3:10:20:24:28 0x00f7,14,solvecharname,10 0x0113,110,useskilltoposinfo,4:9:22:28:30 0x0116,12,dropitem,4:10 0x0190,15,useitem,3:11 0x0193,21,movefromkafra,4:17 0x0221,-1 0x0222,6,weaponrefine,2 0x0223,8 //2004-12-13aSakexe //skipped: many packets being set to -1 0x0066,3 0x0070,3 0x01ca,3 0x021e,6 0x021f,66 0x0220,10 //2005-01-10bSakexe packet_ver: 15 0x0072,26,useskilltoid,8:16:22 0x007e,114,useskilltoposinfo,10:18:22:32:34 0x0085,23,changedir,12:22 0x0089,9,ticksend,5 0x008c,8,getcharnamerequest,4 0x0094,20,movetokafra,10:16 0x009b,32,wanttoconnection,3:12:23:27:31 0x009f,17,useitem,5:13 0x00a2,11,solvecharname,7 0x00a7,13,walktoxy,10 0x00f3,-1,globalmessage,2:4 0x00f5,9,takeitem,5 0x00f7,21,movefromkafra,11:17 0x0113,34,useskilltopos,10:18:22:32 0x0116,20,dropitem,15:18 0x0190,20,actionrequest,9:19 0x0193,2,closekafra,0 //2005-03-28aSakexe 0x0224,10 0x0225,2,taekwon,0 0x0226,282 //2005-04-04aSakexe 0x0227,18 0x0228,18 //2005-04-11aSakexe 0x0229,15 0x022a,58 0x022b,57 0x022c,64 //2005-04-25aSakexe 0x022d,5,hommenu,2:4 0x0232,9,hommoveto,2:6 0x0233,11,homattack,2:6:10 0x0234,6,hommovetomaster,2 //2005-05-09aSakexe packet_ver: 16 0x0072,25,useskilltoid,6:10:21 0x007e,102,useskilltoposinfo,5:9:12:20:22 0x0085,11,changedir,7:10 0x0089,8,ticksend,4 0x008c,11,getcharnamerequest,7 0x0094,14,movetokafra,7:10 0x009b,26,wanttoconnection,4:9:17:21:25 0x009f,14,useitem,4:10 0x00a2,15,solvecharname,11 0x00a7,8,walktoxy,5 0x00f5,8,takeitem,4 0x00f7,22,movefromkafra,14:18 0x0113,22,useskilltopos,5:9:12:20 0x0116,10,dropitem,5:8 0x0190,19,actionrequest,5:18 //2005-05-23aSakexe 0x022e,69 0x0230,12 //2005-05-30aSakexe 0x022e,71 0x0235,-1 0x0236,10 0x0237,2,rankingpk,0 0x0238,282 //2005-05-31aSakexe 0x0216,2 0x0239,11 //2005-06-08aSakexe 0x0216,6 0x0217,2,blacksmith,0 0x022f,5 0x0231,26,changehomunculusname,0 0x023a,4 0x023b,36,storagepassword,2:4:20 0x023c,6 //2005-06-22aSakexe 0x022e,71 //2005-06-28aSakexe packet_ver: 17 0x0072,34,useskilltoid,6:17:30 0x007e,113,useskilltoposinfo,12:15:18:31:33 0x0085,17,changedir,8:16 0x0089,13,ticksend,9 0x008c,8,getcharnamerequest,4 0x0094,31,movetokafra,16:27 0x009b,32,wanttoconnection,9:15:23:27:31 0x009f,19,useitem,9:15 0x00a2,9,solvecharname,5 0x00a7,11,walktoxy,8 0x00f5,13,takeitem,9 0x00f7,18,movefromkafra,11:14 0x0113,33,useskilltopos,12:15:18:31 0x0116,12,dropitem,3:10 0x0190,24,actionrequest,11:23 0x0216,-1 0x023d,-1 0x023e,4 //2005-07-18aSakexe packet_ver: 18 0x0072,19,useskilltoid,5:11:15 0x007e,110,useskilltoposinfo,9:15:23:28:30 0x0085,11,changedir,6:10 0x0089,7,ticksend,3 0x008c,11,getcharnamerequest,7 0x0094,21,movetokafra,12:17 0x009b,31,wanttoconnection,3:13:22:26:30 0x009f,12,useitem,3:8 0x00a2,18,solvecharname,14 0x00a7,15,walktoxy,12 0x00f5,7,takeitem,3 0x00f7,13,movefromkafra,5:9 0x0113,30,useskilltopos,9:15:23:28 0x0116,12,dropitem,6:10 0x0190,21,actionrequest,5:20 0x0216,6 0x023f,2,mailrefresh,0 0x0240,8 0x0241,6,mailread,2 0x0242,-1 0x0243,6,maildelete,2 0x0244,6,mailgetattach,2 0x0245,7 0x0246,4,mailwinopen,2 0x0247,8,mailsetattach,2:4 0x0248,68 0x0249,3 0x024a,70 0x024b,4,auctioncancelreg,0 0x024c,8,auctionsetitem,0 0x024d,14 0x024e,6,auctioncancel,0 0x024f,10,auctionbid,0 0x0250,3 0x0251,2 0x0252,-1 //2005-07-19bSakexe packet_ver: 19 0x0072,34,useskilltoid,6:17:30 0x007e,113,useskilltoposinfo,12:15:18:31:33 0x0085,17,changedir,8:16 0x0089,13,ticksend,9 0x008c,8,getcharnamerequest,4 0x0094,31,movetokafra,16:27 0x009b,32,wanttoconnection,9:15:23:27:31 0x009f,19,useitem,9:15 0x00a2,9,solvecharname,5 0x00a7,11,walktoxy,8 0x00f5,13,takeitem,9 0x00f7,18,movefromkafra,11:14 0x0113,33,useskilltopos,12:15:18:31 0x0116,12,dropitem,3:10 0x0190,24,actionrequest,11:23 //2005-08-01aSakexe 0x0245,3 0x0251,4 //2005-08-08aSakexe 0x024d,12,auctionregister,0 0x024e,4 //2005-08-17aSakexe 0x0253,3 0x0254,3,feelsaveok,0 //2005-08-29aSakexe 0x0240,-1 0x0248,-1,mailsend,2:4:28:68 0x0255,5 0x0256,-1 0x0257,8 //2005-09-12bSakexe 0x0256,5 0x0258,2 0x0259,3 //2005-10-10aSakexe 0x020e,32 0x025a,-1 0x025b,6,cooking,0 //2005-10-13aSakexe 0x007a,6 0x0251,32 0x025c,4,auctionbuysell,0 //2005-10-17aSakexe 0x007a,58 0x025d,6,auctionclose,0 0x025e,4 //2005-10-24aSakexe 0x025f,6 0x0260,6 //2005-11-07aSakexe 0x024e,6,auctioncancel,0 0x0251,34,auctionsearch,0 //2006-01-09aSakexe 0x0261,11 0x0262,11 0x0263,11 0x0264,20 0x0265,20 0x0266,30 0x0267,4 0x0268,4 0x0269,4 0x026a,4 0x026b,4 0x026c,4 0x026d,4 0x026f,2 0x0270,2 0x0271,38 0x0272,44 //2006-01-26aSakexe 0x0271,40 //2006-03-06aSakexe 0x0273,6 0x0274,8 //2006-03-13aSakexe 0x0273,30,mailreturn,2:6 //2006-03-27aSakexe packet_ver: 20 0x0072,26,useskilltoid,11:18:22 0x007e,120,useskilltoposinfo,5:15:29:38:40 0x0085,12,changedir,7:11 //0x0089,13,ticksend,9 0x008c,12,getcharnamerequest,8 0x0094,23,movetokafra,5:19 0x009b,37,wanttoconnection,9:21:28:32:36 0x009f,24,useitem,9:20 0x00a2,11,solvecharname,7 0x00a7,15,walktoxy,12 0x00f5,13,takeitem,9 0x00f7,26,movefromkafra,11:22 0x0113,40,useskilltopos,5:15:29:38 0x0116,17,dropitem,8:15 0x0190,18,actionrequest,7:17 //2006-10-23aSakexe 0x006d,110 //2006-04-24aSakexe to 2007-01-02aSakexe 0x023e,8 0x0277,84 0x0278,2 0x0279,2 0x027a,-1 0x027b,14 0x027c,60 0x027d,62 0x027e,-1 0x027f,8 0x0280,12 0x0281,4 0x0282,284 0x0283,6 0x0284,14 0x0285,6 0x0286,4 0x0287,-1 0x0288,6 0x0289,8 0x028a,18 0x028b,-1 0x028c,46 0x028d,34 0x028e,4 0x028f,6 0x0290,4 0x0291,4 0x0292,2,autorevive,0 0x0293,70 0x0294,10 0x0295,-1 0x0296,-1 0x0297,-1 0x0298,8 0x0299,6 0x029a,27 0x029c,66 0x029d,-1 0x029e,11 0x029f,3,mermenu,0 0x02a0,-1 0x02a1,-1 0x02a2,8 //2007-01-08aSakexe packet_ver: 21 0x0072,30,useskilltoid,10:14:26 0x007e,120,useskilltoposinfo,10:19:23:38:40 0x0085,14,changedir,10:13 0x0089,11,ticksend,7 0x008c,17,getcharnamerequest,13 0x0094,17,movetokafra,4:13 0x009b,35,wanttoconnection,7:21:26:30:34 0x009f,21,useitem,7:17 0x00a2,10,solvecharname,6 0x00a7,8,walktoxy,5 0x00f5,11,takeitem,7 0x00f7,15,movefromkafra,3:11 0x0113,40,useskilltopos,10:19:23:38 0x0116,19,dropitem,11:17 0x0190,10,actionrequest,4:9 //2007-01-22aSakexe 0x02a3,18 0x02a4,2 //2007-01-29aSakexe 0x029b,72 0x02a3,-1 0x02a4,-1 0x02a5,8 // 2007-02-05aSakexe 0x02aa,4 0x02ab,36 0x02ac,6 //2007-02-12aSakexe packet_ver: 22 0x0072,25,useskilltoid,6:10:21 0x007e,102,useskilltoposinfo,5:9:12:20:22 0x0085,11,changedir,7:10 0x0089,8,ticksend,4 0x008c,11,getcharnamerequest,7 0x0094,14,movetokafra,7:10 0x009b,26,wanttoconnection,4:9:17:21:25 0x009f,14,useitem,4:10 0x00a2,15,solvecharname,11 //0x00a7,8,walktoxy,5 0x00f5,8,takeitem,4 0x00f7,22,movefromkafra,14:18 0x0113,22,useskilltopos,5:9:12:20 0x0116,10,dropitem,5:8 0x0190,19,actionrequest,5:18 //2007-05-07aSakexe 0x01fd,15,repairitem,2 //2007-02-27aSakexe to 2007-10-02aSakexe 0x0288,10,cashshopbuy,2:4:6 0x0289,12 0x02a6,22 0x02a7,22 0x02a8,162 0x02a9,58 0x02ad,8 0x02b0,85 0x02b1,-1 0x02b2,-1 0x02b3,107 0x02b4,6 0x02b5,-1 0x02b6,7,queststate,2:6 0x02b7,7 0x02b8,22 0x02b9,191 0x02ba,11,hotkey,2:4:5:9 0x02bb,8 0x02bc,6 0x02bf,10 0x02c0,2 0x02c1,-1 0x02c2,-1 0x02c4,26,partyinvite2,2 0x02c5,30 0x02c6,30 0x02c7,7,replypartyinvite2,2:6 0x02c8,3 0x02c9,3 0x02ca,3 0x02cb,20 0x02cc,4 0x02cd,26 0x02ce,10 0x02cf,6 0x02d0,-1 0x02d1,-1 0x02d2,-1 0x02d3,4 0x02d4,29 0x02d5,2 0x02d6,6,viewplayerequip,2 0x02d7,-1 0x02d8,10,equiptickbox,6 0x02d9,10 0x02da,3 0x02db,-1,battlechat,2:4 0x02dc,-1 0x02dd,32 0x02de,6 0x02df,36 0x02e0,34 //2007-10-23aSakexe 0x02cb,65 0x02cd,71 //2007-11-06aSakexe 0x0078,55 0x007c,42 0x022c,65 0x029b,80 //2007-11-13aSakexe 0x02e1,33 //2007-11-20aSakexe //0x01df,10 <- ??? 0x02e2,14 0x02e3,25 0x02e4,8 0x02e5,8 0x02e6,6 //2007-11-27aSakexe 0x02e7,-1 //2008-01-02aSakexe 0x01df,6,gmreqaccname,2 0x02e8,-1 0x02e9,-1 0x02ea,-1 0x02eb,13 0x02ec,67 0x02ed,59 0x02ee,60 0x02ef,8 //2008-03-18aSakexe 0x02bf,-1 0x02c0,-1 0x02f0,10 0x02f1,2,progressbar,0 0x02f2,2 //2008-03-25bSakexe 0x02f3,-1 0x02f4,-1 0x02f5,-1 0x02f6,-1 0x02f7,-1 0x02f8,-1 0x02f9,-1 0x02fa,-1 0x02fb,-1 0x02fc,-1 0x02fd,-1 0x02fe,-1 0x02ff,-1 0x0300,-1 //2008-04-01aSakexe 0x0301,-1 0x0302,-1 0x0303,-1 0x0304,-1 0x0305,-1 0x0306,-1 0x0307,-1 0x0308,-1 0x0309,-1 0x030a,-1 0x030b,-1 0x030c,-1 0x030d,-1 0x030e,-1 0x030f,-1 0x0310,-1 0x0311,-1 0x0312,-1 0x0313,-1 0x0314,-1 0x0315,-1 0x0316,-1 0x0317,-1 0x0318,-1 0x0319,-1 0x031a,-1 0x031b,-1 0x031c,-1 0x031d,-1 0x031e,-1 0x031f,-1 0x0320,-1 0x0321,-1 0x0322,-1 0x0323,-1 0x0324,-1 0x0325,-1 0x0326,-1 0x0327,-1 0x0328,-1 0x0329,-1 0x032a,-1 0x032b,-1 0x032c,-1 0x032d,-1 0x032e,-1 0x032f,-1 0x0330,-1 0x0331,-1 0x0332,-1 0x0333,-1 0x0334,-1 0x0335,-1 0x0336,-1 0x0337,-1 0x0338,-1 0x0339,-1 0x033a,-1 0x033b,-1 0x033c,-1 0x033d,-1 0x033e,-1 0x033f,-1 0x0340,-1 0x0341,-1 0x0342,-1 0x0343,-1 0x0344,-1 0x0345,-1 0x0346,-1 0x0347,-1 0x0348,-1 0x0349,-1 0x034a,-1 0x034b,-1 0x034c,-1 0x034d,-1 0x034e,-1 0x034f,-1 0x0350,-1 0x0351,-1 0x0352,-1 0x0353,-1 0x0354,-1 0x0355,-1 0x0356,-1 0x0357,-1 0x0358,-1 0x0359,-1 0x035a,-1 //2008-05-27aSakexe 0x035b,-1 0x035c,2 0x035d,-1 0x035e,2 0x035f,-1 0x0389,-1 //2008-08-20aSakexe 0x040c,-1 0x040d,-1 0x040e,-1 0x040f,-1 0x0410,-1 0x0411,-1 0x0412,-1 0x0413,-1 0x0414,-1 0x0415,-1 0x0416,-1 0x0417,-1 0x0418,-1 0x0419,-1 0x041a,-1 0x041b,-1 0x041c,-1 0x041d,-1 0x041e,-1 0x041f,-1 0x0420,-1 0x0421,-1 0x0422,-1 0x0423,-1 0x0424,-1 0x0425,-1 0x0426,-1 0x0427,-1 0x0428,-1 0x0429,-1 0x042a,-1 0x042b,-1 0x042c,-1 0x042d,-1 0x042e,-1 0x042f,-1 0x0430,-1 0x0431,-1 0x0432,-1 0x0433,-1 0x0434,-1 0x0435,-1 //2008-09-10aSakexe packet_ver: 23 0x0436,19,wanttoconnection,2:6:10:14:18 0x0437,7,actionrequest,2:6 0x0438,10,useskilltoid,2:4:6 0x0439,8,useitem,2:4 //2008-11-13aSakexe 0x043d,8 0x043e,-1 0x043f,8 //2008-11-26aSakexe 0x01a2,37 0x0440,10 0x0441,4 //2008-12-10aSakexe 0x0442,-1 0x0443,8,skillselectmenu,2:6 //2009-01-14aSakexe 0x043f,25 0x0444,-1 0x0445,10 //2009-02-18aSakexe 0x0446,14 //2009-02-25aSakexe 0x0448,-1 //2009-03-30aSakexe 0x0449,4 //2009-04-08aSakexe 0x02a6,-1 0x02a7,-1 0x044a,6 //Renewal Clients //2008-08-27aRagexeRE packet_ver: 24 0x0072,22,useskilltoid,9:15:18 0x007c,44 0x007e,105,useskilltoposinfo,10:14:18:23:25 0x0085,10,changedir,4:9 0x0089,11,ticksend,7 0x008c,14,getcharnamerequest,10 0x0094,19,movetokafra,3:15 0x009b,34,wanttoconnection,7:15:25:29:33 0x009f,20,useitem,7:20 0x00a2,14,solvecharname,10 0x00a7,9,walktoxy,6 0x00f5,11,takeitem,7 0x00f7,17,movefromkafra,3:13 0x0113,25,useskilltopos,10:14:18:23 0x0116,17,dropitem,6:15 0x0190,23,actionrequest,9:22 0x02e2,20 0x02e3,22 0x02e4,11 0x02e5,9 //2008-09-10aRagexeRE packet_ver: 25 0x0436,19,wanttoconnection,2:6:10:14:18 0x0437,7,actionrequest,2:6 0x0438,10,useskilltoid,2:4:6 0x0439,8,useitem,2:4 //2008-11-12aRagexeRE 0x043d,8 //0x043e,-1 0x043f,8 //2008-12-17aRagexeRE 0x01a2,37 //0x0440,10 //0x0441,4 //0x0442,8 //0x0443,8 //2008-12-17bRagexeRE 0x006d,114 //2009-01-21aRagexeRE 0x043f,25 //0x0444,-1 //0x0445,10 //2009-02-18aRagexeRE //0x0446,14 //2009-02-26cRagexeRE //0x0448,-1 //2009-04-01aRagexeRE //0x0449,4 //2009-05-14aRagexeRE //0x044b,2 //2009-05-20aRagexeRE //0x07d0,6 //0x07d1,2 //0x07d2,-1 //0x07d3,4 //0x07d4,4 //0x07d5,4 //0x07d6,4 //0x0447,2 //2009-06-03aRagexeRE 0x07d7,8,partychangeoption,2:6:7 0x07d8,8 0x07d9,254 0x07da,6,partychangeleader,2 //2009-06-10aRagexeRE //0x07db,8 //2009-06-17aRagexeRE 0x07d9,268 //0x07dc,6 //0x07dd,54 //0x07de,30 //0x07df,54 //2009-07-01aRagexeRE //0x0275,37 //0x0276,-1 //2009-07-08aRagexeRE //0x07e0,58 //2009-07-15aRagexeRE 0x07e1,15 //2009-08-05aRagexeRE 0x07e2,8 //2009-08-18aRagexeRE 0x07e3,6 0x07e4,-1,itemlistwindowselected,2:4:8 0x07e6,8 //2009-08-25aRagexeRE //0x07e6,28 0x07e7,5 //2009-09-22aRagexeRE 0x07e5,8 0x07e6,8 0x07e7,32 0x07e8,-1 0x07e9,5 //2009-09-29aRagexeRE //0x07ea,2 //0x07eb,-1 //0x07ec,6 //0x07ed,8 //0x07ee,6 //0x07ef,8 //0x07f0,4 //0x07f2,4 //0x07f3,3 //2009-10-06aRagexeRE //0x07ec,8 //0x07ed,10 //0x07f0,8 //0x07f1,15 //0x07f2,6 //0x07f3,4 //0x07f4,3 //2009-10-27aRagexeRE 0x07f5,6,gmreqaccname,2 0x07f6,14 //2009-11-03aRagexeRE 0x07f7,-1 0x07f8,-1 0x07f9,-1 //2009-11-17aRagexeRE 0x07fa,8 //2009-11-24aRagexeRE 0x07fb,25 //2009-12-01aRagexeRE //0x07fc,10 //0x07fd,-1 0x07fe,26 //0x07ff,-1 //2009-12-15aRagexeRE 0x0800,-1 //0x0801,-1 //2009-12-22aRagexeRE 0x0802,18,bookingregreq,2:4:6 // Booking System 0x0803,4 0x0804,8 // Booking System 0x0805,-1 0x0806,4,bookingdelreq,2 // Booking System //0x0807,2 0x0808,4 // Booking System //0x0809,14 //0x080A,50 //0x080B,18 //0x080C,6 //2009-12-29aRagexeRE 0x0804,14,bookingsearchreq,2:4:6:8:12 // Booking System 0x0806,2,bookingdelreq,0 // Booking System 0x0807,4 0x0808,14,bookingupdatereq,2 // Booking System 0x0809,50 0x080A,18 0x080B,6 // Booking System //2010-01-05aRagexeRE 0x0801,-1,purchasereq2,2:4:8:12 //2010-01-26aRagexeRE //0x080C,2 //0x080D,3 0x080E,14 //2010-02-09aRagexeRE //0x07F0,6 //2010-02-23aRagexeRE 0x080F,20 //2010-03-03aRagexeRE 0x0810,3 0x0811,-1,reqopenbuyingstore,2:4:8:9:89 //0x0812,86 //0x0813,6 //0x0814,6 //0x0815,-1 //0x0817,-1 //0x0818,6 //0x0819,4 //2010-03-09aRagexeRE 0x0813,-1 //0x0814,2 //0x0815,6 0x0816,6 0x0818,-1 //0x0819,10 //0x081A,4 //0x081B,4 //0x081C,6 0x081d,22 0x081e,8 //2010-03-23aRagexeRE //0x081F,-1 //2010-04-06aRagexeRE //0x081A,6 //2010-04-13aRagexeRE //0x081A,10 0x0820,11 //0x0821,2 //0x0822,9 //0x0823,-1 //2010-04-14dRagexeRE //0x081B,8 //2010-04-20aRagexeRE 0x0812,8 0x0814,86 0x0815,2,reqclosebuyingstore,0 0x0817,6,reqclickbuyingstore,2 0x0819,-1,reqtradebuyingstore,2:4:8:12 0x081a,4 0x081b,10 0x081c,10 0x0824,6 //2010-06-01aRagexeRE //0x0825,-1 //0x0826,4 0x0835,-1,searchstoreinfo,2:4:5:9:13:14:15 0x0836,-1 0x0837,3 //0x0838,3 //2010-06-08aRagexeRE 0x0838,2,searchstoreinfonextpage,0 0x083A,4 // Search Stalls Feature 0x083B,2,closesearchstoreinfo,0 0x083C,12,searchstoreinfolistitemclick,2:6:10 0x083D,6 //2010-06-15aRagexeRE //0x083E,26 //2010-06-22aRagexeRE //0x083F,22 //2010-06-29aRagexeRE 0x00AA,9 //0x07F1,18 //0x07F2,8 //0x07F3,6 //2010-07-01aRagexeRE 0x083A,5 // Search Stalls Feature //2010-07-13aRagexeRE //0x0827,6 //0x0828,14 //0x0829,6 //0x082A,10 //0x082B,6 //0x082C,14 //0x0840,-1 //0x0841,19 //2010-07-14aRagexeRE //0x841,4 //2010-08-03aRagexeRE 0x0839,66 0x0842,6,recall2,2 0x0843,6,remove2,2 //2010-11-24aRagexeRE packet_ver: 26 0x0288,-1,cashshopbuy,4:8 0x0436,19,wanttoconnection,2:6:10:14:18 0x035f,5,walktoxy,2 0x0360,6,ticksend,2 0x0361,5,changedir,2:4 0x0362,6,takeitem,2 0x0363,6,dropitem,2:4 0x0364,8,movetokafra,2:4 0x0365,8,movefromkafra,2:4 0x0366,10,useskilltopos,2:4:6:8 0x0367,90,useskilltoposinfo,2:4:6:8:10 0x0368,6,getcharnamerequest,2 0x0369,6,solvecharname,2 0x0856,-1 0x0857,-1 0x0858,-1 0x0859,-1 0x08d0,9 //2011-10-05aRagexeRE packet_ver: 27 0x0364,5,walktoxy,2 0x0817,6,ticksend,2 0x0366,5,changedir,2:4 0x0815,6,takeitem,2 0x0885,6,dropitem,2:4 0x0893,8,movetokafra,2:4 0x0897,8,movefromkafra,2:4 0x0369,10,useskilltopos,2:4:6:8 0x08ad,90,useskilltoposinfo,2:4:6:8:10 0x088a,6,getcharnamerequest,2 0x0838,6,solvecharname,2 0x0439,8,useitem,2:4 0x08d2,10 0x08d1,7 // 2011-11-02aRagexe packet_ver: 28 0x0436,26,friendslistadd,2 0x0898,5,hommenu,4 0x0281,36,storagepassword,0 0x088d,26,partyinvite2,2 0x083c,19,wanttoconnection,2:6:10:14:18 0x08aa,7,actionrequest,2:6 0x02c4,10,useskilltoid,2:4:6 0x0811,-1,itemlistwindowselected,2:4:8 0x890,8 0x08a5,18,bookingregreq,2:4:6 0x0835,-1,reqopenbuyingstore,2:4:8:9:89 0x089b,2,reqclosebuyingstore,0 0x08a1,6,reqclickbuyingstore,2 0x089e,-1,reqtradebuyingstore,2:4:8:12 0x08ab,-1,searchstoreinfo,2:4:5:9:13:14:15 0x088b,2,searchstoreinfonextpage,0 0x08a2,12,searchstoreinfolistitemclick,2:6:10 //2012-03-07fRagexeRE packet_ver:29 0x086A,19,wanttoconnection,2:6:10:14:18 0x0437,5,walktoxy,2 0x0887,6,ticksend,2 0x0890,5,changedir,2:4 0x0865,6,takeitem,2 0x02C4,6,dropitem,2:4 0x093B,8,movetokafra,2:4 0x0963,8,movefromkafra,2:4 0x0438,10,useskilltopos,2:4:6:8 0x0366,90,useskilltoposinfo,2:4:6:8:10 0x096A,6,getcharnamerequest,2 0x0368,6,solvecharname,2 0x0369,26,friendslistadd,2 0x0863,5,hommenu,4 0x0861,36,storagepassword,0 0x0929,26,partyinvite2,2 0x0885,7,actionrequest,2:6 0x0889,10,useskilltoid,2:4:6 0x0870,-1,itemlistwindowselected,2:4:8 0x0926,18,bookingregreq,2:4:6 0x0815,-1,reqopenbuyingstore,2:4:8:9:89 0x0817,2,reqclosebuyingstore,0 0x0360,6,reqclickbuyingstore,2 0x0811,-1,reqtradebuyingstore,2:4:8:12 0x0884,-1,searchstoreinfo,2:4:5:9:13:14:15 0x0835,2,searchstoreinfonextpage,0 0x0838,12,searchstoreinfolistitemclick,2:6:10 0x0439,8,useitem,2:4 //2012-04-10aRagexeRE packet_ver: 30 0x01FD,15,repairitem,2 0x089C,26,friendslistadd,2 0x0885,5,hommenu,2:4 0x0961,36,storagepassword,0 0x0288,-1,cashshopbuy,4:8 0x091C,26,partyinvite2,2 0x094B,19,wanttoconnection,2:6:10:14:18 0x0369,7,actionrequest,2:6 0x083C,10,useskilltoid,2:4:6 0x0439,8,useitem,2:4 0x0945,-1,itemlistwindowselected,2:4:8 0x0815,-1,reqopenbuyingstore,2:4:8:9:89 0x0817,2,reqclosebuyingstore,0 0x0360,6,reqclickbuyingstore,2 0x0811,-1,reqtradebuyingstore,2:4:8:12 0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15 0x0835,2,searchstoreinfonextpage,0 0x0838,12,searchstoreinfolistitemclick,2:6:10 0x0437,5,walktoxy,2 0x0886,6,ticksend,2 0x0871,5,changedir,2:4 0x0938,6,takeitem,2 0x0891,6,dropitem,2:4 0x086C,8,movetokafra,2:4 0x08A6,8,movefromkafra,2:4 0x0438,10,useskilltopos,2:4:6:8 0x091D,18,bookingregreq,2:4:6 0x0366,90,useskilltoposinfo,2:4:6:8:10 0x0889,6,getcharnamerequest,2 0x0884,6,solvecharname,2 0x08E5,41,bookingregreq,2:4 //Added to prevent disconnections 0x08E6,4 0x08E7,10,bookingsearchreq,2 0x08E8,-1 0x08E9,2,bookingdelreq,2 0x08EA,4 0x08EB,39,bookingupdatereq,2 0x08EC,73 0x08ED,43 0x08EE,6 0x08EF,6,bookingignorereq,2 0x08F0,6 0x08F1,6,bookingjoinpartyreq,2 0x08F2,36 0x08F3,-1 0x08F4,6 0x08F5,-1,bookingsummonmember,2:4 0x08F6,22 0x08F7,3 0x08F8,7 0x08F9,6 0x08FA,6 0x08FB,6,bookingcanceljoinparty,2 0x0907,5,moveitem,2:4 0x0908,5 0x08D7,28,battlegroundreg,2:4 //Added to prevent disconnections 0x08CF,10 //Amulet spirits 0x0977,14 //Monster HP Bar 0x0916,26,guildinvite2,2 0x0844,2,cashshopopen,0 0x084a,2,cashshopclose,0 0x08c9,4,cashshopitemlist,0 0x0848,-1,cashshopbuy,2:4:6:10 //2012-04-18aRagexeRE [Special Thanks to Judas!] packet_ver:31 0x023B,26,friendslistadd,2 0x0361,5,hommenu,2:4 0x08A8,36,storagepassword,0 0x0802,26,partyinvite2,2 0x022D,19,wanttoconnection,2:6:10:14:18 0x0281,-1,itemlistwindowselected,2:4:8 0x035F,6,ticksend,2 0x0202,5,changedir,2:4 0x07E4,6,takeitem,2 0x0362,6,dropitem,2:4 0x07EC,8,movetokafra,2:4 0x0364,8,movefromkafra,2:4 0x096A,6,getcharnamerequest,2 0x0368,6,solvecharname,2 0x08E5,41,bookingregreq,2:4 //Added to prevent disconnections 0x08d2,10 //2012-06-18 packet_ver: 32 0x0983,29 //2012-07-02aRagexeRE (unstable) packet_ver: 33 0x0363,19,wanttoconnection,2:6:10:14:18 0x0364,6,ticksend,2 0x085a,7,actionrequest,2:6 0x0861,8,movefromkafra,2:4 0x0862,10,useskilltoid,2:4:6 0x0863,10,useskilltopos,2:4:6:8 0x0886,6,solvecharname,2 0x0889,90,useskilltoposinfo,2:4:6:8:10 0x089e,6,dropitem,2:4 0x089f,6,takeitem,2 0x08a0,8,movetokafra,2:4 0x094a,6,getcharnamerequest,2 0x0953,5,walktoxy,2 0x0960,5,changedir,2:4 //2013-03-20Ragexe (Judas) packet_ver: 34 0x014f,6,guildrequestinfo,2 0x01fd,15,repairitem,2 //0x0281,-1,itemlistwindowselected,2:4:8 0x035f,6,reqclickbuyingstore,2 0x0363,6,ticksend,2 0x0365,12,searchstoreinfolistitemclick,2:6:10 0x0438,6,dropitem,2:4 0x0447,2,booking_playcancel,0 0x044A,6,clientversion,2 0x0844,2,cashshopopen,0 0x0848,-1,cashshopbuy,0 0x084a,2,cashshopclose,0 0x084b,19 //fallitem4 0x085a,90,useskilltoposinfo,2:4:6:8:10 0x085d,18,bookingregreq,2:4 0x0868,-1,itemlistwindowselected,2:4:8 0x086d,26,partyinvite2,2 0x086f,26,friendslistadd,2 0x0874,8,movefromkafra,2:4 0x0881,5,walktoxy,2 0x0886,2,reqclosebuyingstore,0 0x0888,19,wanttoconnection,2:6:10:14:18 0x088e,7,actionrequest,2:6 0x0897,5,changedir,2:4 0x0898,6,getcharnamerequest,2 0x089b,10,useskilltoid,2:4:6 0x08ac,8,movetokafra,2:4 0x08c9,4,cashshopitemlist,0 0x08cf,10 //Amulet spirits 0x08d2,10 0x0907,5,moveitem,2:4 0x0908,5 0x090f,-1 // notify_newentry7 0x0914,-1 // notify_moveentry 0x0915,-1 // notify_standentry 0x0922,-1,reqtradebuyingstore,2:4:8:12 //0x092e,2,searchstoreinfonextpage,0 0x0933,6,takeitem,2 0x0938,-1,reqopenbuyingstore,2:4:8:9:89 0x093f,5,hommenu,2:4 0x0947,36,storagepassword,0 0x094c,6,solvecharname,2 0x094e,-1,searchstoreinfo,2:4:5:9:13:14:15 0x0959,10,useskilltopos,2:4:6:8 //0x095a,8,mailsetattach,2:4 0x0977,14 //Monster HP Bar 0x0978,6,reqworldinfo,2 0x0979,50 //ackworldinfo 0x0990,31 //additem 0x0991,-1 //inv itemlist normal 0x0992,-1 //inv itemlist equip 0x0993,-1 //cart itemlist normal 0x0994,-1 //cart itemlist equip 0x0995,-1 //store itemlist normal 0x0996,-1 //store itemlist equip 0x0997,-1 //ZC_EQUIPWIN_MICROSCOPE_V5 0x0998,8,equipitem,2:4 0x0999,11 // cz_wear_equipv5 0x099a,9 // take_off_equipv5 0x099b,8 //maptypeproperty2 //2013-05-15a Ragexe (Yommy) packet_ver: 35 0x0369,7,actionrequest,2:6 0x083C,10,useskilltoid,2:4:6 0x0437,5,walktoxy,2 0x035F,6,ticksend,2 0x0362,5,changedir,2:4 0x08A1,6,takeitem,2 0x0944,6,dropitem,2:4 0x0887,8,movetokafra,2:4 0x08AC,8,movefromkafra,2:4 0x0438,10,useskilltopos,2:4:6:8 0x0366,90,useskilltoposinfo,2:4:6:8:10 0x096A,6,getcharnamerequest,2 0x0368,6,solvecharname,2 0x0838,12,searchstoreinfolistitemclick,2:6:10 0x0835,2,searchstoreinfonextpage,0 0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15 0x0811,-1,reqtradebuyingstore,2:4:8:12 0x0360,6,reqclickbuyingstore,2 0x0817,2,reqclosebuyingstore,0 0x0815,-1,reqopenbuyingstore,2:4:8:9:89 0x092D,18,bookingregreq,2:4 //0x08AA,8 CZ_JOIN_BATTLE_FIELD 0x0963,-1,itemlistwindowselected,2:4:8 0x0943,19,wanttoconnection,2:6:10:14:18 0x0947,26,partyinvite2,2 //0x0862,4 CZ_GANGSI_RANK 0x0962,26,friendslistadd,2 0x0931,5,hommenu,2:4 0x093E,36,storagepassword,0 //2013-05-22 Ragexe (Yommy) packet_ver: 36 0x08A2,7,actionrequest,2:6 0x095C,10,useskilltoid,2:4:6 0x0360,5,walktoxy,2 0x07EC,6,ticksend,2 0x0925,5,changedir,2:4 0x095E,6,takeitem,2 0x089C,6,dropitem,2:4 0x08A3,8,movetokafra,2:4 0x087E,8,movefromkafra,2:4 0x0811,10,useskilltopos,2:4:6:8 0x0964,90,useskilltoposinfo,2:4:6:8:10 0x08A6,6,getcharnamerequest,2 0x0369,6,solvecharname,2 0x093E,12,searchstoreinfolistitemclick,2:6:10 0x08AA,2,searchstoreinfonextpage,0 0x095B,-1,searchstoreinfo,2:4:5:9:13:14:15 0x0952,-1,reqtradebuyingstore,2:4:8:12 0x0368,6,reqclickbuyingstore,2 0x086E,2,reqclosebuyingstore,0 0x0874,-1,reqopenbuyingstore,2:4:8:9:89 0x089B,18,bookingregreq,2:4 //0x0965,8 CZ_JOIN_BATTLE_FIELD 0x086A,-1,itemlistwindowselected,2:4:8 0x08A9,19,wanttoconnection,2:6:10:14:18 0x0950,26,partyinvite2,2 //0x08AC,4 CZ_GANGSI_RANK 0x0362,26,friendslistadd,2 0x0926,5,hommenu,2:4 0x088E,36,storagepassword,0 and for "The Purchase has failed because the NPC does not exist." problem. make sure you set the correct version of your client on src\map\clif.c quick fix for r17429 just use this clif.c.patch. since they remove the support for 2012 client. then recompile. Note2! Never let your cash shop list empty, or else you will get warning and get disconnected. to add item for your cash shop. db\item_cash_db2.txt for client side. make sure you set your clientinfo.xml server type to primary. <servertype>primary</servertype> since we are now using Ragexe. this is only for RagexeRE <servertype>sakray</servertype> also fix the booking system. credits to Ai4rei's MStream KoolKat29 for fixing cash shop problem. just click the vote for this post up if it help you a lot. 2012-04-10aRagexe_v3.rar clif.c.patch1 point
-
Hello, i have this @pk mod, the problem is when Pally and a char, are both in pk off state, pally wont be able to devo the char, basically pally->devo->party member (both pk off) = success pally->devo->party member (both pk on) = success pally->devo->party member (not in same pk state) = fail currently happening, pally->devo->party member (both pk on) = success pally->devo->party member (both pk off) = fail pally->devo->party member (not in same pkstate) = fail conf\atcommand_athena.conf pk: 0,80 // pk map\atcommand.c, find --------------------- /*========================================== * atcommand_info[] structure definition *------------------------------------------*/ AtCommandInfo atcommand_info[] = { it becomes ---------- // @pk int atcommand_pk( const int fd, struct map_session_data *sd, const char *command, const char *message ) { unsigned int tick = gettick(); nullpo_retr(-1, sd); if(!map[sd->bl.m].flag.town){ //Only can be used at town clif_displaymessage(sd->fd, "You can only use this command inside towns."); return -1; } if(DIFF_TICK(sd->pk_mode_tick,tick) > 0){ //check the delay before use this command again clif_displaymessage(sd->fd, "You must wait 60 seconds to use this command again."); return -1; } else{ if (!sd->state.pk_mode) { sd->state.pk_mode = 1; clif_displaymessage(sd->fd, "You are can no longer be attacked by players."); sd->pk_mode_tick = tick + 60000; //set the delay here } else { sd->state.pk_mode = 0; clif_displaymessage(sd->fd, "You can now attack players"); sd->pk_mode_tick = tick + 60000; //set the delay here } return 0; } /*========================================== * atcommand_info[] structure definition *------------------------------------------*/ AtCommandInfo atcommand_info[] = { ============================================================================================================================== ============================================================================================================================== map\atcommand.c, find --------------------- { "delitem", 60,60, atcommand_delitem }, { "charcommands", 1,1, atcommand_commands }, { "font", 1,1, atcommand_font }, it becomes ---------- { "delitem", 60,60, atcommand_delitem }, { "charcommands", 1,1, atcommand_commands }, { "font", 1,1, atcommand_font }, { "pkmode", 0,80, atcommand_pkmode }, ============================================================================================================================== ============================================================================================================================== map\battle.c, find (line 3407 svn15191) --------------------------------------- if( sd->state.monster_ignore && flag&BCT_ENEMY ) return 0; // Global inminuty only to Attacks if( sd->status.karma && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->status.karma ) state |= BCT_ENEMY; // Characters with bad karma may fight amongst them it becomes ---------- if( sd->state.monster_ignore && flag&BCT_ENEMY ) return 0; // Global inminuty only to Attacks if( map[m].flag.pvp && sd->state.pk_mode && flag&BCT_ENEMY && s_bl->type != BL_MOB ) return 0; if( sd->status.karma && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->status.karma ) state |= BCT_ENEMY; // Characters with bad karma may fight amongst them still in map\battle.c, near above, find (line 3471 svn15191) ------------------------------------------------------------ else return 0; // You can't target anything out of your duel } } if( map_flag_gvg(m) && !sd->status.guild_id && t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->guardian_data ) it becomes ---------- else return 0; // You can't target anything out of your duel } else if( map[m].flag.pvp && sd->state.pk_mode && t_bl->type != BL_MOB ) //pkmode return 0; //pkmode } if( map_flag_gvg(m) && !sd->status.guild_id && t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->guardian_data ) the last, in map\pc.h, find (line 141 svn15191) ----------------------------------------------- unsigned int warping : 1;//states whether you're in the middle of a warp processing } state; struct { it becomes ---------- unsigned int warping : 1;//states whether you're in the middle of a warp processing unsigned int pk_mode : 1; //[malufett] //pkmode } state; struct { ============================================================================================================================== ============================================================================================================================== map\pc.h, find (line 210 svn15191) ---------------------------------- unsigned int ks_floodprotect_tick; // [Kill Steal Protection] struct { become ------ unsigned int ks_floodprotect_tick; // [Kill Steal Protection] unsigned int pk_mode_tick; //@pkmode struct { map\pc.h, find (line 579 svn15191) ---------------------------------- sd->canlog_tick = gettick(); //Required to prevent homunculus copuing a base speed of 0. become ------ sd->canlog_tick = gettick(); sd->pk_mode_tick = gettick(); //@pk //Required to prevent homunculus copuing a base speed of 0.1 point
-
Eto bro this will help you.. http://rathena.org/board/topic/57792-soul-link-scrolls-with-client-files/ sundan mo lng yan guide yan for soul link scroll.. kng sa items hmmm tnry ko pero mukhang mag kaka bug ka lalo n sa HP kpag gnto nilgay mo ask k nlng sa iba bka may iba silang alam..1 point
-
You can add walls to a particular area of the map. However, if you have random spawn points, the monsters may spawn inside the wall. I do not know if there is a check for monster position. *setwall "<map name>",<x>,<y>,<size>,<dir>,<shootable>,"<name>"; *delwall "<name>"; Creates an invisible wall, an array of "setcell" starting from x,y and doing a line of the given size in the given direction. The difference with setcell is this one update client part too to avoid the glitch problem. Directions are the same as NPC sprite facing directions: 0=north, 1=northwest, 2=west, etc.1 point
-
Ah right, sorry I forgot about the rewards after 100 points. When you want it to delete points the command you would want to use is if (RANDOMPOINTS == 100 ) { // Checks if condition is met ( Value is 100 as you asked for ). getitem 501,1; // Red Potion set RANDOMPOINTS,RANDOMPOINTS - 100; } The complete script would look like this: prontera,160,180,4 script NPCNAME1 999,{ setarray .@reward[0],501,1; // Set this to what you want your prize item to be and the amount. set .@price,100; // Set this to whatever value you wish your players to pay. set .@rand,rand(1,10); // Set this to what point reward you want to range from. 1-10 set .@remove,100; // Set this value to how ever points you want to be removed when condition is met. mes "You have "+RANDOMPOINTS+" points"; mes " "; mes "Would you like to donate "+.@price+"z?"; switch(select("Yes:No" )) { case 1: if(Zeny < .@price){ // Checks if Player has enough Zeny. mes "You do not have enough Zeny..."; close; } mes "You have donated "+.@price+"z."; mes " "; mes "You have gained "+.@rand+" points"; set RANDOMPOINTS,RANDOMPOINTS + .@rand; // Adds Points based on .@rand amount set Zeny,Zeny - .@price; // Removes Zeny if (RANDOMPOINTS >= .@remove ) { // Checks if player has enough points for reward next; mes "You have "+RANDOMPOINTS+" Points!"; mes "Here is a reward for your generosity"; getitem .@reward[0],.@reward[1]; // Reward is given here set RANDOMPOINTS,RANDOMPOINTS - .@remove; // Points are removed here. } close; case 2: mes "Come again another time!"; close; } }1 point
-
I stated for you to try restarting your server since you said you didn't before . I found another mapflag folder inside your NPC folder... npc/mapflag/gvg.txt This is where the gvg_castle mapflag is located for each individual castle. Try to check and see if the map 'pay_gcas02' has the mapflag in that text document. Hopefully this is the problem. Good luck!1 point
-
- script Sample -1,{ OnInit: bindatcmd “cashpoint",strnpcinfo(3)+"::OnAtCommand"; end; OnAtCommand: dispbottom "You have "+#CASHPOINTS+" cashpoints."; end; }1 point
-
did you removed the original mapflags applied on that map ?? like..gvg...castle...etc ?? you can use @mapinfo to check the mapflags..1 point
-
Perhaps this is what you are looking for. RANDOMPOINTS is a PERMANENT CHARACTER VARIABLE. This means that the points will only apply to an individual character. If you want it to be account based, insert # before the variable; #RANDOMPOINTS. You can set the TEMPORARY NPC VARIABLE .@price to whatever value you wish your players to pay. map,x,y,d<TAB>script<TAB>NPCNAME1<TAB>999,{ set .@price,100; // Set this to whatever value you wish your players to pay. set .@reward,rand(1,10); // Set this to what point reward you want to range from. 1-10 mes "You have "+RANDOMPOINTS+" points"; mes " "; mes "Would you like to donate "+.@price+"z?"; if(switch(select("Yes:No") == 1)) { if(Zeny < .@price){ // Checks if Player has enough Zeny. mes "You do not have enough Zeny..."; close; } set .@reward,rand(1,10); mes "You have donated "+.@price+"z."; mes " "; mes "You have gained "+.@reward+" points"; set RANDOMPOINTS,RANDOMPOINTS + .@reward; set Zeny,Zeny - .@price; close; } else { mes "Come again another time!"; close; } } I did not test this yet btw so please tell me if there's any errors. -- EDIT Sadly the if->Switch Statement for me isn't working anymore ( I am getting an error with it... unsure why ) but I modified the script and tested. This will 100% work out. Change .@price to the value you wish your players to pay Change RANDOMPOINTS to another PERMANENT ACCOUNT OR CHARACTER variable. ( It does not have to be RANDOMPOINTS ) Change .@reward if you wish to increase the amount of points you want to give. prontera,160,180,4 script NPCNAME1 999,{ set .@price,100; // Set this to whatever value you wish your players to pay. set .@reward,rand(1,10); // Set this to what point reward you want to range from. 1-10 mes "You have "+RANDOMPOINTS+" points"; mes " "; mes "Would you like to donate "+.@price+"z?"; switch(select("Yes:No" )) { case 1: if(Zeny < .@price){ // Checks if Player has enough Zeny. mes "You do not have enough Zeny..."; close; } mes "You have donated "+.@price+"z."; mes " "; mes "You have gained "+.@reward+" points"; set RANDOMPOINTS,RANDOMPOINTS + .@reward; set Zeny,Zeny - .@price; close; case 2: mes "Come again another time!"; close; } }1 point
-
This is due to the GIT->SVN mirroring process still being somewhat manual and there's still a few kinks that cause it to go out of order when synching timestamps with the GIT side of the house. GIT has no care if commits are in a particular order, each "commit" is considered independent and are applied separately until you get to the current codebase (this is how GIT rebasing is able to work).1 point
-
http://www.4shared.com/file/26316356/78c25bd9/PronteraIzludeEdits.html1 point
-
- script EP7_lightanim -1,{ OnInit: sleep 1000; donpcevent "#ep7effectAby1::OnAction"; } //=============== ars_fild58,95,103,0 script #ep7effectAby1 139,{ OnAction: specialeffect 14; donpcevent "EP7_lightanim::OnInit"; } You were using sleep2 when no character was attached and unless you had some other script starting the effect that wouldn't've worked you have to use a special event like OnInit:. Also if you want to keep the rid I'm pretty sure you have to use doevent not donpcevent. This probably should've been in the script request section.1 point
-
Apu, don't be mean, I remember you were a cool little fella1 point
-
You just put my implementation of this to shame. That 'Who is Online' setup is fantastic.1 point
-
Problem resolved. What happens now is: pally->devo->partymember(both pk on)=success pally->devo->partymember(both pk off)=success pally->devo->partymember(different pk state)=fail I have to do some reworking on battle_check_target in battle.c, as well as some slight modifications in skill_castend_nodamage_id in skill.c Did test runs in my test server and everything works. However, by editing battle_check_target which is used by almost ALL functions, I fear there are bugs that might be present. Please check my code below. =========================================================================== battle.c/battle_check_target(block list *src, block list *target, int flag) line no. 5351-5371 =========================================================================== switch( t_bl->type ) { //Checks on target master case BL_PC: { struct map_session_data *ssd=BL_CAST(BL_PC,s_bl);//custom; added ssd for enabling use of support skills on party members in pvp maps, stores map_session_data for source of attack/skill struct map_session_data *sd; if( t_bl == s_bl ) break; sd = BL_CAST(BL_PC, t_bl); if( sd->state.monster_ignore && flag&BCT_ENEMY ) return 0; // Global inminuty only to Attacks /*custom;added for pk mode, modified implementation of anti-pk protection and allows use of support skills on party members with identical pk status: Original code provided was:[for reference] if( map[m].flag.pvp && sd->state.pk_mode&& flag&BCT_ENEMY && s_bl->type != BL_MOB ) return 0; */ if( map[m].flag.pvp && sd->state.pk_mode==1 && flag&BCT_ENEMY && s_bl->type != BL_MOB ){ if(sd->status.party_id==ssd->status.party_id) state|=BCT_PARTY; else return 0;}//end custom =========================================================================== battle.c/battle_check_target(block list *src, block list *target, int flag) line no. 5418-5449 =========================================================================== switch( s_bl->type ) { //Checks on source master case BL_PC: { struct map_session_data *sd = BL_CAST(BL_PC, s_bl); struct map_session_data *tsd = BL_CAST(BL_PC,t_bl);//custom; added tsd to allow use of support skills on party members in pvp maps, stores the target of attack/skill if( s_bl != t_bl ) { if( sd->state.killer ) { state |= BCT_ENEMY; // Can kill anything strip_enemy = 0; } else if( sd->duel_group && !((!battle_config.duel_allow_pvp && map[m].flag.pvp) || (!battle_config.duel_allow_gvg && map_flag_gvg(m))) ) { if( t_bl->type == BL_PC && (sd->duel_group == ((TBL_PC*)t_bl)->duel_group) ) return (BCT_ENEMY&flag)?1:-1; // Duel targets can ONLY be your enemy, nothing else. else return 0; // You can't target anything out of your duel } /*custom;added for pk mode, modified implementation of anti-pk protection and allows use of support skills on party members with identical pk status: Original code provided was:[for reference] else if( map[m].flag.pvp && sd->state.pk_mode&& flag&BCT_ENEMY && s_bl->type != BL_MOB ) return 0; */ else if( map[m].flag.pvp && sd->state.pk_mode==1 && t_bl->type != BL_MOB){ if(sd->status.party_id==tsd->status.party_id) state|=BCT_PARTY; else return 0; } }//end custom here is the code from the modified skill.c ================================================================================================================= skill.c/skill_castend_nodamage_id(block_list* src, block_list* bl, uint16 skill_id, uint16 skill_lv, unsigned int tick, int flag) line no. 5617- 5686 ================================================================================================================= case ML_DEVOTION: case CR_DEVOTION: { int count, lv; if( !dstsd || (!sd && !mer) ) { // Only players can be devoted if( sd ) clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); break; } if( (lv = status_get_lv(src) - dstsd->status.base_level) < 0 ) lv = -lv; if( lv > battle_config.devotion_level_difference || // Level difference requeriments (dstsd->sc.data[type] && dstsd->sc.data[type]->val1 != src->id) || // Cannot Devote a player devoted from another source (skill_id == ML_DEVOTION && (!mer || mer != dstsd->md)) || // Mercenary only can devote owner (dstsd->class_&MAPID_UPPERMASK) == MAPID_CRUSADER || // Crusader Cannot be devoted (dstsd->sc.data[SC_HELLPOWER])) // Players affected by SC_HELLPOWERR cannot be devoted. { if( sd ) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 1; } i = 0; count = (sd)? min(skill_lv,5) : 1; // Mercenary only can Devote owner if( sd ) { // Player Devoting Player int devo=battle_check_target(src,bl,BCT_PARTY);//custom; added devo for allowing devotion on party members with identical pk states, stores the result of battle_check_target to see if the target with relation to the caster are party members struct map_session_data *devsd=BL_CAST(BL_PC,bl);//custom; added devsd for allowing devotion on party members with identical pk states, stores map_session_data of target ARR_FIND(0, count, i, sd->devotion[i] == bl->id ); if( i == count ) { ARR_FIND(0, count, i, sd->devotion[i] == 0 ); if( i == count ) { // No free slots, skill Fail clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); map_freeblock_unlock(); return 1; } //custom; allows use of Devotion (CR_DEVOTION) on party members with identical pk states if(devo == -1){//Not in party of the caster clif_displaymessage(sd->fd,"Can't cast devotion on non-party members"); clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); map_freeblock_unlock(); return 1; } } if(devo == 1 && sd->state.pk_mode==devsd->state.pk_mode){//is a party member and has the same pk state sd->devotion[i] = bl->id; } else if(devo == 1 && sd->state.pk_mode!=devsd->state.pk_mode){//is a party member but has a different pk state clif_displaymessage(sd->fd,"Can't use Devotion on party members with a different pk mode; ensure ALL of your party members have the same pk mode"); clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0); map_freeblock_unlock(); return 1; } else//added just in case of unknown errors clif_displaymessage(sd->fd,"Unknown logic error; please report the error to a GM"); //end custom1 point
-
I'd like to nominate Erazer Reason: He likes trains more than anyone else around. Another Reason: Hes just that awesome. More Reasons: He just ..... give him the god damn medal. Status: Rejected with fire. [DE]1 point
-
Your V4P doesn't use any account variable, it use a query to retrieve the value in a table //===== rAthena Script ======================================= //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6a //===== Compatible With: ===================================== //= rAthena SVN r16862+ //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.2 Added category support. //= 1.3 More options and fixes. //= 1.4 Added debug settings. //= 1.5 Replaced categories with shop IDs. //= 1.6 Added support for purchasing stackables. //= 1.6a Added support for previewing costumes and robes. //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshopbis"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ prontera,164,203,6 script Quest Shop#bis1 998,{ callfunc "qshopbis"; } // Script Core //============================================================ - script quest_shop2 -1,{ function Add; function Chk; function Slot; function A_An; OnInit: freeloop(1); // ----------------------------------------------------------- // Basic shop settings. // ----------------------------------------------------------- set .Announce,1; // Announce quest completion? (1: yes / 0: no) set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) set .ShowID,0; // Show item IDs? (1: yes / 0: no) set .ShowZeny,0; // Show Zeny cost, if any? (1: yes / 0: no) set .MaxStack,100; // Max number of quest items purchased at one time. // ----------------------------------------------------------- // Points variable -- optional quest requirement. // setarray .Points$[0],"<variable name>","<display name>"; // ----------------------------------------------------------- setarray .Points$[0],"#VOTEPOINTS","Vote Points"; // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1],"Headgears","Weapons","Other"; // ----------------------------------------------------------- // Quest items -- do NOT use a reward item more than once! // Add(<shop ID>,<reward ID>,<reward amount>, // <Zeny cost>,<point cost>, // <required item ID>,<required item amount>{,...}); // ----------------------------------------------------------- Add(1,5022,1,0,3,7086,1,969,10,999,40,1003,50,984,2); Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600); Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1); Add(1,5045,1,0,0,2252,1,1054,450,943,1200); Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10); Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10); Add(3,531,1,3,0,512,1,713,1); Add(3,532,1,3,0,513,1,713,1); Add(3,533,1,3,0,514,1,713,1); Add(3,534,1,3,0,515,1,713,1); // ----------------------------------------------------------- freeloop(0); set .menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) { set .menu$, .menu$+.Shops$[.@i]+":"; npcshopdelitem "qshopbis"+.@i,909; } end; OnMenu: set .@size, getarraysize(@i); if (!.@size) set .@i, select(.menu$); else if (.@size == 1) set .@i, @i[0]; else { for(set .@j,0; .@j<.@size; set .@j,.@j+1) set .@menu$, .@menu$+.Shops$[@i[.@j]]+":"; set .@i, @i[select(.@menu$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[.@i] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "qshopbis"+.@i,1; npcshopattach "qshopbis"+.@i; end; OnBuyItem: // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... } setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]); copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0])); set .@q[2],.@q[1]*.@q[3]; if (!.@q[2] || .@q[2] > 30000) { message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+"."; end; } query_sql( "SELECT `point` FROM `vote_point` WHERE `loginname` = MD5('"+getcharid(3)+"')", .@vote ); mes "[Quest Shop]"; mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000"; mes "Requirements:"; if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000"; if (.@q[5]) mes " > "+Chk(.@vote,.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+.@vote+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; next; setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11); if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192))) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "You're missing one or more quest requirements."; close; } if (!checkweight(.@q[0],.@q[2])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]); if (.@q[5]) query_sql("UPDATE `vote_point` SET `point` = `point` - "+ (.@q[5]*.@q[1]) +" WHERE `loginname` = MD5('"+getcharid(3)+"')"); if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]*.@q[1]; for ( .@i = 0; .@i < .@q[2]; .@i++ ) rentitem .@q[0],3600;// 1 hour if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0; specialeffect2 EF_FLOWERLEAF; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1; if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2]; else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2]; else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2]; else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2]; break; case 3: close; } } OnEnd: if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; changelook LOOK_ROBE, @qe[6]; } deletearray @qe[0],8; end; function Add { if (getitemname(getarg(1)) == "null") { debugmes "Quest reward #"+getarg(1)+" invalid (skipped)."; return; } setarray .@j[0],getarg(2),getarg(3),getarg(4); for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) { if (getitemname(getarg(.@i)) == "null") { debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped)."; return; } else setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1); } copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j); npcshopadditem "qshopbis"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0); return; } function Chk { if (getarg(0) < getarg(1)) { set @qe[0],1; return "^FF0000"; } else return "^00FF00"; } function Slot { set .@s$,getitemname(getarg(0)); switch(.ShowSlot) { case 1: if (!getitemslots(getarg(0))) return .@s$; case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } } function script qshopbis { deletearray @i[0],getarraysize(@i); for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set @i[.@i],getarg(.@i); doevent "quest_shop2::OnMenu"; end; } // Dummy shop data -- copy as needed. //============================================================ - shop qshopbis1 -1,909:-1 - shop qshopbis2 -1,909:-1 - shop qshopbis3 -1,909:-1 - shop qshopbis4 -1,909:-1 - shop qshopbis5 -1,909:-11 point
-
501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ warp "prontera",155,181; },{},{}1 point
-
You're welcome I forget to talk about three known problems related to PHP GD (it sucks !). I show you this problems in only one monster : The Bloody Knight ! Do you see the fire ? There is a white rectangle around. this problems occurs on RGBA images in Sprite files when you try to merge them with the main image. Check the shield, there is a white border around it. When rotating an image it's possible to have this problem : the image border is merging with the transparent background (which is white) and cause this bug. I replace the transparent background by a transparent white background to avoid getting a magenta border (or other flashy border). Check the shield again, poor quality ! Due to image rotation + image scale. The problem n°1 just occurred in some monsters (effects), I don't think there is one hat or character using RGBA frames for now in RO. The problem n°2 and 3 can occurred in all monsters/characters, depend of the scale and rotation. To conclude, PHP GD sucks, I have noone of this problems in javascript (<3).1 point