-
Posts
2407 -
Joined
-
Last visited
-
Days Won
52
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Capuche
-
Check the header, there are space instead of tab
-
This check is not significant. No need to add it
-
Remove x2 set GuessNDelay, gettimetick(2) + 3;
-
1/ Add +"" in compare function to avoid warning compare( ""+ getarg 2/ case 1: callsub OnBuyItem,501,500,500,"S#VOTEPOINTS",2383,1; S#VOTEPOINTS should be #VOTEPOINTS
-
Try this - script KoE -1,{ OnInit: disablenpc "The King#KoE"; sleep 1; disablenpc "gefg02-1"; disablenpc "gefg01-1"; end; OnWhisperGlobal: if ( getgmlevel() < 99 ) end; else if ( compare ( @whispervar0$, "on" ) ) goto L_start; else if ( compare ( @whispervar0$, "off" ) ) goto L_end; else end; L_end: OnClock1800: announce "The King of Emperium Hill is over!", 0; set .koe_start, 0; disablenpc "The King#KoE"; killmonsterall "gefg_cas01"; donpcevent "Reward#KoE::Onresetreward"; end; L_start: OnClock1700: donpcevent "The King#KoE::OnReset"; announce "The King of Emperium Hill has begun!", 0; set .koe_start, 1; enablenpc "The King#KoE"; disablenpc "Reward#KoE"; set $koegid, 0; donpcevent "::OnRevKoE"; maprespawnguildid "gefg_cas01", $koegid, 6; monster "gefg_cas01",197,182,"EMPERIUM",1288,1,"KoE::OnEmpDead"; end; OnEmpDead: set $koegid, getcharid(2); announce "The current King of Emperium Hill is the [" + strcharinfo(2) + "] guild.", 0; donpcevent "::OnRevKoE"; maprespawnguildid "gefg_cas01", $koegid, 6; sleep 500; if ( .koe_start ) monster "gefg_cas01",197,182,"EMPERIUM",1288,1,"KoE::OnEmpDead"; end; } // KoE Entrance prontera,155,191,4 script The King#KoE 58,{ mes "[The King]"; if ( getcharid(2) == 0 ) { mes "You must have a guild to participate in the ^FF0000King of Emperium Hill Tournament^000000."; close; } mes "Hello."; mes "Would you like to participate in the ^FF0000King of Emperium Hill Tournament^000000?"; if ( select ( "Yes", "No" ) == 2 ) close; warp "z_agit",168,17; while( .@i < .size_koe ) set .@i, .@i +1; if( .@i != .size_koe ) { set .koe_register[ .size_koe ], getcharid(0); set .size_koe, .size_koe +1; } end; OnReset: deletearray .koe_register; set .size_koe, 0; end; OnPCLogoutEvent: while( .@i < .size_koe ) set .@i, .@i +1; if( .@i == .size_koe ) end; deletearray .koe_register[.@i], 1; set .size_koe, .size_koe -1; end; } // KoE Reward prontera,151,191,5 script Reward#KoE 51,{ mes "[Reward]"; if ( getvariableofnpc( .koe_start, "KoE" ) ) { mes "King of Emperium Hill event is currently running"; close; } if ( getcharid(2) == $koegid ) { set .@size, getarraysize(.koe_prize); for ( set .@i, 0; .@i < .@size; set .@i, .@i +1 ) { if ( .koe_prize[.@i] == getcharid(0) ) { mes "You already received the rewards"; close; } } set .@size, getvariableofnpc( .size_koe,"The King#KoE" ); for ( set .@i, 0; .@i < .@size; set .@i, .@i +1 ) if( getvariableofnpc( .koe_register[.@i],"The King#KoE" ) == getcharid(0) ) break; if( .@i == .@size ) { mes "Not register, no prize."; close; } mes "Congratulation on becoming the winner of ^FF0000King of Emperium Hill Tournament^000000"; getitem 501, 1; // configure prize here set .koe_prize[ getarraysize(.koe_prize) ], getcharid(0); } else { mes "Your guild is not the winner of King of Emperium Hill event"; } close; Onresetreward: deletearray .koe_prize; end; } gefg_cas01,28,157,4 script King of Emperium Hill#1::custom_koe_flag 722,{ set .@gid, $koegid; if ( .@gid == 0 ) end; mes "[King of Emperium Hill]"; mes "The Current King of Emperium Hill is the ["+ getguildname(.@gid) +"] guild."; close; OnRevKoE: flagemblem $koegid; end; } gefg_cas01,22,156,5 duplicate(custom_koe_flag) King of Emperium Hill#2 722 gefg_cas01,68,185,3 duplicate(custom_koe_flag) King of Emperium Hill#3 722 gefg_cas01,17,171,5 duplicate(custom_koe_flag) King of Emperium Hill#4 722 gefg_cas01,59,16,4 duplicate(custom_koe_flag) King of Emperium Hill#5 722 gefg_cas01,64,16,4 duplicate(custom_koe_flag) King of Emperium Hill#6 722 gefg_cas01 mapflag gvg gefg_cas01 mapflag nobranch gefg_cas01 mapflag nomemo gefg_cas01 mapflag nopenalty gefg_cas01 mapflag noreturn gefg_cas01 mapflag nosave SavePoint gefg_cas01 mapflag noteleport gefg_cas01 mapflag gvg_noparty gefg_cas01 mapflag nowarp gefg_cas01 mapflag nowarpto z_agit mapflag gvg z_agit mapflag nobranch z_agit mapflag nomemo z_agit mapflag nopenalty z_agit mapflag noreturn z_agit mapflag nosave SavePoint z_agit mapflag noteleport z_agit mapflag gvg_noparty z_agit mapflag nowarp z_agit mapflag nowarpto z_agit,168,179,0 warp #to_gef_castle 1,1,gefg_cas01,99,178
-
Maximum Level Announcer
Capuche replied to TecnoCronus's topic in PvP, GvG, WoE, Battleground Script Releases
Your bug is related to if(!$Rank$) { $Rank$ is not a number, it's a string => if($Rank$ != "") { btw if you re-start the server, .numMaxLevel become 0, then the ranking is wrong -
//===== Athena Script ======================================== //= Number Guess Event NPC //===== By: ================================================== //= Masao //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= Guess the right Number and Win a Prize. //===== Additional Comments: ================================= //= Version 1.0 if there are any Bugs please let me know. //============================================================ prontera,146,168,4 script Guess The Number 77,{ set .@n$,"[Guess The Number]"; if(getgmlevel() >= 60) goto L_GMCP; if($numberguess == 1) goto L_Guess; mes .@n$; mes "مرحبا "+strcharinfo(0)+","; mes "المسابقة غير متاحة الأن"; mes "زرني في وقت لاحق ^^"; mes "فقط لتخمن أرقامي و تفذ ب جوايز"; close; L_GMCP: mes .@n$; mes "مرحبا "+strcharinfo(0)+","; mes "كيف يمكنني أن اساعدك؟ "; next; menu "ابدء المسابقة",-,"انهاء المسابقة",L_EndEv,"Set Number Range",L_Number,"Nothing.",L_End; mes "Allright the Event starts now!"; set $@guessnr,rand(1,$numberrange); set $numberguess,1; close2; announce "مسابقة تخمين الرقم قد بدئت الأن",0; end; L_EndEv: mes .@n$; mes "Allright i'll end the Event now!"; set $numberguess,0; close2; announce "انتهت المسابقة . لا فائذ",0; end; L_Number: mes .@n$; mes "ادخل الرقم الذي يمكنني التخمين منه"; mes "The Number shouldn't be lower then 10 or higher as 1000."; input @numberrange; if (@numberrange <= 9) goto L_Low; if (@numberrange >= 1001) goto L_High; set $numberrange,@numberrange; mes "ما بين 1 و "+@numberrange+"."; close; L_End: mes .@n$; mes "سلام"; close; L_Low: mes .@n$; mes "الرقم الذي خمنته قليل جدا"; close; L_High: mes .@n$; mes "الرقم الذي خمنته كبير جدا"; close; L_Guess: mes .@n$; if( GuessNDelay >= gettimetick(2) ) { mes "يجب عليك الانتظار 3 ثواني لتستطيع التخمين مجددا"; close; } mes "ادخل رقم ما بين [1 - 500] حظا موفقا^^"; input @guess; if (@guess > $@guessnr) goto L_ToHigh; if (@guess < $@guessnr) goto L_ToLow; if (@guess == $@guessnr){ set $numberguess,0; mes "مروك لقد خمنت الرقم الصحيح"; mes "ها هي جائزتك"; getitem 674,4; close2; announce strcharinfo(0)+" خمن الرقم الصحيح و فاذ بالمسابقة! شكرا لكل المشاركين !!",0; end; } L_ToHigh: mes .@n$; mes "الرقم الذي خمنته كبير جدا!!"; mes "يجب عليك الانتظار 3 ثواني لتحاول مجددا"; set GuessNDelay, gettimetick(2) + 3; close; L_ToLow: mes .@n$; mes "الرقم الذي خمنته قليل جدا!!"; mes "يجب عليك الانتظار 3 ثواني لتحاول مجددا"; set GuessNDelay, gettimetick(2) + 3; close; OnClock2100: // at 21:00 min the event start if( $numberguess ) end; // don't start the event of already on set $@guessnr, rand( 1,1000 ); // random number between 1<->1000 set $numberguess,1; // => the event start announce "your announce",0; // announce end; }
-
Like this ? - script ijninuono -1,{ OnClock0100: // at 1:00 am setmapflag "prontera",mf_noskill; end; OnClock0102: removemapflag "prontera",mf_noskill; end; } setmapflag removemapflag
-
Add OnClock2100: // at 21:00 min the event start if( $numberguess ) end; // don't start the event of already on set $@guessnr, rand( 1,1000 ); // random number between 1<->1000 set $numberguess,1; // => the event start announce "your announce",0; // announce end;
-
once and for all ?
-
merullian.gat,106,23,0 script 111,1,1,{ You forgot the npc name It's a bug. Put a sleep2 1; before unitwalk to prevent it but I will make a bug report
-
I use the last one. My version is always up-to-date.
-
I already made the change to delete items in the inventory of online players in the previous post (forgot to tell this)
-
From armor enchant npc Replace EQI_ARMOR with the equipment you want to enchant EQI_HEAD_TOP (1) - Upper Headear EQI_ARMOR (2) - Armor (jackets, robes) EQI_HAND_L (3) - Left hand (weapons, shields) EQI_HAND_R (4) - Right hand (weapons) EQI_GARMENT (5) - Garment (mufflers, hoods, manteaus) EQI_SHOES (6) - Footgear (shoes, boots) EQI_ACC_L (7) - Accessory 1 EQI_ACC_R (8) - Accessory 2 EQI_HEAD_MID (9) - Middle Headgear (masks, glasses) EQI_HEAD_LOW (10) - Lower Headgear (beards, some masks) EQI_COSTUME_HEAD_LOW (11) - Lower Costume Headgear EQI_COSTUME_HEAD_MID (12) - Middle Costume Headgear EQI_COSTUME_HEAD_TOP (13) - Upper Costume Headgear EQI_COSTUME_GARMENT (14) - Costume Garment And change the setting setarray .rate, 55,50,45,40,35,30,25,20,15,10; // rate of getting +1 is 55%, +2 is 50% .... +10 is 10% ...
-
if( getmapflag( strcharinfo(3),mf_gvg_castle ) ) message strcharinfo(0),"Access Denied!"; getmapflag + Mapflag#gvg_castle
-
Refer in db/const.txt for jobchange Job_Novice_High 4001 Job_Swordman_High 4002 Job_Mage_High 4003 Job_Archer_High 4004 Job_Acolyte_High 4005 Job_Merchant_High 4006 Job_Thief_High 4007 Job_Lord_Knight 4008 Job_High_Priest 4009 Job_High_Wizard 4010 Job_Whitesmith 4011 Job_Sniper 4012 Job_Assassin_Cross 4013 Job_Lord_Knight2 4014 Job_Paladin 4015 Job_Champion 4016 Job_Professor 4017 Job_Stalker 4018 Job_Creator 4019 Job_Clown 4020 Job_Gypsy 4021 Job_Paladin2 4022 Refer to atcommand + @lvup and JobLevel SkillPoint if ( select("Lord Knight", "Paladin" ) == 2 ) jobchange Job_Paladin; else jobchange Job_Lord_Knight; atcommand "@lvup 99"; JobLevel = 70; SkillPoint = 69; ~something like that
-
My gtb_sc_immunity: 50 4128,Golden_Bug_Card,Golden Thief Bug Card,6,20,,10,,,,,,,,32,,,,,{ bonus bNoMagicDamage,70; bonus bUseSPrate,70; },{},{} 70% resist magic, I cannot be dispelled, cannot buff (agi, bless etc. ) I believe you mean 70% resist, -70% => more damage
-
31271,lhz,lhz,5,20,,100,,0,,0,0xFFFFFFFF,7,2,512,,0,0,1114,{ bonus EF_FASTMOVE,2; },{},{} bonus EF_FASTMOVE,2; is the unknow type.
-
prontera,154,150,5 script Hunter Register 87,{ function isinlist; //return the index of the player in the list ; -1 if not function newtarget; // set a new target in the online character list function initArrayNumber; // initialize an array size 128 ; each column is incremented +1 starting to 1 function initOnlineArray; // copy data of players register online in some array + warp players function PlayerGetReward; // give a reward for each player online PO ; disabled fakename function dispatchAllTarget; // give a target for each PO function sortPointArray; // sort the online array order by point function deleteAllVar; // delete all variables unused function AddPoint; // add/remove hunters points mes .npc_name$; mes "Wanna register in the hunter event ?"; next; if ( prompt( ( .start == 2 ? "^777777~ Warp on event map^000000" : "" ), ( .start == 1 ? "^777777~ Register ?^000000" : "" ), "^777777~ About the event^000000", ( getgmlevel() > 59 ? "^FF0000[GM] Start/Stop Event^000000" : "" ) ) == 3 ) { mes .npc_name$; mes "Every 4 hours.. Wait 10 mins... battle..."; close; } else if ( @menu == 4 ) { // gm menu if ( .start ) select ( "Stop the event ?" ); else select ( "Start the event ?" ); if ( .start ) awake strnpcinfo(0); else goto OnHour20; end; } else if ( .size_array_init > 127 && @menu == 2 ) { mes .npc_name$; mes "The event queue is full"; close; } else if ( isinlist( ".list_init_cid", ".size_array_init" ) != -1 ) { if ( @menu == 1 ) { warp .event_map$,0,0; end; } mes .npc_name$; mes "You're already on my list"; close; } else if ( @menu == 1 ) end; else if ( @menu == 2 ) { .list_init_cid[ .size_array_init ] = getcharid(0); .list_init_aid[ .size_array_init ] = getcharid(3); .@i = rand( .size_num ); .dispatch_num_init[ .size_array_init ] = .num[.@i]; deletearray .num[.@i], 1; .size_array_init++; .size_num--; message strcharinfo(0),"You're now on the list."; } end; OnHour00: OnHour04: OnHour08: OnHour12: OnHour16: OnHour20: initArrayNumber(); // initialize array to dispatch number to player .start = 1; initnpctimer; announce "[ Hunter Event ] : The event will start in 10 min !",0; end; OnTimer600000: // 10 mins announce "[ Hunter Event ] : Event start.",0; .start = 2; stopnpctimer; initOnlineArray(); bindatcmd "hunter",strnpcinfo(3)+"::OnAtcommand"; if ( .size_online >= .min_player ) { for ( .@i = 0; .@i < .size_mapflag; .@i++ ) setmapflag .event_map$, .mapflag[.@i]; dispatchAllTarget(); sleep 900000; // 15 mins } sortPointArray(); PlayerGetReward(); deleteAllVar(); unbindatcmd "hunter"; announce "[ Hunter Event ] : End of event.",0; mapwarp .event_map$,"prontera",150,150; for ( .@i = 0; .@i < .size_mapflag; .@i++ ) removemapflag .event_map$, .mapflag[.@i]; end; OnPCLoginEvent: if ( !.start ) end; .@index = isinlist( ".list_init_cid", ".size_array_init" ); if( .@index == -1 && strcharinfo(3) == .event_map$ ) { warp "prontera",0,0; end; } else if( .@index == -1 ) end; atcommand "@fakename [ "+ .dispatch_num_init[ .@index ] +" ] "+ strcharinfo(0) ; .list_cid_online[ .size_online ] = getcharid(0); .list_aid_online[ .size_online ] = getcharid(3); .dispatch_num_online[ .size_online ] = .dispatch_num_init[ .@index ]; .size_online++; newtarget(); end; OnPCLogoutEvent: if ( !.start ) end; .@index = isinlist( ".list_cid_online", ".size_online" ); if( .@index == -1 ) end; if ( .malus_logout ) AddPoint( getcharid(0), -1, 0, -1, .malus_logout ); // if getarg(1) == -1 or getarg(2) == -1 => add getarg(4) * getarg(3) points .@num_ = .dispatch_num_online[ .@index ]; deletearray .list_cid_online[ .@index ], 1; deletearray .list_aid_online[ .@index ], 1; deletearray .dispatch_num_online[ .@index ], 1; deletearray .target_online[ .@index ], 1; .size_online--; if( .size_online < 2 ) awake strnpcinfo(0); for ( .@i = 0; .@i < .size_online; .@i++ ) if ( .target_online[.@i] == .@num_ ) newtarget( .@i ); end; OnPCKillEvent: if ( !.start ) end; .@index = isinlist( ".list_cid_online", ".size_online" ); if( .@index == -1 ) end; .@char_id = getcharid(0); attachrid( killedrid ); .@index2 = isinlist( ".list_cid_online", ".size_online" ); if( .@index2 == -1 ) end; AddPoint( getcharid(0), .@index, .@index2, -1 ); // <target>, <index online killer IO>, <IO Killed>, <rate points> .@main = AddPoint( .@char_id, .@index, .@index2, 1 ); if ( .@main == .point_main ) newtarget( .@index ); sortPointArray(); for ( .@i = 0; .@i < .size_online; .@i++ ) if ( .count_point_online[.@i] >= 30 ) { .@num_winner++; if ( .@num_winner == 5 ) { awake strnpcinfo(0); end; } } doevent strnpcinfo(0) +"::OnRezu"; end; OnRezu: sleep2 3000; warp .event_map$,0,0; percentheal 100,100; end; function AddPoint { .@i = isinlist( ".list_init_cid", ".size_array_init", getarg(0) ); if ( getarg(1) == -1 || getarg(2) == -1 ) .@points = getarg( 4,0 ) * getarg(3); else if( .target_online[ getarg(1) ] == .dispatch_num_online[ getarg(2) ] ) .@points = .point_main * getarg(3); else .@points = .point_others * getarg(3); .count_point[.@i] = .count_point[.@i] + .@points; message rid2name( .list_init_aid[.@i] ), "You have "+ .@points +" Hunters points. Total : "+ .count_point[.@i] +" Hunters points"; return .@points; } function deleteAllVar { .size_array_init = .start = .size_num = .size_online = 0; deletearray .list_cid_online; deletearray .list_aid_online; deletearray .dispatch_num_online; deletearray .num; deletearray .list_init_cid; deletearray .dispatch_num_init; deletearray .count_point; deletearray .count_point_online; deletearray .target_online; return; } function dispatchAllTarget { for( .@i = 0; .@i < .size_online; .@i++ ) { newtarget( .@i ); charcommand "#fakename "+ rid2name( .list_aid_online[.@i] ) +" [ "+ .dispatch_num_online[.@i] +" ] "+ rid2name( .list_aid_online[.@i] ) ; } return; } function isinlist { if ( getarg( 2,0 ) ) .@char_id = getarg( 2,0 ); else .@char_id = getcharid(0); while( .@i < getd( getarg(1) ) && getd( getarg(0) +"[" + .@i + "]" ) != .@char_id ) .@i++; if( .@i == getd( getarg(1) ) ) return -1; return .@i; } function initArrayNumber { for( .@i = 0; .@i < 128; .@i++ ) .num[.@i] = .@i +1; .size_num = 128; return; } function initOnlineArray { for ( .@i = 0; .@i < .size_array_init; .@i++ ) if( isloggedin( .list_init_aid[.@i], .list_init_cid[.@i] ) ) { .list_cid_online[ .size_online ] = .list_init_cid[.@i]; .list_aid_online[ .size_online ] = .list_init_aid[.@i]; .dispatch_num_online[ .size_online ] = .dispatch_num_init[.@i]; warpchar .event_map$,0,0,.list_cid_online[ .size_online ]; .size_online++; } return; } function newtarget { if( getarg( 0,-1 ) == -1 ) .@index = isinlist( ".list_cid_online", ".size_online" ); else .@index = getarg( 0,-1 ) ; do .@r = rand( .size_online ); while( .@r == .@index ); .target_online[ .@index ] = .dispatch_num_online[.@r]; message rid2name( .list_aid_online[ .@index ] ), .list_cid_online[ .@index ] +" Your main target is now number [ "+ .target_online[ .@index ] +" ]"; return; } function PlayerGetReward { for ( .@i = 0; .@i < .size_online; .@i++ ) { charcommand "#fakename "+ rid2name( .list_aid_online[.@i] ) ; for ( .@j = 0; .@j < .size_reward; .@j += 3 ) { if( .count_point_online[.@i] >= .reward[.@j] ) { getitem .reward[.@j+1], .reward[.@j+2], .list_aid_online[.@i]; break; } } } return; } function sortPointArray { deletearray .count_point_online; for ( .@i = 0; .@i < .size_online; .@i += 1 ) { .@index = isinlist( ".list_init_cid", ".size_array_init", .list_cid_online[.@i] ); .count_point_online[.@i] = .count_point[ .@index ]; } .@k_size = .size_online; while ( .@k_size ) { .@test = .count_point_online; .@index = 0; for ( .@i = 1; .@i < .@k_size; .@i += 1 ) if ( .@test < .count_point_online[.@i] ) { .@test = .count_point_online[.@i]; .@index = .@i; } .@save_point[.@k] = .count_point_online[ .@index ]; .@save_aid[.@k] = .list_aid_online[ .@index ]; .@save_cid[.@k] = .list_cid_online[ .@index ]; .@save_dispatch_num[.@k] = .dispatch_num_online[ .@index ]; .@save_target[.@k] = .target_online[ .@index ]; deletearray .count_point_online[ .@index ], 1; deletearray .list_aid_online[ .@index ], 1; deletearray .list_cid_online[ .@index ], 1; deletearray .dispatch_num_online[ .@index ], 1; deletearray .target_online[ .@index ], 1; .@k_size = .@k_size -1; .@k += 1; } copyarray .count_point_online, .@save_point, .size_online; copyarray .list_aid_online, .@save_aid, .size_online; copyarray .list_cid_online, .@save_cid, .size_online; copyarray .dispatch_num_online, .@save_dispatch_num, .size_online; copyarray .target_online, .@save_target, .size_online; return; } OnInit: .npc_name$ = "^ff0000- [ Hunter NPC ] -^000000"; .malus_logout = 3; // num malus points if log out ? (0: disabled) .point_main = 3; // points when killing main target / - points for main killed .point_others = 1; // points when killing others targets .event_map$ = "geffen"; // event map .min_player = 10; // number min players to start setarray .reward, 30, 501, 1, // Typo : <points min>, <item ID>, <amount items> 29, 502, 1, 19, 503, 1, 9, 504, 1, 1, 505, 1; // Don't touch // ----------- .size_reward = getarraysize( .reward ); setarray .mapflag, mf_noreturn, mf_nowarp, mf_noteleport, mf_nowarpto, mf_pvp; .size_mapflag = getarraysize( .mapflag ); for( ; .@i < .size_mapflag; .@i++ ) removemapflag .event_map$, .mapflag[.@i]; end; OnAtcommand: if ( !.start ) end; .@index = isinlist( ".list_cid_online", ".size_online" ); if( .@index == -1 ) end; sortPointArray(); .@size = .size_online > 30 ? 30 : .size_online ; dispbottom "Top 30 Hunters Online - { Name : Hunters Points }"; for ( .@i = 0; .@i < .@size; .@i += 1 ) dispbottom rid2name( .list_aid_online[.@i] ) +" : "+ .count_point_online[.@i]; end; } GM can start/stop the event Start => 10 mins to register => 10 players minimum => warp on event map Players register have an unique number on the name. ie. [ 10 ] Capuche players have randomly a main target : 3 hunters points if the target is killed, 1 point if not main target killed players have malus points if log out/ log in 5 players (online or offline) with 30 points or 15 min after => end of event reward by range of points @hunter command to check the points of players online during the event (enabled just for players in event) Put your setting at the end of the script .npc_name$ = "^ff0000- [ Hunter NPC ] -^000000"; .malus_logout = 3; // num malus points if log out ? (0: disabled) .point_main = 3; // points when killing main target / - points for main killed .point_others = 1; // points when killing others targets .event_map$ = "geffen"; // event map .min_player = 10; // number min players to start setarray .reward, 30, 501, 1, // Typo : <points min>, <item ID>, <amount items> 29, 502, 1, 19, 503, 1, 9, 504, 1, 1, 505, 1;
-
- script skull -1,{ OnPCKillEvent: // anti-suicide, can remove if( killedrid == getcharid(3) ) end; // don't loot in this map if( ! compare( .ALLOW_MAP$, ";" + strcharinfo(3) + ";" ) ) end; set .@size, getarraysize(@SKULL_LOOT_AID); set .@ok, 1; while ( .@i < .@size ) { if ( @SKULL_LOOT_DELAY[.@i] < gettimetick(1) ) { deletearray @SKULL_LOOT_DELAY[.@i], 1; deletearray @SKULL_LOOT_AID[.@i], 1; set .@size, .@size-1; continue; } if ( @SKULL_LOOT_AID[.@i] == killedrid ) set .@ok, 0; set .@i, .@i+1; } set @SKULL_LOOT_DELAY[.@size], gettimetick(1) + .SKULL_DELAY; set @SKULL_LOOT_AID[.@size], killedrid; if ( .@ok ) getnameditem( .SKULL_ID, rid2name(killedrid) ); query_sql "insert into `char_pk` (`char_id`, `kill_count`, `death_count`, `score`) values ('"+ getcharid(0) +"', '1', '0', '1') on duplicate key update `kill_count` = `kill_count` +1, `score` = `score` +1"; attachrid killedrid; query_sql "insert into `char_pk` (`char_id`, `kill_count`, `death_count`, `score`) values ('"+ getcharid(0) +"', '0', '1', '-1') on duplicate key update `death_count` = `death_count` +1, `score` = `score` -1"; end; OnInit: // Configs set .SKULL_ID , 7420 ; set .SKULL_DELAY , 120 ; // seconds. setarray .@allow_map$, "ivory_pvp"; // Building a Quick Search function for ( set .@size, getarraysize(.@allow_map$); .@i<.@size; set .@i,.@i+1 ) set .ALLOW_MAP$, .ALLOW_MAP$ + ";" + .@allow_map$[.@i]; set .ALLOW_MAP$, .ALLOW_MAP$ + ";"; end; } I just add query_sql "insert into `char_pk` (`char_id`, `kill_count`, `death_count`, `score`) values ('"+ getcharid(0) +"', '1', '0', '1') on duplicate key update `kill_count` = `kill_count` +1, `score` = `score` +1"; attachrid killedrid; query_sql "insert into `char_pk` (`char_id`, `kill_count`, `death_count`, `score`) values ('"+ getcharid(0) +"', '0', '1', '-1') on duplicate key update `death_count` = `death_count` +1, `score` = `score` -1"; update the score +1, kill_count +1 each kill and score -1, death_count +1 for the killed
-
You can't delete an item in the inventory of player online by sql prontera,150,145,0 script Delete 100,{ set .@GMLevel,99; set .@npc$,strnpcinfo(1); if (getgmlevel() < .@GMLevel) close; mes .@npc$; mes "Input the item id"; next; input .@id; next; if (getitemname(.@id) == "") { mes .@npc$; mes "Invalid id number"; close; } mes .@npc$; mes "So, you want to delete " +getitemname(.@id)+ "?"; next; if (select("- Yes:- No") - 1) close; mes .@npc$; mes "Processssinnggg..."; next; .@self = getcharid(3); query_sql("DELETE FROM `auction` WHERE `nameid` = '" +.@id+ "'"); query_sql("DELETE FROM `cart_inventory` WHERE `nameid` = '" +.@id+ "'"); query_sql("DELETE FROM `guild_storage` WHERE `nameid` = '" +.@id+ "'"); query_sql("DELETE i FROM `inventory` i left join `char` c on c.`char_id` = i.`char_id` WHERE i.`nameid` = '501' and c.`online` = '0'"); query_sql("DELETE FROM `mail` WHERE `nameid` = '" +.@id+ "'"); query_sql("DELETE FROM `storage` WHERE `nameid` = '" +.@id+ "'"); do { .@size = query_sql( "select `account_id` from `char` where `online` = '1' order by `account_id` desc limit "+ .@loop +", 128", .@account_id ); .@loop += 128; for ( .@i = 0; .@i < .@size; .@i += 1 ) { attachrid .@account_id[.@i]; delitem .@id, countitem( .@id ); } } while( .@size > 0 ); attachrid .@self; mes .@npc$; mes "Done!"; close; } Storage etc.. will be update after the player log out log in
-
Your request is ~similar to Guess password
-
It will give a reward to the 100th IP, 200th, 300th...
-
Ha yes I didn't make the translation, there is some change. My apologies ! Update follow up r17296 always on the same pastebin http://pastebin.com/pbTCRamh
-
Replace too mes "You only have "+countitem($QuestItem1HM)+" of ^FF0000"+getitemname($QuestItem1)+"^000000, "+countitem($QuestItem2HM)+" of ^FF0000"+getitemname($QuestItem2)+"^000000, "+countitem($QuestItem3HM)+" of ^FF0000"+getitemname($QuestItem3)+"^000000."; by mes "You only have "+countitem($QuestItem1)+" of ^FF0000"+getitemname($QuestItem1)+"^000000, "+countitem($QuestItem2)+" of ^FF0000"+getitemname($QuestItem2)+"^000000, "+countitem($QuestItem3)+" of ^FF0000"+getitemname($QuestItem3)+"^000000.";