Jump to content

Capuche

Developer
  • Posts

    2407
  • Joined

  • Last visited

  • Days Won

    52

Everything posted by Capuche

  1. Check the header, there are space instead of tab
  2. This check is not significant. No need to add it
  3. Remove x2 set GuessNDelay, gettimetick(2) + 3;
  4. 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
  5. 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
  6. 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
  7. //===== 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; }
  8. Like this ? - script ijninuono -1,{ OnClock0100: // at 1:00 am setmapflag "prontera",mf_noskill; end; OnClock0102: removemapflag "prontera",mf_noskill; end; } setmapflag removemapflag
  9. 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;
  10. 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
  11. I use the last one. My version is always up-to-date.
  12. Capuche

    Who can

    I already made the change to delete items in the inventory of online players in the previous post (forgot to tell this)
  13. 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% ...
  14. if( getmapflag( strcharinfo(3),mf_gvg_castle ) ) message strcharinfo(0),"Access Denied!"; getmapflag + Mapflag#gvg_castle
  15. 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
  16. 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
  17. 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.
  18. 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;
  19. - 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
  20. Capuche

    Who can

    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
  21. Your request is ~similar to Guess password
  22. It will give a reward to the 100th IP, 200th, 300th...
  23. 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
  24. 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.";
×
×
  • Create New...