
Louis T Steinhil
Members-
Content Count
172 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by Louis T Steinhil
-
Confused different wieght (rdata.grf)
Louis T Steinhil replied to karazu's question in Client-Side Support
Brother reading is very essential. rdata.grf 2012-08-23 that's 2012 rdata. 2013 rdata has only 181mb. -
in the item db look for "t archangel wing" and "fantastic aura".. T archangel = costume garment & fantastic aura = right hand costume. ps: shield armor shoes and accessories on costume slot are not yet implemented
-
Now I'm convinced that it is something programmed not just simple sprites.
-
yeah just follow the wiki
-
centos-5-
-
linux
-
well my @afk & @dance plugin runs smoothly on latest revision
-
I don't know the story, I posted because I wanted to know if someone has the information regarding what happened... if the post was really that annoying admins can delete it.. hehe
-
what the! This is the first time I saw this post. Just COOL idea. That's all I can say.
-
I'm not here to judge. I just wanted to share insights about this blog. I don't know much about the hisrtory of ragnarok...but it's definitely a good article for it. Though I don't say that this is something real or fake... Happy Reading everyone! http://adultimum.net/rw/extras.php?section=soappserv
-
Mysterious: Oops, button will appear when you click on the page; Splash page will auto redirect after 6 seconds if you don't do anything.
-
Well it's not that much but I hope someone will benefit from this. I know I'm not good at graphics so...take it easy on me. Just sharing some codes. Splash Page Demo: http://project-destro.asurahosting.com/test Description: Splash Page On click: A button will appear "Enter Site" else Auto redirect to website; Interval is 6 seconds. by the way I re-coded this, so some of the codes were from google. splash-screen.rar
-
try this: (not mine) Index: src/common/mmo.h===================================================================--- src/common/mmo.h (revision 12718)+++ src/common/mmo.h (working copy)@@ -248,7 +248,7 @@ unsigned char karma; short hair,hair_color,clothes_color; int party_id,guild_id,pet_id,hom_id;- int fame;+ int fame,pvprank,aura; short weapon; // enum weapon_type short shield; // view-idIndex: src/map/atcommand.c===================================================================--- src/map/atcommand.c (revision 12718)+++ src/map/atcommand.c (working copy)@@ -8200,6 +8200,43 @@ } /*==========================================+ * Auras personalizadas+ *------------------------------------------*/+int atcommand_aura(const int fd, struct map_session_data* sd, const char* command, const char* message)+{+ struct map_session_data *pl_sd = 0;+ int type = 0;++ if (!message || !*message || sscanf(message, "%d %[^n]", &type, atcmd_player_name) < 2)+ {+ if (!message || !*message || sscanf(message, "%d", &type) < 1)+ {+ clif_displaymessage(fd, "Please, enter at least an option (usage: @aura ).");+ return -1;+ }++ atcmd_player_name[0] = 0;+ pl_sd = sd;+ }++ if( pl_sd != sd )+ {+ if ((pl_sd = map_nick2sd(atcmd_player_name)) == NULL)+ return -1;+ }++ sprintf(atcmd_output, "Current Aura: %d", pl_sd->status.aura);+ clif_displaymessage(fd, atcmd_output);++ pl_sd->status.aura = type;+ pc_setglobalreg(pl_sd,"USERAURA",type);++ pc_setpos(pl_sd, pl_sd->mapindex, pl_sd->bl.x, pl_sd->bl.y, 3);++ return 0;+}++/*========================================== * AUCTION SYSTEM *------------------------------------------*/ int atcommand_auction(const int fd, struct map_session_data *sd, const char *command, const char *message)@@ -8552,6 +8589,7 @@ { "homshuffle", 60, atcommand_homshuffle }, { "showmobs", 10, atcommand_showmobs }, { "feelreset", 10, atcommand_feelreset },+ { "aura", 1, atcommand_aura }, { "auction", 60, atcommand_auction }, { "mail", 1, atcommand_mail }, { "noks", 0, atcommand_ksprotection },Index: src/map/clif.c===================================================================--- src/map/clif.c (revision 12718)+++ src/map/clif.c (working copy)@@ -95,6 +95,139 @@ int clif_parse (int fd); /*==========================================+ * @aura+ *------------------------------------------*/+static int auraTable[][3] = {+ { -1, -1, -1 },+ // Reserved for PK Mode+ { 586, -1, -1 }, // LH+ { 586, 362, -1 }, // LH Mvp+ { 586, 362, 240 }, // 1є PK Place+ // Basic Auras+ { 418, -1, -1 }, // Red Fury+ { 486, -1, -1 }, // Blue Fury+ { 485, -1, -1 }, // White Fury+ { 239, -1, -1 }, // Aura Red+ { 240, -1, -1 }, // Aura White+ { 241, -1, -1 }, // Aura Yellow+ { 620, -1, -1 }, // Aura Blue+ { 202, -1, -1 }, // Lvl 99 Bubbles+ { 362, -1, -1 }, // Advanced Lvl 99 Bubbles+ { 678, -1, -1 }, // Brazil Aura Bubbles+ { 679, -1, -1 }, // Brazil Aura+ { 680, -1, -1 }, // Brazil Aura Floor+ // 2 Sets+ { 239, 418, -1 },+ { 239, 486, -1 },+ { 239, 485, -1 },+ { 240, 418, -1 },+ { 240, 486, -1 },+ { 240, 485, -1 },+ { 241, 418, -1 },+ { 241, 486, -1 },+ { 241, 485, -1 },+ { 620, 418, -1 },+ { 620, 486, -1 },+ { 620, 485, -1 },+ // Full Sets+ { 239, 418, 202 },+ { 239, 486, 202 },+ { 239, 485, 202 },+ { 240, 418, 202 },+ { 240, 486, 202 },+ { 240, 485, 202 },+ { 241, 418, 202 },+ { 241, 486, 202 },+ { 241, 485, 202 },+ { 620, 418, 202 },+ { 620, 486, 202 },+ { 620, 485, 202 },+ { 239, 418, 362 },+ { 239, 486, 362 },+ { 239, 485, 362 },+ { 240, 418, 362 },+ { 240, 486, 362 },+ { 240, 485, 362 },+ { 241, 418, 362 },+ { 241, 486, 362 },+ { 241, 485, 362 },+ { 620, 418, 362 },+ { 620, 486, 362 },+ { 620, 485, 362 },+ { 239, 418, 678 },+ { 239, 486, 678 },+ { 239, 485, 678 },+ { 240, 418, 678 },+ { 240, 486, 678 },+ { 240, 485, 678 },+ { 241, 418, 678 },+ { 241, 486, 678 },+ { 241, 485, 678 },+ { 620, 418, 678 },+ { 620, 486, 678 },+ { 620, 485, 678 },+ // Oficial Set+ { 680, 679, 678 },+ { -1, -1, -1 }+};++int aura_getSize()+{+ return sizeof(auraTable)/(sizeof(int) * 3) - 1;+}++int aura_getAuraEffect(struct map_session_data *sd, short pos)+{+ int aura = sd->status.aura;++ if (pos < 0 || pos > 2)+ return -1;++ if (aura > aura_getSize() || aura < 0)+ return -1;++ return auraTable[aura][pos];+}++void clif_sendaurastoone(struct map_session_data *sd, struct map_session_data *dsd)+{+ int effect1, effect2, effect3;++ if (pc_ishiding(sd))+ return;++ effect1 = aura_getAuraEffect(sd, 0);+ effect2 = aura_getAuraEffect(sd, 1);+ effect3 = aura_getAuraEffect(sd, 2);++ if (effect1 >= 0)+ clif_specialeffect_single(&sd->bl, effect1, dsd->fd);+ if (effect2 >= 0)+ clif_specialeffect_single(&sd->bl, effect2, dsd->fd);+ if (effect3 >= 0)+ clif_specialeffect_single(&sd->bl, effect3, dsd->fd);+}++void clif_sendauras(struct map_session_data *sd, enum send_target type)+{+ int effect1, effect2, effect3;++ if (pc_ishiding(sd))+ return;++ effect1 = aura_getAuraEffect(sd, 0);+ effect2 = aura_getAuraEffect(sd, 1);+ effect3 = aura_getAuraEffect(sd, 2);++ if (effect1 >= 0)+ clif_specialeffect(&sd->bl, effect1, type);+ if (effect2 >= 0)+ clif_specialeffect(&sd->bl, effect2, type);+ if (effect3 >= 0)+ clif_specialeffect(&sd->bl, effect3, type);+}++/*========================================== * mapЋI‚МipђЭ’и *------------------------------------------*/ int clif_setip(const char* ip)@@ -1016,6 +1149,7 @@ clif_specialeffect(bl,423,AREA); else if(sd->state.size==1) clif_specialeffect(bl,421,AREA);+ clif_sendauras((TBL_PC*)bl, AREA); } break; case BL_MOB:@@ -3388,6 +3522,7 @@ clif_specialeffect_single(bl,423,sd->fd); else if(tsd->state.size==1) clif_specialeffect_single(bl,421,sd->fd);+ clif_sendaurastoone(tsd, sd); } break; case BL_NPC:@@ -3413,6 +3548,37 @@ } } +int clif_insight2(struct block_list *bl,va_list ap)+{+ struct block_list *tbl;+ struct map_session_data *sd, *tsd;+ int flag;++ tbl = va_arg(ap,struct block_list*);+ flag = va_arg(ap,int);++ if (bl == tbl && !flag)+ return 0;++ sd = BL_CAST(BL_PC, bl);+ tsd = BL_CAST(BL_PC, tbl);++ if (sd && sd->fd)+ {+ if (bl == tbl)+ clif_sendaurastoone(sd, tsd);+ else+ clif_getareachar_unit(sd, tbl);+ }++ return 0;+}++void clif_getareachar_char(struct block_list *bl, short flag)+{+ map_foreachinarea(clif_insight2, bl->m, bl->x-AREA_SIZE, bl->y-AREA_SIZE, bl->x+AREA_SIZE, bl->y+AREA_SIZE,BL_PC, bl, flag);+}+ //Modifies the type of damage according to status changes [Skotlex] //Aegis data specifies that: 4 endure against single hit sources, 9 against multi-hit. #define clif_calc_delay(type,div,damage,delay) ((delay)==0&&(damage)>0?((div)>1?9:4):type)Index: src/map/clif.h===================================================================--- src/map/clif.h (revision 12718)+++ src/map/clif.h (working copy)@@ -415,6 +415,10 @@ int do_final_clif(void); int do_init_clif(void); +// [@aura]+void clif_sendauras(struct map_session_data *sd, enum send_target type);+void clif_getareachar_char(struct block_list *bl, short flag);+ #ifndef TXT_ONLY // MAIL SYSTEM void clif_Mail_window(int fd, int flag);Index: src/map/pc.c===================================================================--- src/map/pc.c (revision 12718)+++ src/map/pc.c (working copy)@@ -898,6 +898,9 @@ sd->change_level = pc_readglobalreg(sd,"jobchange_level"); sd->die_counter = pc_readglobalreg(sd,"PC_DIE_COUNTER"); + // @Aura+ sd->status.aura = pc_readglobalreg(sd,"USERAURA");+ // Cash shop sd->cashPoints = pc_readaccountreg(sd,"#CASHPOINTS"); sd->kafraPoints = pc_readaccountreg(sd,"#KAFRAPOINTS");Index: src/map/status.c===================================================================--- src/map/status.c (revision 12718)+++ src/map/status.c (working copy)@@ -5038,6 +5038,7 @@ vd = status_get_viewdata(bl); calc_flag = StatusChangeFlagTable[type]; if(!(flag&4)) //&4 - Do not parse val settings when loading SCs+ { switch(type) { case SC_DECREASEAGI:@@ -5931,6 +5932,15 @@ return 0; } }+ // @aura+ if (sd && sd->status.aura > 0 &&+ (type == SC_HIDING || type == SC_CLOAKING || type == SC_CHASEWALK))+ {+ sd->status.aura *= -1;+ clif_clearunit_area(&sd->bl, 0);+ clif_getareachar_char(&sd->bl, 0);+ }+ } else //Special considerations when loading SC data. switch( type ) {@@ -6693,6 +6703,14 @@ opt_flag = 0; } + // @auras+ if (sd && sd->status.aura < 0 &&+ (type == SC_HIDING || type == SC_CLOAKING || type == SC_CHASEWALK))+ {+ sd->status.aura *= -1;+ clif_sendauras(sd, AREA_WOS);+ }+ if (calc_flag&SCB_DYE) { //Restore DYE color if (vd && !vd->cloth_color && sce->val4) or http://rathena.org/board/topic/79770-atcommand-aura/
-
Just saw this post, http://rathena.org/board/topic/86360-episode-151-charleston-crisis-instance/#entry219284
-
2308 is a mob right? case KO_ZANZOU:if(sd){struct mob_data *md;md = mob_once_spawn_sub(src, src->m, src->x, src->y, iStatus->get_name(src), 2308, "", SZ_SMALL, AI_NONE);if( md ){md->master_id = src->id;md->special_state.ai = AI_ZANZOU;if( md->deletetimer != INVALID_TIMER )iTimer->delete_timer(md->deletetimer, mob_timer_delete);md->deletetimer = iTimer->add_timer (iTimer->gettick() + skill->get_time(skill_id, skill_lv), mob_timer_delete, md->bl.id, 0);mob_spawn( md );pc->setinvincibletimer(sd,500);// unlock target lockclif->skill_nodamage(src,bl,skill_id,skill_lv,1);skill->blown(src,bl,skill->get_blewcount(skill_id,skill_lv),unit_getdir(bl),0);}}break; Do you know how can I make it a clone of me not just a mob? I mean a clone of the caster? *mob_spawn_clone?
-
ok thanks for the idea goddameit.
-
Why use @pk? I thought we have killable: "Make your character killable." why not just make killable an alias? aliases: { killable: ["pk"] mobinfo: ["monsterinfo", "mi"] iteminfo: ["ii"] time: ["date", "serverdate", "servertime"] autotrade: ["at"] help: ["h"] jumpto: ["goto", "warpto"] mount: ["mountpeco"] who: ["whois"] npctalk: ["npctalkc"] gvgon: ["gpvpon"] gvgoff: ["gpvpoff"] jobchange: ["job"] load: ["return"] warp: ["rura", "mapmove"] dye: ["ccolor"] hairstyle: ["hstyle"] haircolor: ["hcolor"] monster: ["spawn"] blvl: ["lvup", "blevel", "baselvl", "baselvup", "baselevel", "baselvlup"] jlvl: ["jlevel", "joblvl", "joblvup", "joblevel", "joblvlup"] glvl: ["glevel", "guildlvl", "guildlvup", "guildlevel", "guildlvlup"] resetstat: ["streset"] resetskill: ["skreset"] allskill: ["allskills", "skillall", "skillsall"] allstats: ["allstat", "statall", "statsall"] ban: ["banish"] unban: ["unbanish"] unjail: ["discharge"] homlevel: ["hlvl", "hlevel", "homlvl", "homlvup"] homevolution: ["homevolve"] mutearea: ["stfu"] monsterignore: ["battleignore"] raise: ["revive"] kill: ["die"] guildstorage: ["gstorage"] accinfo: ["accountinfo"] itemreset: ["clearinventory"] channel: ["main"]}
-
R> Enchanter that can enchant 1st to 4th slot
Louis T Steinhil replied to Critica's question in Script Requests
if( !.@card4 ){ getitem2 .@id, 1,1, .@ref, 0, .@card1, .@card2, .@card3, 4700 + .@o * 10 + .@r; close; } else if( !.@card3 ){ getitem2 .@id, 1,1, .@ref, 0, .@card1, .@card2, 4700 + .@o * 10 + .@r, .@card4; close; } else if( !.@card2 ){ getitem2 .@id, 1,1, .@ref, 0, .@card1, 4700 + .@o * 10 + .@r, .@card3, .@card4; close; } else getitem2 .@id, 1,1, .@ref, 0, 4700 + .@o * 10 + .@r, .@card2, .@card3, .@card4; close; else{ delitem2 .@id, 1,1, .@ref, 0, .@card1, .@card2, .@card3, .@card4; specialeffect 155,0; emotion e_an; close; } -
Utility [v2.0]Basic Premium System
Louis T Steinhil replied to Diconfrost VaNz's topic in Utility Releases
Just saw a VIP script in rathena but don't know if this one works with hercules as well CREATE TABLE IF NOT EXISTS `vip_bronze` ( `account_id` int(11) unsigned NOT NULL default '0', `account_name` varchar(255) NOT NULL default 'NULL', `start_date` datetime NOT NULL default '0000-00-00 00:00:00', `end_date` datetime NOT NULL default '0000-00-00 00:00:00', `status` varchar(255) NOT NULL DEFAULT 'NULL', PRIMARY KEY (`account_id`)) ENGINE=MyISAM;CREATE TABLE IF NOT EXISTS `vip_silver` ( `account_id` int(11) unsigned NOT NULL default '0', `account_name` varchar(255) NOT NULL default 'NULL', `start_date` datetime NOT NULL default '0000-00-00 00:00:00', `end_date` datetime NOT NULL default '0000-00-00 00:00:00', `status` varchar(255) NOT NULL DEFAULT 'NULL', PRIMARY KEY (`account_id`)) ENGINE=MyISAM;CREATE TABLE IF NOT EXISTS `vip_gold` ( `account_id` int(11) unsigned NOT NULL default '0', `account_name` varchar(255) NOT NULL default 'NULL', `start_date` datetime NOT NULL default '0000-00-00 00:00:00', `end_date` datetime NOT NULL default '0000-00-00 00:00:00', `status` varchar(255) NOT NULL DEFAULT 'NULL', PRIMARY KEY (`account_id`)) ENGINE=MyISAM;ALTER table `login` add column account_type varchar(255) NOT NULL default 'NULL' after `birthdate`, add index (account_type);UPDATE `login` SET `account_type` = 'NULL';TRUNCATE `vip_bronze`;TRUNCATE `vip_gold`;TRUNCATE `vip_silver`;// base on victor's vip scriptprontera,150,150,5 script VIP system 56,{function statusvip;function expirevip;function mainmenu;function showlist;function deletevip;function addvip; mes .npc_Name$; query_sql "SELECT `account_type` FROM login WHERE `account_id` = "+ getcharid(3), .@acc_Type$; while( .@i < 3 && callfunc("str_toLower", .@acc_Type$ ) != .type_name$[.@i] ) set .@i, .@i +1; if( .@i == 3 ) mes "Hello "+ strcharinfo(0) +" you have an normal account. Get an "+ getitemname( .item_premium_b ) +", "+ getitemname( .item_premium_s ) +", "+ getitemname( .item_premium_g ) +" to get a premium account."; else { set .@expiration_Date$, statusvip( .type_name$[.@i], .@i +1, 1 ); mes "Hello "+ strcharinfo(0) +" you have an "+ .type_name$[.@i] +" and it will expire in "+ .@expiration_Date$; } goto L_player;OnWhisperGlobal: if ( getgmlevel() < 99 ) end;L_main: mes .npc_Name$; mes "Welcome, "+ strcharinfo(0) +"!"; mes "What can I do for you today?";L_player: next; set .@s, select( ( getgmlevel() < 99 ? "" : "VIP bronze Menu" ), ( getgmlevel() < 99 ? "" : "VIP silver Menu" ), ( getgmlevel() < 99 ? "" : "VIP gold Menu" ), ( ( countitem( .item_premium_b ) || countitem( .item_premium_s ) || countitem( .item_premium_g ) ) && .up_npc ? "Upgrade my account" : "" ), "Quit" ) -1; if ( .@s == 4 ) close; else if( .@s == 3 ) { setarray .@rank$, "b", "s", "g"; select("Bronze:Silver:Gold"); callfunc( "VIP_upgrade", 7, getd(".item_premium_"+.@rank$[@menu]), @menu ); } set .@a$, "[VIP "+ callfunc("str_toLower", .type_name$[.@s] ) +"]"; next; mes .npc_Name$; mes .@a$; // if( getgmlevel() < 99 ) { // set .@sub_s, select( "List Accounts", "Cancel" ); // if( .@sub_s == 2 ) close; // mainmenu( .@sub_s +2, .@s ); // } next; set .@sub_s, select( "Add/Extend Account", "Delete Account", "List Accounts", "Back" ); if ( .@sub_s == 4 || mainmenu( .@sub_s, .@s, .@a$ ) ) goto L_main;// Setting// -------OnInit: set .npc_Name$,"[VIP System v3.0]"; set .bronze_AccLvl, 1; // VIP bronze Account Level set .silver_AccLvl, 2; // silver set .gold_AccLvl, 3; // gold set .bronze_ExpRate, 25; // VIP bronze Exp Boost in % ( 1 = 1% ) set .silver_ExpRate, 50; // silver set .gold_ExpRate, 100; // gold set .bronze_ItemRate, 0; // VIP bronze Item Drop Boost in % ( 1 = 1% ) set .silver_ItemRate, 5; // silver set .gold_ItemRate, 10; // gold set .item_premium_b, 501; // ID item to upgrade your account to bronze set .item_premium_s, 502; // ID item to upgrade your account to silver set .item_premium_g, 503; // ID item to upgrade your account to gold set .fcp, 0; // fcp for gold vip ? (0 : no) / (1 : yes) set .up_npc, 1; // player can upgrade to npc if items required 0 : no setarray .type_name$, "bronze", "silver", "gold" ; end;// On login// --------OnPCLoginEvent: query_sql "SELECT `account_type` FROM login WHERE `account_id` = "+ getcharid(3), .@acc_Type$; while( .@i < 3 && callfunc("str_toLower", .@acc_Type$ ) != .type_name$[.@i] ) set .@i, .@i +1; if( .@i == 3 ) end; sc_end sc_expboost; sc_end sc_itemboost; set .@expiration_Date$, statusvip( .type_name$[.@i], .@i, 0 ); dispbottom "----------------------------------------------------------------------"; dispbottom "Account type: "+ .@acc_Type$; dispbottom "Expiration date: "+ .@expiration_Date$; dispbottom "----------------------------------------------------------------------"; end;// Check the VIP status ; bonus VIP// --------------------------------function statusvip { query_sql "SELECT `status` FROM `vip_"+ getarg(0) +"` WHERE `account_id` = "+ getcharid(3), .@vip_Status$ ; query_sql "SELECT DATE_FORMAT(`end_date`, '%Y%m%d') FROM `vip_"+ getarg(0) +"` WHERE `account_id` = "+ getcharid(3), .@expiration_Date$ ; query_sql "SELECT CURDATE() + 0;", .@current_Date$ ; if( getarg(2) ) return .@expiration_Date$; if ( atoi(.@current_Date$) >= atoi(.@expiration_Date$) ) expirevip( "vip_"+ getarg(0), getcharid(3) ); else { set .@time, 3600 * 60 * 1000; set .@it_Rate, getd( "."+ getarg(0) +"_ItemRate" ); set .@exp_rate, getd( "."+ getarg(0) +"_ExpRate" ); if( .@exp_rate ) sc_start sc_expboost, .@time, .@exp_rate; if( .@it_Rate ) sc_start sc_itemboost, .@time, .@it_Rate; if( getarg(1) == 2 && .fcp ) { sc_start SC_CP_WEAPON, .@time, 5; sc_start SC_CP_SHIELD, .@time, 5; sc_start SC_CP_ARMOR, .@time, 5; sc_start SC_CP_HELM, .@time, 5; } } return .@expiration_Date$;}// VIP expire : updates tables// ---------------------------function expirevip { set .@T_Name$, getarg(0); set .@acc_Id, getarg(1); query_sql "UPDATE `login` SET `level` = 0, `account_type` = 'NORMAL' WHERE account_id = "+ .@acc_Id; query_sql "DELETE FROM "+ .@T_Name$ +" WHERE account_id = "+ .@acc_Id; query_sql "ALTER TABLE "+ .@T_Name$ +" AUTO_INCREMENT = 1"; sc_end SC_CP_WEAPON; sc_end SC_CP_SHIELD; sc_end SC_CP_ARMOR; sc_end SC_CP_HELM; dispbottom "Your VIP expire."; end;}function mainmenu { switch( getarg(0) ) { case 1: addvip( getarg(1), getarg(2) ); break; case 2: deletevip( getarg(1), getarg(2) ); break; case 3: showlist( getarg(1) ); } return 1;}function addvip { set .@s, getarg(0); set .@a$, getarg(1); mes .npc_Name$; mes .@a$; mes "Type the Account Name"; mes "you wish to add."; input .@acc_Name$; next; mes .npc_Name$; mes .@a$; query_sql "SELECT `account_id` FROM login WHERE `userid` = '"+ escape_sql( .@acc_Name$ )+"'", .@acc_Id ; mes "Identifying account: "+ .@acc_Name$ +"."; sleep2 500; if ( !.@acc_Id ) { mes "ERROR: Couldn't find account."; mes "Verify if you dind't make a typo."; close; } mes .npc_Name$; mes .@a$; mes "Type the number of days you"; mes "wish to add to the account's VIP"; mes "status."; next; while( input( .@Days, 1, 999 ) != 0 ) { mes .npc_Name$; mes .@a$; mes "Put a number between 1 and 999."; next; } mes .npc_Name$; mes .@a$; query_sql "SELECT `account_id` FROM vip_"+ .type_name$[.@s] +" WHERE `account_id` = "+ .@acc_Id, .@vip_accid; if ( .@vip_accid == .@acc_Id ) { mes "Account ID: "+ .@vip_accid +"."; sleep2 500; query_sql "UPDATE vip_"+ .type_name$[.@s] +" SET end_date = DATE_ADD(end_date, INTERVAL "+ .@Days +" DAY), `status` = 'ACTIVE' WHERE account_id = "+.@vip_accid; query_sql "UPDATE login SET `account_type` = '"+ callfunc("str_toUpper", .type_name$[.@s] ) +"' WHERE account_id = "+ .@vip_accid; mes "Account "+ .@acc_Id +" added successfuly!"; } else { mes "Account ID: "+ .@acc_Id +"."; sleep2 500; query_sql "INSERT INTO vip_"+ .type_name$[.@s] +" (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+.@acc_Id+",'"+ escape_sql( .@acc_Name$ ) +"',CURDATE(),CURDATE(),'ACTIVE')"; sleep2 100; query_sql "UPDATE vip_"+ .type_name$[.@s] +" SET end_date = DATE_ADD(start_date, INTERVAL "+ .@Days +" DAY) WHERE account_id = "+.@acc_Id; query_sql "UPDATE `login` SET `level` = "+ getd( "."+ .type_name$[.@s] +"_AccLvl" ) +", `account_type` = '"+ callfunc("str_toUpper", .type_name$[.@s] ) +"' WHERE `account_id` = "+.@acc_Id; mes "Account "+ .@acc_Id +" added successfuly!"; } close;}function deletevip { set .@s, getarg(0); set .@a$, getarg(1); set .@size, query_sql( "SELECT account_name,`account_id` FROM vip_"+ .type_name$[.@s] +" LIMIT 127", .@List$, .@acc_id ); mes .npc_Name$; mes .@a$; if ( .@size == 0 ) mes "There are currently no VIP "+ .type_name$[.@s] +" accounts."; else { mes "Select the account you wish "; mes "to remove from VIP system."; set .@j$, "1. "+ .@List$; for ( set .@i, 1; .@i < .@size; set .@i, .@i + 1 ) set .@j$, .@j$ +":"+ ( .@i +1 ) +". "+ .@List$[.@i]; set .@j$, .@j$ +":Cancel"; next; mes .npc_Name$; mes .@a$; set .@menu_del, select( .@j$ ) -1; if ( .@menu_del == .@size ) { next; return; } mes "Are you sure you want to remove the account "; mes .@List$[ .@menu_del ] +" ?"; if ( select( "Yes", "No" ) -1 ) { next; return; } query_sql "UPDATE `login` SET `level` = 0, `account_type` = 'NORMAL' WHERE `account_id` = '"+ .@acc_id +"'"; query_sql "DELETE FROM vip_"+ .type_name$[.@s] +" WHERE account_id = "+ .@acc_id; query_sql "ALTER TABLE vip_"+ .type_name$[.@s] +" AUTO_INCREMENT = 1"; mes "VIP "+ .type_name$[.@s] +" account successfuly deleted!."; } close;}function showlist { set .@s, getarg(0); mes .npc_Name$; mes "VIP "+ .type_name$[.@s] +" accounts list:"; set .@size, query_sql( "SELECT account_name FROM vip_"+ .type_name$[.@s] +" LIMIT 127", .@List$ ); if( .@size == 0 ) { mes "The list is empty."; close; } for ( set .@i, 0; .@i < .@size; set .@i, .@i + 1 ) mes ( .@i +1 )+". "+ .@List$[ .@i ]; close;}}// Upgrade via itemscript// ----------------------/*callfunc( "VIP_upgrade", 7, 12703, 0 );getarg(2) : 0 = up to bronze 1 = up to silver 2 = up to gold*/function script VIP_upgrade { if( select( "^777777~ Upgrade my account", "~ Not today^000000" ) -1 ) close; set .@acc_id, getcharid(3) ; setarray .@type_name$, "bronze", "silver", "gold" ; set .@bronze_AccLvl, 1; // VIP bronze Account Level set .@silver_AccLvl, 2; // silver set .@gold_AccLvl, 3; // gold query_sql "SELECT `userid`, `account_type` FROM `login` WHERE `account_id` = '"+ .@acc_id +"'", .@user_id$, .@acc_type$; while( .@i < 3 && callfunc("str_toLower", .@acc_Type$) != .@type_name$[.@i] ) set .@i, .@i +1; if ( .@i == 2 || ( .@i >= getarg(2) && .@i != 3 ) ) { dispbottom "Your can't upgrade your account."; close; } else if( .@i != 3 ) { query_sql "DELETE FROM vip_"+ .@type_name$[.@i] +" WHERE account_id = '"+ .@acc_id +"'"; query_sql "ALTER TABLE vip_"+ .@type_name$[.@i] +" AUTO_INCREMENT = 1"; } query_sql "INSERT INTO vip_"+ .@type_name$[ getarg(2) ] +" (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+ .@acc_id +",'"+ escape_sql( .@user_id$ ) +"', CURDATE(), ( DATE_ADD(CURDATE(), INTERVAL "+ getarg(0) +" DAY) ), 'ACTIVE') "; query_sql "UPDATE `login` SET `level` = "+ getd( ".@"+ .@type_name$[ getarg(2) ] +"_AccLvl" ) +", `account_type` = '"+ callfunc("str_toUpper", .@type_name$[getarg(2)]) +"' WHERE `account_id` = '"+ .@acc_id +"'"; query_sql "SELECT DATE_FORMAT(`end_date`, '%Y %M %d') FROM vip_"+ .@type_name$[ getarg(2) ] +" WHERE `account_id` = '"+ .@acc_id +"'", .@exp_Date$; message strcharinfo(0), "Account updated. Expiration : "+ .@exp_Date$; delitem getarg(1), 1; sleep2 1000; message strcharinfo(0), "You must relog."; sleep2 2000; if( playerattached() ) atcommand "@kick "+ strcharinfo(0); close;}// 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703, 0 ); /* 7 days, item ID to delete */ },{},{}// 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703, 1 ); /* 7 days, item ID to delete */ },{},{}// 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703, 2 ); /* 7 days, item ID to delete */ },{},{}/// callfunc "str_changecase", "<string>", <bool [true:UPPER/false:LOWER]> ;function script str_changecase { sleep2 1; if ( getarg(1) ) { setarray .@char$[ 0 ], " ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "E", "I", "A", "S", "R", "N", "T", "O", "U", "L", "C", "P", "M", "D", "V", "H", "G", "F", "B", "Y", "Q", "K", "Z", "X", "J", "W", "_", "-"; } else { setarray .@char$[ 0 ], " ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "e", "i", "a", "s", "r", "n", "t", "o", "u", "l", "c", "p", "m", "d", "v", "h", "g", "f", "b", "y", "q", "k", "z", "x", "j", "w", "_", "-"; } set .@charsize, getarraysize(.@char$); set .@str$, "|~key~|" + getarg(0) ; set .@len, getstrlen(getarg(0)); while( .@len>.@s ) { set .@i,0; while( .@i<.@charsize ) { if ( ! ( set(.@l,.@l+1) % 650) ) sleep2 1; if ( compare( .@str$ , "|~key~|" + .@tmp$ + .@char$[.@i] ) ) { set .@tmp$, .@tmp$ + .@char$[.@i]; break; } set .@i, .@i+1; } if ( .@i == .@charsize ) return ""; else set .@s, .@s+1; } return .@tmp$;}/// callfunc "str_toLower", "<string>" ;/// callfunc "str_toUpper", "<string>" ;function script str_toLower { return callfunc("str_changecase", getarg(0), 0 ); }function script str_toUpper { return callfunc("str_changecase", getarg(0), 1 ); } -
2013 Ragexe and Diff (Up to date 2013-08-07)
Louis T Steinhil replied to Shakto's topic in Client-Side Releases
yeah, when you patch Custom Aura Sprites, client will crash if you use /aura. About the Remove GM Suit patch, when you try to patch it, it dislocates the head of the characters. -
[Release] Custom Job & Custom Shield Patches
Louis T Steinhil replied to Neo-Mind's topic in Client-Side Releases
ok thanks for the information.- 28 replies
-
- Custom Job
- Custom Shield
-
(and 3 more)
Tagged with:
-
[Release] Custom Job & Custom Shield Patches
Louis T Steinhil replied to Neo-Mind's topic in Client-Side Releases
Neomind: Does your patch for custom job and shield support the login screen window and cancel button?- 28 replies
-
- Custom Job
- Custom Shield
-
(and 3 more)
Tagged with:
-
2013 Ragexe and Diff (Up to date 2013-08-07)
Louis T Steinhil replied to Shakto's topic in Client-Side Releases
Beret: Well it's possible but that will require hexing the client using http://www.ollydbg.de/ But I don't think that over 6 digits is supported on ragexe...ask the professionals maybe they knew something about it.