

Phenomena
Members-
Posts
94 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Phenomena
-
CREATE TABLE IF NOT EXISTS `login` ( `account_id` int(11) unsigned NOT NULL auto_increment, `userid` varchar(23) NOT NULL default '', `user_pass` varchar(32) NOT NULL default '', `sex` enum('M','F','S') NOT NULL default 'M', `email` varchar(39) NOT NULL default '', `group_id` tinyint(3) NOT NULL default '0', `state` int(11) unsigned NOT NULL default '0', `unban_time` int(11) unsigned NOT NULL default '0', `expiration_time` int(11) unsigned NOT NULL default '0', `logincount` mediumint(9) unsigned NOT NULL default '0', `lastlogin` datetime NOT NULL default '0000-00-00 00:00:00', `last_ip` varchar(100) NOT NULL default '', `birthdate` DATE NOT NULL DEFAULT '0000-00-00', `character_slots` tinyint(3) unsigned NOT NULL default '0', `pincode` varchar(4) NOT NULL DEFAULT '', `pincode_change` int(11) unsigned NOT NULL DEFAULT '0', `bank_vault` int(11) NOT NULL DEFAULT '0', `vip_time` int(11) unsigned NOT NULL default '0', `old_group` tinyint(3) NOT NULL default '0', PRIMARY KEY (`account_id`), KEY `name` (`userid`) ) ENGINE=MyISAM AUTO_INCREMENT=2000000; last column must be `old_group` and you use `last_mac`
-
Help with diffing Harmony supplied client.
Phenomena replied to Pink Guy's question in Client-side Support
As you can see in Harmony you had logs: so try to read them. -
This is custom source modification in your server. Try to delete or comment this part like this: /* // Item Security Script if( getsecurity() ) { mes "[" + getarg(0) + "]"; mes "You can't refine. Blocked with @security."; close; } */
-
What is that mean? My server is bad / broken? Revision and Client Version (Packet Version) to auditory please! Want to check this with your options. Okey, I have passed this selftest.. Instance working (as i can see, i have window Alt + B... and then host down ), so what i see: 1. instance.c #define MAX_INSTANCE_DB 15 // Max number of instance types < - must be increased (as for me its 20), cause as i understand, server try to read instances from (pre)-re instance_db.txt's files 2. use db/IMPORT/instance_db.txt for adding custom instances 3. re-compile server... Will give you to know, when host up... //// Yes, its working with any maps. Will write advanced devil square with this instance system and share later. (i guess i can...)
-
src/login/login.c Line 545: if( acc.group_id > login_config.vip_sys.group ) { //Don't change group if it's higher. chrif_sendvipdata(fd,acc,false,true,mapfd); return 1; } if( acc.group_id > login_config.vip_sys.group ) - dismatch/unmatch ' > ' Error when compile and after that server (char server) dont connect to login...
-
Pre-Renewal idnum2itemdesctable.txt
-
Try check this topic...
-
Not working. Change "Instanced Prontera" to "Endless Tower" in script: its create "Endless Tower" Instance..... not mine... So as I understand, Instancing System is bugged at pre-re mod?
-
Q>about giving items but has expiration
Phenomena replied to CursorX's question in Scripting Support
--------------------------------------- *rentitem2 <item id>,<time>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>; *rentitem2 "<item name>",<time>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>; Creates a rental item in the attached character's inventory. The item will expire in <time> seconds and be automatically deleted. See 'rentitem' for further details. See 'getitem2' for an explanation of the expanded parameters. --------------------------------------- --------------------------------------- *getitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>}; *getitem2 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>}; This command will give an amount of specified items to the invoking character. If an optional account ID is specified, and the target character is currently online, items will be created in their inventory instead. If they are not online, nothing will happen. It works essentially the same as 'getitem' (it even works for negative ID numbers the same way) but is a lot more flexible. Those parameters that are different from 'getitem' are: identify - Whether you want the item to be identified (1) or not (0). refine - For how many pluses will it be refined. It will not let you refine an item higher than the max refine. attribute - Whether the item is broken (1) or not (0). card1,2,3,4 - If you want a card compound to it, place the card ID number into the specific card slot. Card1-card4 values are also used to store name information for named items, as well as the elemental property of weapons and armor. You can create a named item in this manner, however, if you just need a named piece of standard equipment, it is much easier to the 'getnameditem' function instead. You will need to keep these values if you want to destroy and then perfectly recreate a named item, for this see 'getinventorylist'. If you still want to try creating a named item with this command because 'getnameditem' won't do it for you cause it's too limited, you can do it like this. Careful, minor magic ahead. // First, let's get an ID of a character who's name will be on the item. // Only an existing character's name may be there. // Let's assume our character is 'Adam' and find his ID. @charid = getcharid(0,"Adam"); // Now we split the character ID number into two portions with a binary // shift operation. If you don't understand what this does, just copy it. @card3 = @charid & 65535; @card4 = @charid >> 16; // If you're inscribing non-equipment, @card1 must be 254. // Arrows are also not equipment. @card1 = 254; // For named equipment, card2 means the Star Crumbs and elemental // crystals used to make this equipment. For everything else, it's 0. @card2 = 0; // Now, let's give the character who invoked the script some // Adam's Apples: getitem2 512,1,1,0,0,@card1,@card2,@card3,@card4; This wasn't tested with all possible items, so I can't give any promises, experiment first before relying on it. To create equipment, continue this example it like this: // We've already have card3 and card4 loaded with correct // values so we'll just set up card1 and card2 with data // for an Ice Stiletto. // If you're inscribing equipment, @card1 must be 255. @card1 = 255; // That's the number of star crumbs in a weapon. @sc = 2; // That's the number of elemental property of the weapon. @ele = 1; // And that's the wacky formula that makes them into // a single number. @card2 = @ele+((@sc*5)<<8); // That will make us an Adam's +2 VVS Ice Stiletto: getitem2 1216,1,1,2,0,@card1,@card2,@card3,@card4; Experiment with the number of star crumbs - I'm not certain just how much will work most and what it depends on. The valid element numbers are: 1 - Ice, 2 - Earth 3 - Fire 4 - Wind. You can, apparently, even create duplicates of the same pet egg with this command, creating a pet which is the same, but simultaneously exists in two eggs, and may hatch from either, although, I'm not sure what kind of a mess will this really cause. --------------------------------------- -
No, i already read description (and always read before make), so this: // Before running this script, add the entry below to // 'db/(pre-)re/instance_db.txt': // 12,Abyss Lake Instance,3600,abyss_03,160,155,abyss_03 This line: 12,Abyss Lake Instance,3600,abyss_03,160,155,abyss_03 was currently added to db/pre-re/instance_db.txt Error not in database at all. Debug message says only
-
Dear Community! Is instance already dead on rAthena after update? Even simple example in doc/simple/instancing.txt not working, always calls Invalid Type: -1; Using: rAthena Revision 17702 & 17704
-
As i see you have custom theme applied to your FluxCP. Check folder themes/default/logdata/ (it like default). You must have themes/YOURTHEME/logdata. Btw, one more thing can be: you disable this type of logs on your server, so maybe database is empty....
-
i dont sure at 100%, but try make like this: 26329,Thanatos_Dragon,Thanatos_Dragon,5,,,0,,0,,1,0xFFFFFFFF,7,63,513,,1,1,1248,{ callfunc "bonus_parametr1"; },{ callfunc "bonus_parametr2"; },{ } function script bonus_parametr1 { bonus bIntravision,0; bonus bAllStats,15; bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus bLongAtkRate,30; bonus bMatkRate,30; bonus2 bResEff,Eff_Blind,10000; bonus2 bResEff,Eff_Sleep,10000; bonus2 bResEff,Eff_Poison,10000; bonus2 bResEff,Eff_Freeze,10000; bonus2 bResEff,Eff_Silence,10000; bonus2 bResEff,Eff_Stun,10000; bonus2 bResEff,Eff_Curse,10000; bonus2 bResEff,Eff_Confusion,10000; bonus2 bResEff,Eff_Stone,10000; if(isequipped(2647)) bonus bAllStats,10; if(isequipped(4399)) bonus bDef,30; if(isequipped(4399)) bonus bFlee,10; end; } function script bonus_parametr2 { if(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief||(BaseJob==Job_Taekwon&&Class!=Job_Soul_Linker)) { bonus2 bSkillAtk,"KN_BOWLINGBASH",10; bonus2 bSkillAtk,"PA_SACRIFICE",10; bonus2 bSkillAtk,"SG_SUN_WARM",10; bonus2 bSkillAtk,"SG_MOON_WARM",10; bonus2 bSkillAtk,"SG_STAR_WARM",10; bonus2 bSkillAtk,"413",10; bonus2 bSkillAtk,"415",10; bonus2 bSkillAtk,"417",10; bonus2 bSkillAtk,"419",10; bonus2 bSkillAtk,"421",10; bonus bInt,100; bonus bMatkRate,-70; end; } else if(BaseClass==Job_Mage||BaseClass==Job_Acolyte||class==Job_Ninja||class==Job_Soul_Linker) { bonus bMatkRate,15; bonus bMaxHPrate,10; } else if(BaseClass==Job_Archer||BaseClass==Job_Gunslinger) { bonus bLongAtkRate,15; end; } else if(BaseJob==Job_Novice||BaseJob==Job_SuperNovice) { bonus bMaxHP,92000; bonus bMaxSP,5000; end; } }
-
Is this possible gettimestr("%Y-%m-%d %H:%M:%S",21) -> gettimetick and back
Phenomena replied to Phenomena's question in Scripting Support
CREATE TABLE IF NOT EXISTS `account_type` ( `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;start_date and end_date in %Y-%m-%d %H:%M:%S format,so its must be FROM_UNIXTIME(" + .start_time + ")? will try now... its work, will make some tests, thank you! -
Is this possible gettimestr("%Y-%m-%d %H:%M:%S",21) -> gettimetick and back
Phenomena replied to Phenomena's question in Scripting Support
So, as i correctly check mysql manual: set .account_id, getcharid(3); query_sql "SELECT `userid` FROM `login` WHERE `account_id` = '"+ escape_sql( .account_id )+"'", .account_name$ ; set .start_time, gettimetick(2); set .end_time, .start_time + 600; // 10 minutes mes "[ Meneger ]"; mes "Account ID: " + .account_id; mes "Login: " + .account_name$; mes "Time start (UNIX): " + .start_time; mes "Time end (UNIX): " + .end_time; mes gettimestr("%Y-%m-%d %H:%M:%S",21); query_sql "INSERT INTO `account_type` ( `account_id`, `account_name`, `start_date`, `end_date`, `status` ) VALUES ( " + .account_id + ", '"+ escape_sql( .account_name$ )+"', UNIX_TIMESTAMP(" + .start_time + "), UNIX_TIMESTAMP(" + .end_time + "), 1 ) "; Is this correct? -
Try use this: prontera,160,186,4 script Premium Accounts 864,{ mes "[Cuentas Premium]"; mes "Hola ^0000FF" + strcharinfo(0) + "^000000, Yo soy la encargada de vender cuentas premium"; next; mes"Yo estoy aqui para llevar a los usuarios VIP a las ciudades VIP."; mes"Te interesa?."; next; if ( .@accountType$ == "PLATINUM" ) { switch(select("Atlantis:Livion:Puerto Pirata")) { case 1: warp "Atlantis",27,236; break; case 2: warp "Livion",145,120; break; case 3: warp "neko_isle",197,86; break; } } if ( .@accountType$ == "GOLD" ) { switch(select("Atlantis:Livion:Puerto Pirata")) { case 1: warp "Atlantis",27,236; break; case 2: warp "Livion",145,120; break; case 3: warp "neko_isle",197,86; break; } } if ( .@accountType$ == "SILVER" ) { switch(select("Atlantis:Livion:Puerto Pirata")) { case 1: warp "Atlantis",27,236; break; case 2: warp "Livion",145,120; break; case 3: warp "neko_isle",197,86; break; } } if ( .@accountType$ == "" ) { mes "[Cuentas Premium]"; mes "Lo siento ^0000FF" + strcharinfo(0) + "^000000, solo usuarios VIP pueden usar este medio."; close; } }
-
Try to use already done and tested scripts: Premium System #1 (Author: Diconfrost VaNz) Premium System #2 (Author: Capuche) Premium System #3 (Author: Meister) Btw, i have premium like on eAmod, but its not separete.. If staff want see, i can send them...
-
monster "<map name>",<x>,<y>,"<name to show>",<mob id>,<amount>{,"<event label>",<size>,<ai>}; monster strcharinfo(3),0,0,.mvpSpawn$[0],atoi(.mvpSpawn$[1]),1;
-
First of all must change this: "<Orc Lord>:<1190>:<3000000>", "<Orc Hero>:<1087>:<5000000>", "<Phreeoni>:<1159>:<7000000>", "<Turtle General>:<1312>:<10000000>"; to this: "Orc Lord:1190:3000000", "Orc Hero:1087:5000000", "Phreeoni:1159:7000000", "Turtle General:1312:10000000";
-
set #PremiumUser,gettimetick(2) + ( .Day * 3600 * 24 ); -- what is .Day varible? where it define? need full script, not only copypast of some parts, or link to script where you get this. gettimetick(<tick type>) This function will return a tick depending on <tick type>: 0: The server's tick, a measurement in milliseconds used by the server's timer system. This tick is an unsigned int which loops every ~50 days. 1: The time, in seconds, since the start of the current day. 2: The system time in UNIX epoch time, or the number of seconds elapsed since January 1st, 1970. Useful for reliably measuring time intervals. 3600 = 60 seconds * 60 = 1 hour 24 = number of hours so, it this script say mes "Done. enjoy your Premium Services for 1 Week."; .Day must be 7, but as i said above - you take part from another script and make it bad. simple change to: set #PremiumUser,gettimetick(2) + 3600 ;
-
prontera,160,180,5 script Healer 100,{ set .price_buff, 0; // Zeny required for heal set .allow_buffs, 1; // Also buff players? (1: yes / 0: no) set .delay, 0; // Heal delay, in seconds if ( @HD > gettimetick(2) ) end; if ( .price_buff ) { message strcharinfo(0),"Healing costs " + .price_buff + " Zeny."; if( Zeny < price_buff ) end; if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) end; set Zeny, Zeny-.@Price; } specialeffect2 EF_HEAL2; percentheal 100,100; if ( .allow_buffs ) { sc_start SC_ASPDPOTION2,360000,0; sc_start SC_STRFood,360000,10; sc_start SC_AGIFood,360000,10; sc_start SC_VITFood,360000,10; sc_start SC_INTFood,360000,10; sc_start SC_DEXFood,360000,10; sc_start SC_LUKFood,360000,10; sc_start SC_HitFood,1200000,30; sc_start SC_FleeFood,1200000,30; sc_start SC_BATKFood,1200000,10; sc_start SC_MATKFood,120000,10; specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; } if ( .delay ) set @HD, gettimetick(2) + .delay; end; }
-
SC_EXPBOOST dont off after relogin. Did you use standart items or any custom? Example: 12264,Comp_Bubble_Gum,Bubble Gum,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_ITEMBOOST,1800000,200; },{},{} i use @item 12264, consume item and have effect that in { ... }, relogin many time and effect still present, BUT when you close your server and start again - effect will off... As Emisty write before
-
I dont see in setarray .ids3[0] your ArmorID item_id=17108 Just tested your script and it working fine for me... Add IDs of your armors to setarray, like below: setarray .ids3[0],20110, // Meteo Plate[1] 20052, // Orlean's Uniform[1] 17161, // Diabolus Robe[1] 17033, // Diabolus Armor[1] 2375, // Sprint Mail[1] 2317, // Kandra[1] || Gandora[1] 2342, // Naga Scale Armor[1] 2364, // Life Link[1] 2357, // Refined Tights[1] 2376, // Assaulter Plate[1] 2377, // Elite Engineer Armor[1] 2378, // Assassin Robe[1] 2379, // Warlock Battle Robe[1] 2380, // Robe of Order[1] 2381, // Elite Archer Suit[1] 2382; // Elite Shooter Suit[1] 17108; // Your Current Armor And i have warning that ia have no 20110, // Meteo Plate[1] 20052, // Orlean's Uniform[1] 17161, // Diabolus Robe[1] 17033, // Diabolus Armor[1] in my database... And one more thing: make this line } else if (@porcentaje >= 11 && @porcentaje <= 10) { // 1% + 10 stat X must be like this } else if (@porcentaje >= 11 && @porcentaje <= 12) { // 1% + 10 stat X
-
I take maps from this post (thx to Syouji). Coorinates can be found on script below. Left Bottom Corner: 130,129 131,129 132,129 133,129 134,129 135,129 135,128 135,127 135,126 135,125 135,124 Left Upper Corner: 130,158 131,158 132,158 133,158 134,158 135,158 130,159 130,160 130,161 130,162 130,163 Right Upper Corner: 164,163 164,162 164,161 164,160 164,159 164,158 165,158 166,158 167,158 168,158 169,158 Right Bottom Corner: 164,124 164,125 164,126 164,127 164,128 164,129 165,129 166,129 167,129 168,129 166,129 /* TODO */ /* This areas must be like under sage skill landprotector: No Damage, No Skills, Cant kill players - SAFE ZONE! */ /* 130,124 - 135,129 --- SAFE ZONE -- left bottom corner */ /* 130,158 - 135,163 --- SAFE ZONE -- left up corner */ /* 164,158 - 169,163 --- SAFE ZONE -- right up corner */ /* 164,124 - 169,129 --- SAFE ZONE -- left bottom corner */ //===== rAthena Script ======================================= //= PVP Arena //===== By: ================================================== //= Phenomena //===== Current Version: ===================================== //= 1.0 Initial Release //===== Compatible With: ===================================== //= rAthena and eAthena //===== Description: ========================================= //= 1.0 Simple Another PvP Arena //===== Additional Comments: ================================= //= 1.0 Initial Release //= for map thanks Syouji //= http://rathena.org/board/topic/79002-pvp-the-cell-games-dragon-ball-z/?hl=cell_game //= for some help with script to: Khazou, Emistry //= feel free and do what you want //= P.S I'm newbie in scripting, so will trying make more intresting events, and trained my script skills //= P.S.S Sorry for english //============================================================ prontera,155,180,4 script Arena Battle Manager 100,{ set .@arena_manager$,"^A14742[ Arena Battle Manager ]^000000"; set .menu_list$, "Public Arena #1 - " + getmapusers( "pvp_arena01" ) + " / 40:Public Arena #2 - " + getmapusers( "pvp_arena02" ) + " / 40:Public Arena #3 - " + getmapusers( "pvp_arena03" ) + " / 40:Cancel"; if( getgmlevel() >= 60 ) set .menu_list$, .menu_list$ + ":Administration Panel"; set .gm_access_lvl, 60; mes .@arena_manager$; mes "^FF0000Its testing script, and not working fully!^000000"; next; mes .@arena_manager$; mes "If you have any stack - just make relog. If you have no pvp maps, dont worry, you will be warped to your last save point!"; emotion 18; next; switch( select( .menu_list$ )) { case 1: goto #public_arena_one; end; case 2: goto #public_arena_two; end; case 3: goto #public_arena_three; end; case 4: goto #end_conversation; end; case 5: goto #Administration; end; } #Administration: mes .@arena_manager$; mes "You now in the Administration Menu. This menu is under constraction..."; next; mes .@arena_manager$; mes "Thanks for understanding..."; mes " "; close; #public_arena_one: mes .@arena_manager$; mes "Public Arena #1 allow you fight with 40 players. Its simple arena where all buffs allowed. Also this arena have some NPC Helpers, that can give you buff..."; mes " "; mes "At that moment " + getmapusers( "pvp_arena01" ) + " users on arena."; if( getmapusers( "pvp_arena01" ) >= 40 ) { mes "Arena is full."; close; } mes "You can enter arena now."; next; if( select( "GO", "Cancel" ) == 2 ) close; // Again check, maybe someone read faster than you . if( getmapusers( "pvp_arena01" ) >= 40 ) { mes "Arena is full. maybe someone read text below faster than you, try to use another arena, thank you."; close; } close2; switch( rand( 4 ) ) { case 0: warp "pvp_arena01", 132, 126; end; // Corner 1 case 1: warp "pvp_arena01", 167, 126; end; // Corner 2 case 2: warp "pvp_arena01", 132, 160; end; // Corner 3 case 3: warp "pvp_arena01", 167, 160; end; // Corner 4 } end; /* TODO */ /* This areas must be like under sage skill landprotector: No Damage, No Skills, Cant kill players - SAFE ZONE! */ /* 130,124 - 135,129 --- SAFE ZONE -- left bottom corner */ /* 130,158 - 135,163 --- SAFE ZONE -- left up corner */ /* 164,158 - 169,163 --- SAFE ZONE -- right up corner */ /* 164,124 - 169,129 --- SAFE ZONE -- left bottom corner */ #public_arena_two: mes .@arena_manager$; mes "Public Arena #2 allow you fight with 40 players. Its simple arena where all buffs allowed. But this arena have no NPC Helpers, that can give you buff..."; mes " "; mes "At that moment " + getmapusers( "pvp_arena01" ) + " users on arena."; if( getmapusers( "pvp_arena02" ) >= 40 ) { mes "Arena is full."; close; } mes "You can enter arena now."; next; if( select( "GO", "Cancel" ) == 2 ) close; // Again check, maybe someone read faster than you . if( getmapusers( "pvp_arena02" ) >= 40 ) { mes "Arena is full. maybe someone read text below faster than you, try to use another arena, thank you."; close; } close2; switch( rand( 4 ) ) { case 0: warp "pvp_arena02", 132, 126; end; // Corner 1 case 1: warp "pvp_arena02", 167, 126; end; // Corner 2 case 2: warp "pvp_arena02", 132, 160; end; // Corner 3 case 3: warp "pvp_arena02", 167, 160; end; // Corner 4 } end; #public_arena_three: mes .@arena_manager$; mes "Public Arena #3 allow you fight with 40 players. Its simple arena, but have no NPC Helpers restrictions to use buffs, pots and etc - like hard mode arena."; mes " "; mes "At that moment " + getmapusers( "pvp_arena03" ) + " users on arena."; if( getmapusers( "pvp_arena03" ) >= 40 ) { mes "К сожалению, арена переполнена. Попробуйте воспользоваться ею когда там освободиться место, зарезервируйте место либо воспользуйтесь другой публичной ареной."; close; } mes "You can enter arena now."; next; if( select( "GO", "Cancel" ) == 2 ) close; // Again check, maybe someone read faster than you . if( getmapusers( "pvp_arena03" ) >= 40 ) { mes "Arena is full. maybe someone read text below faster than you, try to use another arena, thank you."; close; } close2; sc_end SC_ALL; switch( rand( 4 ) ) { case 0: warp "pvp_arena03", 132, 126; end; // Corner 1 case 1: warp "pvp_arena03", 167, 126; end; // Corner 2 case 2: warp "pvp_arena03", 132, 160; end; // Corner 3 case 3: warp "pvp_arena03", 167, 160; end; // Corner 4 } end; #end_conversation: mes .@arena_manager$; mes "Thank you."; close; OnInit: end; } // ================================ Duplicate ================================ pvp_arena01,130,124,8 script Arena Helper#p_a01 100,{ set .@arena_helper$,"^A14742[ Arena Helper ]^000000"; // Not implemented -- set .helper_menu$, "Blessing 10 Уровень:Increase Agility 10 Уровень:Restore HP and SP:Close"; mes "Hello!"; mes " "; mes "All my buffs allowed only on this arena, after exit they will be canceled."; mes " "; sc_start SC_BLESSING,240000,10; // Blessing 10 Level specialeffect2 42; sc_start SC_INCREASEAGI,240000,10; // Increase Agility 10 Level specialeffect2 43; percentheal 100,100; // Restore full HP and SP close; } pvp_arena01,130,163,5 duplicate(Arena Helper#p_a01) Arena Helper#p_a02 100 pvp_arena01,169,163,4 duplicate(Arena Helper#p_a01) Arena Helper#p_a03 100 pvp_arena01,169,124,1 duplicate(Arena Helper#p_a01) Arena Helper#p_a04 100 // ================================ OnPCKillEvent & OnPCDieEvent & OnPCLogoutEvent ================================ - script pvp_arena01#OnPCEvents -1,{ OnPCDieEvent: getmapxy (.@map$, .@x, .@y, 0); if(.@map$ == "pvp_arena01") { if( select( "Return to Save Zone:Back to Save Point" ) == 1 ) { warp "pvp_arena01",133,126; percentheal 100,100; specialeffect2 325; specialeffect2 83; end; } warp "SavePoint",0,0; } end; OnPCKillEvent: getmapxy (.@map$, .@x, .@y, 0); if( .@map$ == "pvp_arena01" ) { set .@killer_name$,strcharinfo(0); set .@killed_name$,rid2name(killedrid); switch( rand( 4 )) { case 0: mapannounce "pvp_arena01",""+.@killer_name$+" just kill "+.@killed_name$+".",1,0xD6A4E6; end; case 1: mapannounce "pvp_arena01",""+.@killer_name$+" destroyed "+.@killed_name$+".",1,0xD6A4E6; end; case 2: mapannounce "pvp_arena01",""+.@killer_name$+" ahinilated "+.@killed_name$+".",1,0xD6A4E6; end; case 3: mapannounce "pvp_arena01",""+.@killer_name$+" send to heaven "+.@killed_name$+".",1,0xD6A4E6; end; } } end; } - script pvp_arena02#OnPCEvents -1,{ OnPCDieEvent: getmapxy (.@map$, .@x, .@y, 0); if(.@map$ == "pvp_arena02") { if( select( "Return to Save Zone:Back to Save Point" ) == 1 ) { warp "pvp_arena02",133,126; percentheal 100,100; end; } warp "SavePoint",0,0; } end; OnPCKillEvent: getmapxy (.@map$, .@x, .@y, 0); if( .@map$ == "pvp_arena02" ) { set .@killer_name$,strcharinfo(0); set .@killed_name$,rid2name(killedrid); switch( rand( 4 )) { case 0: mapannounce "pvp_arena01",""+.@killer_name$+" just kill "+.@killed_name$+".",1,0xD6A4E6; end; case 1: mapannounce "pvp_arena01",""+.@killer_name$+" destroyed "+.@killed_name$+".",1,0xD6A4E6; end; case 2: mapannounce "pvp_arena01",""+.@killer_name$+" ahinilated "+.@killed_name$+".",1,0xD6A4E6; end; case 3: mapannounce "pvp_arena01",""+.@killer_name$+" send to heaven "+.@killed_name$+".",1,0xD6A4E6; end; } } end; } // ================================ Mapflags ================================ // No Return pvp_arena01 mapflag noreturn pvp_arena02 mapflag noreturn pvp_arena03 mapflag noreturn // No Teleport pvp_arena01 mapflag noteleport pvp_arena02 mapflag noteleport pvp_arena03 mapflag noteleport // No Save pvp_arena01 mapflag nosave pvp_arena02 mapflag nosave pvp_arena03 mapflag nosave // No Memo pvp_arena01 mapflag nomemo pvp_arena02 mapflag nomemo pvp_arena03 mapflag nomemo // No Trade pvp_arena01 mapflag notrade pvp_arena02 mapflag notrade pvp_arena03 mapflag notrade // No Drop pvp_arena01 mapflag nodrop pvp_arena02 mapflag nodrop pvp_arena03 mapflag nodrop // No Chat pvp_arena01 mapflag nochat pvp_arena02 mapflag nochat pvp_arena03 mapflag nochat // No Vending pvp_arena01 mapflag novending pvp_arena02 mapflag novending pvp_arena03 mapflag novending // No Penalty pvp_arena01 mapflag nopenalty pvp_arena02 mapflag nopenalty pvp_arena03 mapflag nopenalty // No Branch pvp_arena01 mapflag nobranch pvp_arena02 mapflag nobranch pvp_arena03 mapflag nobranch // PvP pvp_arena01 mapflag pvp pvp_arena02 mapflag pvp pvp_arena03 mapflag pvp // Clouds pvp_arena01 mapflag clouds pvp_arena02 mapflag clouds pvp_arena03 mapflag clouds