Jump to content

AinsLord

Members
  • Posts

    758
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by AinsLord

  1. i already changed the files on my grf still no changes on the aura effect please help
  2. nothing follows after i typed that command well thnx for all your help guys ill try to figure this thing up ill bump here sometime if i got some more questions
  3. or if you are gm use @mount2 command to have it
  4. what do u mean by mount in all jobs?? are you talking about then lion mount for knight class etc?
  5. help me please to modify this for this one equipment for normal monster will be at 10% and for boss/MVP will be 5% // The rate at which equipment is dropped. item_rate_equip: 1000 item_rate_equip_boss: 2500 item_rate_equip_mvp: 100 item_drop_equip_min: 1 item_drop_equip_max: 5000 and for this one cards for normal monsters will be 20% and for boss/MVP will be 5% // The rate at which cards are dropped item_rate_card: 100000 item_rate_card_boss: 10000 item_rate_card_mvp: 50000 item_drop_card_min: 100 item_drop_card_max: 10000 ive tried my best to modify this but i cant every mobs shows different % of droprates please help me PS: i dunno if the Title is informative i kept on receiving warning for uninformative title for it T_T
  6. thnx mate i tried to remove getrefine(d)>8 it worked thnx
  7. ,4,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,1,1,618,{ bonus2 bSubEle,Ele_Fire,7; bonus bDex,2; bonus bMdef,3;} if(getrefine()>6) { bonus bCastrate,-3;} if(getrefine()>7) { bonus5 bAutoSpell,"WZ_SIGHTRASHER",1,10,BF_MAGIC,0;} if(getrefined()>8) { bonus bCastrate,-2;} if(getrefine()>9) { bonus bMatkRate,4;} },{},{} the if(getrefine()>9) { bonus bMatkRate,4;} doesnt apply what i mean is the matk doesnt increase after i made the gear +10
  8. all maps are full all of it even there is a 0/50 capacity it will say room is full as far as i know this arrays are // Max Players Per Map setarray .MaxPlayers,0,50,10,36,50; based on this map arrays and 0 will be no limit setarray .MapName$,"guild_vs1","guild_vs2","guild_vs3","guild_vs4","guild_vs5"; ive tried already to set it at 100 all of those number still same proble no errors on the console or script
  9. yea thats what i did 1st this one said it was invalid spec : 'www-data:' chown -R www-data: /var/www/html 2nd this one nothing follows after i typed that chmod -R 755 /var/www/html
  10. this is shown after i typed those commands ive tried it with sudo still same
  11. sorry for double posting accidentally clicked the submit button
  12. this is what is shown after configuring server.php and the application did is do something wrong??
  13. lemme try this sorry akkarin im having net issue i dunno i posted 2 bumps im suppose to edit my latest post EDIT: is this correct??? i made a sub folder in var/www/http or i just paste the whole fluxCP file inside HTTP folder???
  14. and yea i already have apache installed in my VPS EDIT: it will show like this if you have apache installed ryt??
  15. thnx ill try this EDIT: is this correct?? this is my folder structure now and i tried IP/foldername no show do i need to do something else?
  16. yes sir im trying to input the IP still the apache is showing
  17. all this files sir?? Edit : i already edited the application and server php i created folder after /www/
  18. do i need to create a sub folder after www?
  19. where should i put the flux CP files in my VPS?? and any guide for installing it?? sorry kinda newbie with this
  20. //===== EinherjarRo Scripts ================================== //= PvP Ladder //===== Author =============================================== //= Stolao //===== Current Version: ===================================== //= 3.00 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= // Configurable Pvp Ladder //===== Comments: ============================================ //= [Stolao] //===== Additional Comments: ================================= //= 3.00 Overhaul //= 3.01 Fixed missing "No" for "No Ygg" //= 3.02 Added Show Map Name Option //= 3.03 Added Max Players Option //===== Todo: ================================================ //= Condence repeat queries //===== Contact Ifo: ========================================= //= [Stolao] // Email: [email protected] //============================================================ prontera,167,204,2 script Ladder 837,{ OnPvpLadder: mes "[Ranking]"; .@i = select(((getarraysize(.MapName$))?"Enter PvP Map:":":")+ ((.Options&1)?"Pvp Ladder:":":")+ ((.Options&2)?"GvG Ladder:":":")+ ((.Options&8)?"Top Guild:":":")+ ((.Options&16)?"PvP Shops:":":")+ ((.Options&1 || .Options&2 || .Options&8)?"Personal Stats:":":")+ ((getgmlevel() >= 99)?"Reset PVP Stats":"")); switch(.@i){ case 2: if(.Options&256){ if(.Option&128){ query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'm_kda' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 10",.@cid,.@value); } else query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'kda' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 10",.@cid,.@value); for(.@x = 0; .@x < getarraysize(.@cid); .@x++) { query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@x]+";",.@j$); .@name$[.@x] = .@j$; } next; mes "~ ^990000"+((.Options&128)?"Monthly ":"") +"PvP Ladder^000000 ~"; if (!getarraysize(.@cid)){ mes "The rankings are empty."; } else { for(.@i = 0; .@i<getarraysize(.@cid); .@i++){ mes "#"+(.@i+1)+" ^0000FF"+.@name$[.@i]+"^000000 "+.@value[.@i]; } } } else { if(.Option&128){ query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'm_pkcount' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT "+.MaxRank+"",.@cid,.@value); } else query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'pl_pkcount' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT "+.MaxRank+"",.@cid,.@value); for(.@i = 0; .@i<getarraysize(.@cid); .@i++) { query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@i]+";",.@j$); .@name$[.@i] = .@j$; if(.Option&128){ query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@x]+" AND `key` = 'm_dthcount';",.@j); } else query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@x]+" AND `key` = 'pl_dthcount';",.@j); .@Death[.@i] = .@j; } next; mes "~ ^990000"+((.Options&128)?"Monthly ":"") +"PvP Ladder^000000 ~"; if (!getarraysize(.@cid)){ mes "The rankings are empty."; } else { for(set .@i,0; .@i<getarraysize(.@cid); set .@i,.@i+1){ if((.@i+1) % 10 == 0){ mes "#"+(.@i+1)+" ^0000FF"+.@name$[.@i]+"^000000 [^00EE00"+callfunc("F_InsertPlural",.@value[.@i],"~ kill")+"] [^EE0000"+callfunc("F_InsertPlural",.@Death[.@i],"~ death")+"]"; } else next; } } } close; case 3: if(.Options&256){ if(.Option&128){ query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'm_gvg_kda' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT "+.MaxRank+"",.@cid,.@value); } else query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'gvg_kda' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT "+.MaxRank+"",.@cid,.@value); for(.@x = 0; .@x<getarraysize(.@cid); .@x++) { query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@x]+";",.@j$); .@name$[.@x] = .@j$; } mes "~ ^990000"+((.Options&128)?"Monthly ":"") +"GvG Ladder^000000 ~"; if (!getarraysize(.@cid)){ mes "The rankings are empty."; } else { for(.@i = 0; .@i<getarraysize(.@cid); .@i++){ if((.@i+1) % 10 == 0){ mes "#"+(.@i+1)+" ^0000FF"+.@name$[.@i]+"^000000 "+.@value[.@i]; } else next; } } } else { if(.Option&128){ query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'm_gvg_kcount' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT "+.MaxRank+"",.@cid,.@value); } else query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'gvg_kcount' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT "+.MaxRank+"",.@cid,.@value); for(.@i = 0; .@i<getarraysize(.@cid); .@i++) { query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@i]+";",.@j$); .@name$[.@i] = .@j$; if(.Option&128){ query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@x]+" AND `key` = 'm_gvg_dcount';",.@j); } else query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@x]+" AND `key` = 'gvg_dcount';",.@j); .@Death[.@i] = .@j; } mes "~ ^990000"+((.Options&128)?"Monthly ":"") +"GvG Ladder^000000 ~"; if (!getarraysize(.@cid)){ mes "The rankings are empty."; } else { for(set .@i,0; .@i<getarraysize(.@cid); set .@i,.@i+1){ if((.@i+1) % 10 == 0){ mes "#"+(.@i+1)+" ^0000FF"+.@name$[.@i]+"^000000 [^00EE00"+callfunc("F_InsertPlural",.@value[.@i],"~ kill")+"] [^EE0000"+callfunc("F_InsertPlural",.@Death[.@i],"~ death")+"]"; } else next; } } } close; case 4: if(.Options&256){ if(.Options&128){ query_sql("SELECT `index`, CAST(`value` AS SIGNED) FROM `global_acc_reg_num` WHERE `key` = '$M_Guild_Kda' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 10",.@gid,.@value); } else { query_sql("SELECT `index`, CAST(`value` AS SIGNED) FROM `global_acc_reg_num` WHERE `key` = '$Guild_Kda' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 10",.@gid,.@value); } } else { if(.Options&128){ query_sql("SELECT `index`, CAST(`value` AS SIGNED) FROM `global_acc_reg_num` WHERE `key` = '$M_Guild_Kills' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 10",.@gid,.@value); } else { query_sql("SELECT `index`, CAST(`value` AS SIGNED) FROM `global_acc_reg_num` WHERE `key` = '$Guild_Kills' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 10",.@gid,.@value); } } if (!getarraysize(.@gid)){ mes "The rankings are empty."; } else { for(.@i = 0; .@i < getarraysize(.@gid); .@i++){ query_sql("SELECT `value` FROM `global_acc_reg_num` WHERE `index` = "+.@gid[.@i]+";",.@j$); mes "#"+(.@i+1)+" ^0000EE["+getguildname(.@gid[.@i])+"]^000000 with [^00EE00"+callfunc("F_InsertPlural",$Guild_Kills[.@gid[.@i]],"~ kill")+"] and [^EE0000"+callfunc("F_InsertPlural",$Guild_Deaths[.@gid[.@i]],"~ death")+"]"; } } close; case 5: close2; callshop "PvP_C_Shop",1; end; case 6: next; if(.Options&1){ mes "[PvP]"; mes "Lifetime:","^00EE00"+ callfunc("F_InsertPlural",pl_pkcount,"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",pl_dthcount,"death") + ((.Options&256)?" - ^0000EE"+ kda +" Total":"") +"^000000"; if(.Options&128) mes "Monthly:","^00EE00"+ callfunc("F_InsertPlural",m_pkcount,"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",m_dthcount,"death") + ((.Options&256)?" - ^0000EE"+ m_kda +" Total":"") +"^000000"; } if(.Options&16) mes "You Have "+ getd(.PointType$) +" Spendable Points"; if(.Options&2){ if(.Options&1) next; mes "[GvG]"; mes "Lifetime:","^00EE00"+ callfunc("F_InsertPlural",gvg_kcount,"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",gvg_dcount,"death")+((.Options&256)?" - ^0000EE"+ gvg_kda +" Total":"")+"^000000"; if(.Options&128) mes "Monthly:","^00EE00"+ callfunc("F_InsertPlural",m_gvg_kcount,"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",m_gvg_dcount,"death") + ((.Options&256)?" - ^0000EE"+ m_gvg_kda +" Total":"") +"^000000"; } if(.Options&8 && getcharid(2)){ if(.Options&2 || .Options&3) next; mes "[Guild Stats]"; mes "Lifetime:","^00EE00"+ callfunc("F_InsertPlural",$Guild_Kills[getcharid(2)],"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",$Guild_Deaths[getcharid(2)],"death") + ((.Options&256)?" - ^0000EE"+ $Guild_Kda[getcharid(2)] +" Total":"")+ "^000000"; if(.Options&128) mes "Monthly:","^00EE00"+ callfunc("F_InsertPlural",$M_Guild_Kills[getcharid(2)],"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",$M_Guild_Deaths[getcharid(2)],"death") + ((.Options&256)?" - ^0000EE"+ $M_Guild_Kda[getcharid(2)] +" Total":"") +"^000000"; } close; case 7: //this can be condenced but im feeling lazy switch(select("Monthly:Lifetime")){ case 1: switch(select(((.Options&1)?"Pvp Ladder:":":") + ((.Options&2)?"GvG Ladder:":":") + ((.Options&8)?"Top Guild:":":"))){ case 1: mes "Are you sure you want to reset this the Monthly PvP Ladder?"; if(select("No:Yes")!=2) close; close2; query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_pkcount'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_kda'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'pl_dthcount'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(.@i = 0; .@i<.@size; .@i++) { // Deletes kills of online players if(attachrid(.@aid[.@i])){ m_pkcount = 0; m_kda = 0; m_dthcount = 0; } } end; case 2: mes "Are you sure you want to reset this the Monthly GvG Ladder?"; if(select("No:Yes")!=2) close; close2; query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_gvg_kcount'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_gvg_kda'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_gvg_dcount'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(.@i = 0; .@i<.@size; .@i++) { // Deletes kills of online players if(attachrid(.@aid[.@i])){ m_gvg_kcount = 0; m_gvg_kda = 0; m_gvg_dcount = 0; } } end; case 3: mes "Are you sure you want to reset this the Monthly Top Guild?"; if(select("No:Yes")!=2) close; close2; cleararray $M_Guild_Kills[0],0,getarraysize($M_Guild_Kills); cleararray $M_Guild_Kda[0],0,getarraysize($M_Guild_Kda); cleararray $M_Guild_Deaths[0],0,getarraysize($M_Guild_Deaths); end; } break; case 2: switch(select(((.Options&1)?"Pvp Ladder:":":") + ((.Options&2)?"GvG Ladder:":":") + ((.Options&8)?"Top Guild:":":"))){ case 1: mes "Are you sure you want to reset this the Lifetime PvP Ladder?"; if(select("No:Yes")!=2) close; close2; query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'pl_pkcount'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'kda'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'pl_dthcount'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(.@i = 0; .@i<.@size; .@i++) { // Deletes kills of online players if(attachrid(.@aid[.@i])){ pl_pkcount = 0; kda = 0; pl_dthcount = 0; } } end; case 2: mes "Are you sure you want to reset this the Lifetime GvG Ladder?"; if(select("No:Yes")!=2) close; close2; query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'gvg_kcount'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'gvg_kda'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'gvg_dcount'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(.@i = 0; .@i<.@size; .@i++) { // Deletes kills of online players if(attachrid(.@aid[.@i])){ gvg_kcount = 0; gvg_kda = 0; gvg_dcount = 0; } } end; case 3: mes "Are you sure you want to reset this the Lifetime Top Guild?"; if(select("No:Yes")!=2) close; close2; cleararray $Guild_Kills[0],0,getarraysize($Guild_Kills); cleararray $Guild_Kda[0],0,getarraysize($Guild_Kda); cleararray $Guild_Deaths[0],0,getarraysize($Guild_Deaths); end; } break; } close; case 1: .@m = select(implode(.MapList$,":")) - 1; if(.MapMode[.@m]&2){ mes "You are about to enter NIGHTMARE PvP, on death you will lose gear randomly."; if(select("Nevermind:Continue") == 1) close; } else if(.MapMode[.@m]&8 && (countitem(607) || countitem(608))){ mes "No "+getitemname(607)+" or "+getitemname(608)+" Allowed."; close; } else if(.MapMode[.@m]&16){ mes "No 3rd Classes Allowed."; close; } else if(.MapMode[.@m]&32){ mes "No Trans Classes Allowed."; close; } else if(getmapusers(.MapName$[.@m]) >= .MaxPlayers){ mes "Room is Full."; close; } else { announce "[ PvP Warper ] "+strcharinfo(0)+" has entered in "+((.MapMode[.@m]&1)?"GvG":"PvP")+" Room",0,((.MapMode[.@m]&1)?0x00CC99:0xEE0000); warp .MapName$[.@m],0,0; } } close; OnPCKillEvent: if(!getgmlevel() || .Options&512){ if(LastPK == killedrid) RepeatKill += 1; else { LastPK = killedrid; RepeatKill = 0; } if(.Options&4) announce "[PVP]: "+strcharinfo(0)+" has slain "+ rid2name(LastPK) + ((RepeatKill)?" for the "+callfunc("F_GetNumSuffix",RepeatKill)+" time in a row":"") +".",bc_all; if((RepeatKill < .RepeatCount && .Options&32) || !.Options&32){ if(.Options&1) pl_pkcount += 1; if(.Options&129) m_pkcount += 1; if(.Options&257) kda += 1; if(.Options&385) m_kda += 1; if(.Options&16) set getd(.PointType$), getd(.PointType$) + 1; if((getmapflag(strcharinfo(3),MF_GVG) || getmapflag(strcharinfo(3),MF_GVG_NOPARTY)) && (agitcheck() || agitcheck2()) && getcharid(2) && .Options&2){ gvg_kcount += 1; if(.Options&128) m_gvg_kcount += 1; if(.Options&256) gvg_kda += 1; if(.Options&384) m_gvg_kda += 1; if(.Options&8) $Guild_Kills[getcharid(2)] += 1; if(.Options&136) $M_Guild_Kills[getcharid(2)] += 1; if(.Options&256) $Guild_Kda[getcharid(2)] += 1; if(.Options&264) $M_Guild_Kda[getcharid(2)] += 1; } attachrid(LastPK); if(.Options&1) pl_dthcount += 1; if(.Options&129) m_dthcount += 1; if(.Options&257) kda -= 1; if(.Options&385) m_kda -= 1; if((getmapflag(strcharinfo(3),MF_GVG) || getmapflag(strcharinfo(3),MF_GVG_NOPARTY)) && (agitcheck() || agitcheck2()) && getcharid(2) && .Options&2){ gvg_dcount += 1; if(.Options&128) m_gvg_dcount += 1; if(.Options&258) gvg_kda -= 1; if(.Options&384) m_gvg_kda -= 1; if(.Options&8) $Guild_Deaths[getcharid(2)] += 1; if(.Options&136) $M_Guild_Deaths[getcharid(2)] += 1; if(.Options&256) $Guild_Kda[getcharid(2)] -= 1; if(.Options&264) $M_Guild_Kda[getcharid(2)] -= 1; } } else if(.Options&1024) atcommand "@request [PvP Ladder]: "+strcharinfo(0)+" is showing signs of abusing the PvP Ladder Please Investigate"; if(.Options&64) warp "Save",0,0; } end; OnHour00: if(gettime(5) == 1 && .Options&128){ if(.RewardType&1 && .Options&1){ query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = '"+((.Options&256)?"m_kda":"m_pkcount")+"' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 10",.@cid,.@value); for(.@i = 0; .@i<getarraysize(.@cid); .@i++) { query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@i]+";",.@j$); set .@name$[.@i], .@j$; } for(.@i = 0; .@i<getarraysize(.@cid); .@i++) { query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+ "'no-reply',"+.@cid[.@i]+",'** PVP Ranking **',"+ "'Congratulations! You "+.@name$[.@i]+" have successfully placed #"+(.@i+1)+" [ Your reward is attached. ]',"+ .PMonth_Rewards[.@i * 3]+","+.PMonth_Rewards[.@i * 3 + 1]+",0,"+.PMonth_Rewards[.@i * 3 + 2]+",UNIX_TIMESTAMP(NOW()))"); } announce "[PVP Ranking]: Rewards have been mailed to the top 10 in PvP~!",bc_blue|bc_all; announce "[PVP Ranking]: Relog to refresh mail.",bc_blue|bc_all; } sleep 10000; if(.RewardType&2 && .Options&2){ query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = '"+((.Options&256)?"m_gvg_kda":"m_gvg_kcount")+"' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 10",.@cid,.@value); for(.@i = 0; .@i<getarraysize(.@cid); .@i++) { query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@i]+";",.@j$); set .@name$[.@i], .@j$; } for(.@i = 0; .@i<getarraysize(.@cid); .@i++) { query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+ "'no-reply',"+.@cid[.@i]+",'** GVG Ranking **',"+ "'Congratulations! You "+.@name$[.@i]+" have successfully placed #"+(.@i+1)+" [ Your reward is attached. ]',"+ .GMonth_Rewards[.@i * 3]+","+.GMonth_Rewards[.@i * 3 + 1]+",0,"+.GMonth_Rewards[.@i * 3 + 2]+",UNIX_TIMESTAMP(NOW()))"); } announce "[GVG Ranking]: Rewards have been mailed to the top 10 in PvP~!",bc_blue|bc_all; announce "[GVG Ranking]: Relog to refresh mail.",bc_blue|bc_all; } query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_pkcount'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_kda'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_dthcount'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_gvg_kcount'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_gvg_kda'"); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_gvg_dcount'"); cleararray $M_Guild_Kills[0],0,getarraysize($M_Guild_Kills); cleararray $M_Guild_Kda[0],0,getarraysize($M_Guild_Kda); cleararray $M_Guild_Deaths[0],0,getarraysize($M_Guild_Deaths); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(.@i = 0; .@i<.@size; .@i++) { // Deletes kills of online players if(attachrid(.@aid[.@i])){ m_pkcount = 0; m_kda = 0; m_dthcount = 0; m_gvg_kcount = 0; m_gvg_kda = 0; m_gvg_dcount = 0; } } } OnInit: // Bitwise Variable // 1: Record PvP // 2: Record GvG (agit on and gvg map) // 4: Announce When Someone gets a kill // 8: Record Total Guild Stats // 16: Gain PvP Points on Kills (#PvpPoints) // 32: Repeat Kill Protection // 64: Warp to Save on abuse // 128: Monthly Stats // 256: Order by KDA instead of most kills // 512: Allow GMs to Join PvP // 1024: Request a GM on Abuse .Options = 1|2|4|8|16|32|128|256|1024; // Monthly Reward Types // 1: Pvp // 2: Gvg .RewardType = 1|2; // PVP Rewards // Item,Qnt,Zeny setarray .PMonth_Rewards, 501,10,1000000,//1st 501,9,500000, 501,8,250000, 501,7,125000, 501,6,62500, 501,5,31250, 501,4,15620, 501,3,7810, 501,2,3905, 501,1,1952;//10th // GVG Rewards // Item,Qnt,Zeny setarray .GMonth_Rewards, 501,10,1000000,//1st 501,9,500000, 501,8,250000, 501,7,125000, 501,6,62500, 501,5,31250, 501,4,15620, 501,3,7810, 501,2,3905, 501,1,1952;//10th // Number of kills on same person before it detects abuse .RepeatCount = 5; // Name of points earned, E.G. #Cash Points .PointType$ = "#PvpPoints"; // Players Shown in PvP Ladder .MaxRank = 10; // Map Names setarray .MapName$,"guild_vs1","guild_vs2","guild_vs3","guild_vs4","guild_vs5"; // Pvp Mode // Modes are Addative // 0 = Normal Pvp // 1 = Gvg // 2 = Nightmare // 4 = Party // 8 = No Ygg // 16 = No 3rds // 32 = No Trans // 64 = Show Map Name setarray .MapMode,0,1,2,4,56; // Max Players Per Map setarray .MaxPlayers,0,50,10,36,50; // Mapflags for all PvP maps // regardless of Mode setarray .mapflag, mf_nowarp, mf_nowarpto, mf_nosave, mf_nomemo, mf_noteleport, mf_nopenalty, mf_noreturn, mf_nobranch, mf_nomobloot, mf_nomvploot, MF_NOZENYPENALTY, MF_NOTRADE, MF_NOCOMMAND; //===== Dont Touch - Menu & Mapflag Generation ============= for(.@i = 0; .@i < getarraysize(.MapName$); .@i++){ .MapList$[.@i] = "["+ ((.MapMode[.@i]&2)?"^EE3333Nightmare ":"") + ((.MapMode[.@i]&4)?"Party ":"") + ((.MapMode[.@i]&1)?"GvG":"PvP") +"^000000] "+ ((.MapMode[.@i] >= 8)?"No ":"") + ((.MapMode[.@i]&8)?"Ygg ":"") + ((.MapMode[.@i]&16)?"3rds ":"") + ((.MapMode[.@i]&32)?"Trans ":"") + ((.MapMode[.@i]&64)?.MapName$[.@i]:"") + ((.MaxPlayers[.@i])?"["+getmapusers(.MapName$[.@i])+"/"+.MaxPlayers[.@i]+"]":""); for ( .@f = 0; .@f < .@size; .@f++ ) setmapflag .MapName$[.@i], .mapflag[.@f]; if(.MapMode[.@i]&4) setmapflag .MapName$[.@i], mf_partylock; if(.MapMode[.@i]&2) setmapflag .MapName$[.@i], MF_NIGHTMAREDROP; if(.MapMode[.@i]&1){ setmapflag .MapName$[.@i], MF_GUILDLOCK; setmapflag .MapName$[.@i], MF_GVG; } else{ setmapflag .MapName$[.@i], MF_PVP_NOGUILD; setmapflag .MapName$[.@i], MF_PVP; } if(!.MapMode[.@i]&4){ if(.MapMode[.@i]&1) setmapflag .MapName$[.@i], MF_GVG_NOPARTY; else setmapflag .MapName$[.@i], MF_NOPARTY; } } //========================================================== bindatcmd("PvpLadder" ,"Ladder::OnPvpLadder",0,99); end; } - pointshop PvP_C_Shop -1,#PvpPoints,501:1,502:2 this is originally from Stolao pvp ladder its working fine but every room is says full eventhough there is no players inside help please thnx in advance
  21. hmm just manual like there is a option for GM level 99 to delete all data
  22. //===== eAthena Script ======================================================= //= PVP ladder script with dota announcement ( SQL only ) //===== By: ================================================================== //= ~AnnieRuru~ //===== Current Version: ===================================================== //= 2.9 //===== Compatible With: ===================================================== //= eAthena SQL 14279, with MySQL 5.1 //===== Description: ========================================================= //= PVP ladder store in SQL table //= plus anti-sit-killer feature //===== Topic ================================================================ //= http://www.eathena.ws/board/index.php?showtopic=177918 //===== Additional Comments: ================================================= //= still don't have modify value option, will be done ... in next year ... //============================================================================ // add all the maps that you want this script to trigger ... all pvp and event maps perhaps ? // but if you already enable "all" maps, then can comment all these guild_vs1 mapflag loadevent guild_vs2 mapflag loadevent guild_vs3 mapflag loadevent guild_vs4 mapflag loadevent guild_vs5 mapflag loadevent - script DOTAPVP -1,{ OnInit: // Config set .sound, 0; // soundeffect : 0 - disable, 1 - play soundeffect to all players on map, 2 - play soundeffect to an area around the killer, 3 - play soundeffect to killer only set .announce, 0; // announce to : 0 - global, 1 - map set .announcemap, 1; // announce the map name in the announcement ? : 0 - off, 1 - on set .announcekill, 0; // announce who pawn who's head : 0 - off, 1 - on set .msg_die, 0; // show message who kill you when die : 0 - off, 1 - on set .msg_kill, 0; // show message you kill who when killed someone : 0 - off, 1 - on set .gmnokill, 0; // GMs are not suppose to kill players. A GM with <this number> level or higher will do nothing. IF set to 60, GM60 and above kill any player will not get anything : 0 - off set .killingspree, 3; set .dominating, 4; set .megakill, 5; set .unstoppable, 6; set .wickedsick, 7; set .monsterkill, 8; set .godlike, 9; set .holyshit, 10; set .continue, 1; // after beyond-godlike, every <this number> kills will make announcement again set .owned, 5; // how many times the party/guild has to kill to announce ownage set .owncontinue, 1; // after ownage, every <this number> party/guild cumulative kills will make ownage announce again set .min_gm_menu, 99; // minimum level of GM can use the GM menu on ladder npc set .showtotal, 20; // show the length of ladder. Note : Maximum value = 128 set .showpage, 10; // set the views per page. Note : Maximum value = 128 set .loweststreak, 3; // mininum streak count allow to show in highest streak ladder. Default 3 means must at least have killing spree streak to display in ladder set .lowestownage, 5; // mininum ownage count allow to show in longest ownage ladder. Default 5 means must at least have 5 ownage counts to display in ladder setarray .maptrigger$, // only these maps will trigger this script "all", // uncomment this to allow load all maps "guild_vs1", "guild_vs2", "guild_vs3", "guild_vs4", "guild_vs5"; // anti-sit-killer system // a player must kill another player with this minimum <this number> base level to get the announcement and in the ladder. // Otherwise only have streak ended announcement and killed player's streak reset. // Its possible for a level 1 novice to kill a level 99 player and he/she will still get in the ladder // but a level 99 kill a level 1 player will get nothing // 0 - off this system ( default is 55, pk setting ) set .lvltokill, 55; // when a player kill another same player <this number> times in a row, the player is warp back to save point. // and the player's streak, kills, and ownage count will deduct accordingly // 0 - off this system set .counttopunish, 6; // minimum level range to kill another player // eg. when set to 20, player level 99 needs to kill another player with minimum level of 79 to get announcement and increase the kill rank. // but a player with base level 50 kills a level 99 will also get the announcement // higher base level cannot kill lower level, but lower level can kill higher level // 0 - off this system set .minlvlrange, 0; // Config ends ------------------------------------------------------------------------------------------ // to prevent bug happen if ( .announce < 0 || .announce > 1 ) set .announce, 0; if ( .continue < 1 ) set .continue, 1; if ( .owncontinue < 1 ) set .owncontinue, 1; if ( .gmnokill <= 0 ) set .gmnokill, 100; if ( .lvltokill <= 1 ) set .lvltokill, 0; if ( .counttopunish <= 1 ) set .counttopunish, 0; set .maptriggersize, getarraysize(.maptrigger$); end; // script start. OnPCKillEvent: if ( getgmlevel() >= .gmnokill ) end; getmapxy .@map$, .@x, .@y, 0; if ( .maptrigger$ != "all" ) { for ( set .@i, 0; .@i < .maptriggersize; set .@i, .@i +1 ) { if ( .@map$ == .maptrigger$[.@i] ) break; } if ( .@i == .maptriggersize ) end; } attachrid killedrid; if ( killerrid != getcharid(3) && ( .msg_die || .msg_kill ) ) { if ( .msg_die ) message strcharinfo(0),"You have been killed by "+ rid2name(killerrid); if ( .msg_kill ) message rid2name(killerrid),"You just killed "+ strcharinfo(0); } if ( @PlayersKilledStreak >= .holyshit ) set .@streakname$,"Beyond Godlike"; else if ( @PlayersKilledStreak >= .godlike ) set .@streakname$,"Godlike"; else if ( @PlayersKilledStreak >= .monsterkill ) set .@streakname$,"Monster Kill"; else if ( @PlayersKilledStreak >= .wickedsick ) set .@streakname$,"Wicked Sick"; else if ( @PlayersKilledStreak >= .unstoppable ) set .@streakname$,"Unstoppable"; else if ( @PlayersKilledStreak >= .megakill ) set .@streakname$,"Mega-kill"; else if ( @PlayersKilledStreak >= .dominating ) set .@streakname$,"Dominating"; else if ( @PlayersKilledStreak >= .killingspree ) set .@streakname$,"Killing Spree"; if ( @PlayersKilledStreak >= .killingspree && killerrid == getcharid(3) ) announce strcharinfo(0) +" has ended "+( (sex)?"him":"her" )+" own "+ .@streakname$ +"["+ @PlayersKilledStreak +"] streak "+( (.announcemap)?("at "+ .@map$):""),16|.announce; else if ( @PlayersKilledStreak >= .killingspree ) announce rid2name(killerrid) +" has ended "+ strcharinfo(0) +"'s "+ .@streakname$ +"["+ @PlayersKilledStreak +"] streak "+( (.announcemap)?("at "+ .@map$):""),16|.announce; else if ( .announcekill && killerrid != getcharid(3) ) announce rid2name(killerrid) +" has pawned "+ strcharinfo(0) +"'s head "+( (.announcemap)?("at "+ .@map$):""),16|.announce; set @PlayersKilledStreak,0; set @dota_sql_deaths, @dota_sql_deaths +1; set @dota_multikills,0; query_sql "replace into pvpladder values ( "+ getcharid(0) +", '"+ escape_sql(strcharinfo(0)) +"', "+ @dota_sql_streaks +", "+ @dota_sql_kills +", "+ @dota_sql_deaths +", from_unixtime("+ @dota_sql_streaktime +") )"; set .@killed_gid, getcharid(2); if ( .@killed_gid ) { setd ".dota_sql_"+ .@killed_gid +"_c", 0; if ( getd(".dota_sql_"+ .@killed_gid +"_h") ) query_sql "replace into ownladder values ( "+ .@killed_gid +", '"+ escape_sql(getguildname(.@killed_gid)) +"', "+ getd(".dota_sql_"+ .@killed_gid +"_c") +", "+ getd(".dota_sql_"+ .@killed_gid +"_h") +", from_unixtime("+ getd(".dota_sql_"+ .@killed_gid +"_t") +") )"; } if ( killerrid == getcharid(3) || baselevel < .lvltokill ) end; if ( .minlvlrange ) set .@killedlvl, baselevel; attachrid killerrid; if ( .minlvlrange && .@killedlvl + .minlvlrange < baselevel ) end; if ( .counttopunish ) { if ( @sitkillminute != gettime(2) ) { deletearray @sitkillid, 128; deletearray @sitkilltimes, 128; set @sitkillminute, gettime(2); } set .@sitkillsize, getarraysize(@sitkillid); for ( set .@i,0; .@i < .@sitkillsize; set .@i, .@i +1 ) { if ( @sitkillid[.@i] != killedrid ) continue; else { set @sitkilltimes[.@i], @sitkilltimes[.@i] +1 ; if ( @sitkilltimes[.@i] >= .counttopunish ) { warp "SavePoint",0,0; announce strcharinfo(0) +" , Stop killing "+ rid2name(killedrid) + " !!!",0; debugmes strcharinfo(0) +" is sit-killing "+ rid2name(killedrid) +" for "+ @sitkilltimes[.@i] + " times"; logmes "is sit-killing "+ rid2name(killedrid) +" for "+ @sitkilltimes[.@i] +" times"; if ( @PlayersKilledStreak == @dota_sql_streaks ) { set @dota_sql_streaks, @dota_sql_streaks +1 - .counttopunish; set @dota_sql_streaktime, gettimetick(2); } set @PlayersKilledStreak, @PlayersKilledStreak +1 - .counttopunish; set @dota_sql_kills, @dota_sql_kills +1 - .counttopunish; query_sql "replace into pvpladder values ( "+ getcharid(0) +", '"+ escape_sql(strcharinfo(0)) +"', "+ @dota_sql_streaks +", "+ @dota_sql_kills +", "+ @dota_sql_deaths +", from_unixtime("+ @dota_sql_streaktime +") )"; set .@killer_gid, getcharid(2); if ( .@killer_gid ) { if ( getd(".dota_sql_"+ .@killer_gid +"_c") == getd(".dota_sql_"+ .@killer_gid +"_h") ) { setd ".dota_sql_"+ .@killer_gid +"_h", getd(".dota_sql_"+ .@killer_gid +"_h") +1 - .counttopunish; setd ".dota_sql_"+ .@killer_gid +"_t", gettimetick(2); } setd (".dota_sql_"+ .@killer_gid +"_c"), getd(".dota_sql_"+ .@killer_gid +"_c") +1 - .counttopunish; query_sql "replace into ownladder values ( "+ .@killer_gid +", '"+ escape_sql(getguildname(.@killer_gid)) +"', "+ getd(".dota_sql_"+ .@killer_gid +"_c") +", "+ getd(".dota_sql_"+ .@killer_gid +"_h") +", from_unixtime("+ getd(".dota_sql_"+ .@killer_gid +"_t") +") )"; } end; } break; } } if ( .@i == .@sitkillsize ) { set @sitkillid[.@i], killedrid; set @sitkilltimes[.@i], 1; } } set @PlayersKilledStreak, @PlayersKilledStreak +1 ; set @dota_sql_kills, @dota_sql_kills +1 ; if ( @PlayersKilledStreak > @dota_sql_streaks ) { set @dota_sql_streaks, @PlayersKilledStreak; set @dota_sql_streaktime, gettimetick(2); } query_sql "replace into pvpladder values ( "+ getcharid(0) +", '"+ escape_sql(strcharinfo(0)) +"', "+ @dota_sql_streaks +", "+ @dota_sql_kills +", "+ @dota_sql_deaths +", from_unixtime("+ @dota_sql_streaktime +") )"; if ( @PlayersKilledStreak == .killingspree ) setarray .@streakname$,"killingspree.wav","is on a KILLING SPREE","!"; else if ( @PlayersKilledStreak == .dominating ) setarray .@streakname$,"dominating.wav","is DOMINATING","!"; else if ( @PlayersKilledStreak == .megakill ) setarray .@streakname$,"megakill.wav","has a MEGA KILL","!"; else if ( @PlayersKilledStreak == .unstoppable ) setarray .@streakname$,"unstoppable.wav","is UNSTOPPABLE","!!"; else if ( @PlayersKilledStreak == .wickedsick ) setarray .@streakname$,"wickedsick.wav","is WICKED SICK","!!"; else if ( @PlayersKilledStreak == .monsterkill ) setarray .@streakname$,"monsterkill.wav","has a MONSTER KILL","!!"; else if ( @PlayersKilledStreak == .godlike ) setarray .@streakname$,"godlike.wav","is GODLIKE","!!!"; else if ( @PlayersKilledStreak >= .holyshit && ( (@PlayersKilledStreak - .holyshit) % .continue == 0 ) ) setarray .@streakname$,"holyshit.wav","is BEYOND GODLIKE",". Someone KILL "+( (sex)?"HIM":"HER" ) +"!!!!!!"; if ( .@streakname$[1] != "" ) { announce strcharinfo(0) +" "+ .@streakname$[1] +"["+ @PlayersKilledStreak +"] "+( (.announcemap)?("at "+ .@map$):"") + .@streakname$[2],16|.announce; if ( .sound == 1 ) soundeffectall .@streakname$[0],0,.@map$; else if ( .sound == 2 ) soundeffectall .@streakname$[0],0; else if ( .sound == 3 ) soundeffect .@streakname$[0],0; } set @dota_multikills, @dota_multikills + 1; deltimer "DOTAPVP::OnStreakReset"; addtimer 18000,"DOTAPVP::OnStreakReset"; set .@killer_gid, getcharid(2); if ( .@killer_gid && .@killer_gid != .@killed_gid ) { setd ".dota_sql_"+ .@killer_gid +"_c", getd(".dota_sql_"+ .@killer_gid +"_c") +1 ; if ( getd(".dota_sql_"+ .@killer_gid +"_c") > getd(".dota_sql_"+ .@killer_gid +"_h") ) { setd ".dota_sql_"+ .@killer_gid +"_h", getd(".dota_sql_"+ .@killer_gid +"_c"); setd ".dota_sql_"+ .@killer_gid +"_t", gettimetick(2); } query_sql "replace into ownladder values ( "+ .@killer_gid +", '"+ escape_sql(getguildname(.@killer_gid)) +"', "+ getd(".dota_sql_"+ .@killer_gid +"_c") +", "+ getd(".dota_sql_"+ .@killer_gid +"_h") +", from_unixtime("+ getd(".dota_sql_"+ .@killer_gid +"_t") +") )"; } set .@dota_multikills, @dota_multikills; set .@origin, getcharid(3); sleep 1500; if ( .@killer_gid && .@killer_gid != .@killed_gid && getd(".dota_sql_"+ .@killer_gid +"_c") >= .owned && ( ( getd(".dota_sql_"+ .@killer_gid +"_c") - .owned ) % .owncontinue == 0 ) ) { if ( .announce ) mapannounce .@map$, "The guild ["+ getguildname(.@killer_gid) +"] is OWNING["+ getd(".dota_sql_"+ .@killer_gid +"_c") +"] !!!",16; else announce "The guild ["+ getguildname(.@killer_gid) +"] is OWNING["+ getd(".dota_sql_"+ .@killer_gid +"_c") +"] !!!",16; if ( .sound == 1 ) soundeffectall "ownage.wav",0,.@map$; else if ( .sound == 2 ) soundeffectall "ownage.wav",0; else if ( .sound == 3 && attachrid(.@origin) ) soundeffect "ownage.wav",0; } sleep 1250; if ( !attachrid(.@origin) ) end; if ( .@dota_multikills == 2 ) { if ( .announce ) mapannounce .@map$, strcharinfo(0) +" just got a Double Kill !",16; else announce strcharinfo(0) +" just got a Double Kill !",16; if ( .sound == 1 ) soundeffectall "doublekill.wav",0,.@map$; else if ( .sound == 2 ) soundeffectall "doublekill.wav",0; else if ( .sound == 3 ) soundeffect "doublekill.wav",0; } else if ( .@dota_multikills == 3 ) { if ( .announce ) mapannounce .@map$, strcharinfo(0) +" just got a Triple Kill !!!",16; else announce strcharinfo(0) +" just got a Triple Kill !!!",16; if ( .sound == 1 ) soundeffectall "triplekill.wav",0,.@map$; else if ( .sound == 2 ) soundeffectall "triplekill.wav",0; else if ( .sound == 3 ) soundeffect "triplekill.wav",0; } else if ( .@dota_multikills == 4 ) { if ( .announce ) mapannounce .@map$, strcharinfo(0) +" just got a Ultra Kill !!!",16; else announce strcharinfo(0) +" just got a Ultra Kill !!!",16; if ( .sound == 1 ) soundeffectall "ultrakill.wav",0,.@map$; else if ( .sound == 2 ) soundeffectall "ultrakill.wav",0; else if ( .sound == 3 ) soundeffect "ultrakill.wav",0; } else if ( .@dota_multikills >= 5 ) { if ( .announce ) mapannounce .@map$, strcharinfo(0) +" is on a Rampage !!!",16; else announce strcharinfo(0) +" is on a Rampage !!!",16; if ( .sound == 1 ) soundeffectall "rampage.wav",0,.@map$; else if ( .sound == 2 ) soundeffectall "rampage.wav",0; else if ( .sound == 3 ) soundeffect "rampage.wav",0; } end; OnStreakReset: set @dota_multikills, 0; end; OnWhisperGlobal: if ( @spam_dotapvp + 3 >= gettimetick(2) ) // 3 seconds interval so player don spam this command end; set @spam_dotapvp, gettimetick(2); if ( @dota_sql_kills == 0 && @dota_sql_deaths == 0 ) query_sql "select kills, deaths, streaks, unix_timestamp(streaktime) from pvpladder where char_id = "+ getcharid(0), @dota_sql_kills, @dota_sql_deaths, @dota_sql_streaks, @dota_sql_streaktime; if ( @dota_sql_kills || @dota_sql_deaths ) { dispbottom "Your current Streak : "+ @PlayersKilledStreak; dispbottom "Your total Kills : "+ @dota_sql_kills; dispbottom "Your total Deaths : "+ @dota_sql_deaths; dispbottom "Your highest Streak : "+ @dota_sql_streaks; query_sql "select date_format( from_unixtime("+ @dota_sql_streaktime +"),'%a %e/%c/%y %r')", .@time1$; dispbottom "Your highest Streak on : "+ .@time1$; } else dispbottom "You are not in the pvp ladder yet."; if ( getcharid(2) ) { if ( getd(".dota_sql_"+ getcharid(2) +"_h") == 0 ) { query_sql "select currentown, highestown, unix_timestamp(owntime) from ownladder where guild_id = "+ getcharid(2), .@c, .@h, .@t; setd ".dota_sql_"+ getcharid(2) +"_c", .@c; setd ".dota_sql_"+ getcharid(2) +"_h", .@h; setd ".dota_sql_"+ getcharid(2) +"_t", .@t; } if ( getd(".dota_sql_"+ getcharid(2) +"_h") ) { dispbottom "Your guild current Own : "+ getd(".dota_sql_"+ getcharid(2) +"_c"); dispbottom "Your guild highest Own : "+ getd(".dota_sql_"+ getcharid(2) +"_h"); query_sql "select date_format( from_unixtime("+ getvariableofnpc( getd(".dota_sql_"+ getcharid(2) +"_t"), "DOTAPVP" ) +"),'%a %e/%c/%y %r')", .@time2$; dispbottom "Your guild highest Own on : "+ .@time2$; } else dispbottom "Your guild is not in the ladder yet."; } end; OnPCLoginEvent: if ( .maptrigger$ != "all" ) end; OnPCLoadMapEvent: if ( @dota_sql_kills == 0 && @dota_sql_deaths == 0 ) { if ( .maptrigger$ != "all" ) { getmapxy .@map$, .@x, .@y, 0; for ( set .@i, 0; .@i < .maptriggersize; set .@i, .@i +1 ) { if ( .@map$ == .maptrigger$[.@i] ) break; } if ( .@i == .maptriggersize ) end; } query_sql "select kills, deaths, streaks, unix_timestamp(streaktime) from pvpladder where char_id = "+ getcharid(0), @dota_sql_kills, @dota_sql_deaths, @dota_sql_streaks, @dota_sql_streaktime; } if ( getcharid(2) && getd(".dota_sql_"+ getcharid(2) +"_h") == 0 ) { query_sql "select currentown, highestown, unix_timestamp(owntime) from ownladder where guild_id = "+ getcharid(2), .@c, .@h, .@t; setd ".dota_sql_"+ getcharid(2) +"_c", .@c; setd ".dota_sql_"+ getcharid(2) +"_h", .@h; setd ".dota_sql_"+ getcharid(2) +"_t", .@t; } end; } prontera,167,204,3 script PvP-StatsViewer 57,{ set .@npcname$, strnpcinfo(0); while (1) { mes "["+ .@npcname$ +"]"; mes "Hello "+ strcharinfo(0) +"..."; mes "If you want to I can show you your PVP stats."; next; switch ( select ( "Most Kills","Highest Streak","Longest Ownage","Own Information","Explanation" ) ) { case 1: set .@nb, query_sql("select name, kills, deaths from pvpladder order by kills desc limit "+ getvariableofnpc(.showtotal,"DOTAPVP"), .@name$, .@kills, .@deaths); if ( .@nb == 0 ) { mes "["+ .@npcname$ +"]"; mes "The ladder currently is empty."; next; } for ( set .@j,0; .@j < .@nb; set .@j, .@j + getvariableofnpc(.showpage,"DOTAPVP") ) { mes "["+ .@npcname$ +"]"; for ( set .@i, .@j; .@i < (getvariableofnpc(.showpage,"DOTAPVP") + .@j) && .@i < .@nb; set .@i, .@i + 1 ) { mes "^996600"+ (.@i+1) +": ^006699"+ .@name$[.@i] +" ^00AA00["+ .@kills[.@i] +"] ^FF0000<"+ .@deaths[.@i] +">^000000"; } next; } break; case 2: set .@nb, query_sql("select name, streaks, date_format(streaktime,'%a %e/%c/%y %r') from pvpladder where streaks >= "+ getvariableofnpc(.loweststreak,"DOTAPVP") +" order by streaks desc limit "+ getvariableofnpc(.showtotal,"DOTAPVP"), .@name$, .@streak, .@time$); if ( .@nb == 0 ) { mes "["+ .@npcname$ +"]"; mes "The ladder currently is empty."; next; } for ( set .@j,0; .@j < .@nb; set .@j, .@j + getvariableofnpc(.showpage,"DOTAPVP") ) { mes "["+ .@npcname$ +"]"; for ( set .@i, .@j; .@i < (getvariableofnpc(.showpage,"DOTAPVP") + .@j) && .@i < .@nb; set .@i, .@i + 1 ) { mes "^996600"+ (.@i+1) +": ^006699"+ .@name$[.@i] +" ^70AC11{"+ .@streak[.@i] +"} ^000000on :"; mes " ^EE8800"+ .@time$[.@i] +"^000000"; } next; } break; case 3: set .@nb, query_sql("select name, highestown, date_format(owntime,'%a %e/%c/%y %r') from ownladder where highestown >= "+ getvariableofnpc(.lowestownage,"DOTAPVP") +" order by highestown desc limit "+ getvariableofnpc(.showtotal,"DOTAPVP"), .@name$, .@owned, .@time$); if ( .@nb == 0 ) { mes "["+ .@npcname$ +"]"; mes "The ladder currently is empty."; next; } for ( set .@j,0; .@j < .@nb; set .@j, .@j + getvariableofnpc(.showpage,"DOTAPVP") ) { mes "["+ .@npcname$ +"]"; for ( set .@i, .@j; .@i < (getvariableofnpc(.showpage,"DOTAPVP") + .@j) && .@i < .@nb; set .@i, .@i + 1 ) { mes "^996600"+ (.@i+1) +": ^006699"+ .@name$[.@i] +" ^00AAAA("+ .@owned[.@i] +") ^000000on :"; mes " ^EE8800"+ .@time$[.@i] +"^000000"; } next; } break; case 4: if ( @dota_sql_kills == 0 && @dota_sql_deaths == 0 ) query_sql "select kills, deaths, streaks, unix_timestamp(streaktime), date_format(streaktime,'%a %e/%c/%y %r') from pvpladder where char_id = "+ getcharid(0), @dota_sql_kills, @dota_sql_deaths, @dota_sql_streaks, @dota_sql_streaktime, .@time1$; mes "["+ .@npcname$ +"]"; if ( @dota_sql_kills == 0 && @dota_sql_deaths == 0 ) mes "You not yet kill any player."; else { mes "Your Current Streak : ^70AC11{"+ @PlayersKilledStreak +"}^000000"; mes "Your Total Kills : ^00AA00["+ @dota_sql_kills +"]^000000"; mes "Your Death Counts : ^FF0000<"+ @dota_sql_deaths +">^000000"; if ( @dota_sql_kills || @dota_sql_streaks ) { mes "Highest Streak was ^70AC11{"+ @dota_sql_streaks +"}^000000 on :"; query_sql "select date_format( from_unixtime("+ @dota_sql_streaktime +"),'%a %e/%c/%y %r')", .@time1$; mes " ^EE8800"+ .@time1$ +"^000000"; } } next; if ( getcharid(2) ) { if ( getvariableofnpc( getd(".dota_sql_"+ getcharid(2) +"_h"), "DOTAPVP" ) == 0 ) { query_sql "select currentown, highestown, unix_timestamp(owntime) from ownladder where guild_id = "+ getcharid(2), .@c, .@h, .@t; set getvariableofnpc( getd(".dota_sql_"+ getcharid(2) +"_c"), "DOTAPVP" ), .@c; set getvariableofnpc( getd(".dota_sql_"+ getcharid(2) +"_h"), "DOTAPVP" ), .@h; set getvariableofnpc( getd(".dota_sql_"+ getcharid(2) +"_t"), "DOTAPVP" ), .@t; } mes "["+ .@npcname$ +"]"; if ( getvariableofnpc( getd(".dota_sql_"+ getcharid(2) +"_h"), "DOTAPVP" ) == 0 ) { mes "Your guild not yet kill any player."; } else { mes "Your guild name : ^006699"+ strcharinfo(2) +"^000000"; mes "Current Owning : ^00AAAA("+ getvariableofnpc( getd(".dota_sql_"+ getcharid(2) +"_c"), "DOTAPVP" ) +")^000000"; mes "Longest Ownage was ^00AAAA("+ getvariableofnpc( getd(".dota_sql_"+ getcharid(2) +"_h"), "DOTAPVP" ) + ")^000000 on :"; query_sql "select date_format( from_unixtime("+ getvariableofnpc( getd(".dota_sql_"+ getcharid(2) +"_t"), "DOTAPVP" ) +"),'%a %e/%c/%y %r')", .@time2$; mes " ^EE8800"+ .@time2$ +"^000000"; } next; } break; case 5: mes "["+ .@npcname$ +"]"; mes "Explanation for Most Kills:"; mes " "; mes "^996600Rank. ^006699NAME ^00AA00[Total Kills] ^FF0000<Deaths>^000000"; mes " "; mes "--------------------------------"; mes " "; mes "The ^00AA00Kills^000000 added when a player kills another player."; mes " "; mes "^FF0000Deaths^000000 count increase when a player killed by another player, or suicide (eg: Grand Cross)."; mes " "; mes "A player killed by monsters, homunculus or pets will not add the kills or deaths count."; next; mes "["+ .@npcname$ +"]"; mes "Explanation for Highest Streak:"; mes " "; mes "^996600Rank. ^006699NAME ^70AC11{Highest Streak} ^000000on :"; mes " ^EE8800TIME^000000"; mes " "; mes "--------------------------------"; mes " "; mes "The ^70AC11Streak^000000 are added every time a player kills another player. It will reset upon log out, killed by another player, or suicide (eg: Sacrifice)."; mes " "; mes "Then it record in the server the ^EE8800TIME^000000 when that player got that highest streak."; mes " "; mes "A player killed by monsters, homunculus or pets will not reset the streak."; mes " "; mes "--------------------------------"; mes " "; mes "The numbers of straight kills to get these announcements are :"; mes "^70AC11"+ getvariableofnpc(.killingspree,"DOTAPVP") +"^000000 : Killing Spree"; mes "^70AC11"+ getvariableofnpc(.dominating,"DOTAPVP") +"^000000 : Dominating"; mes "^70AC11"+ getvariableofnpc(.megakill,"DOTAPVP") +"^000000 : Mega Kill"; mes "^70AC11"+ getvariableofnpc(.unstoppable,"DOTAPVP") +"^000000 : Unstoppable"; mes "^70AC11"+ getvariableofnpc(.wickedsick,"DOTAPVP") +"^000000 : Wicked Sick"; mes "^70AC11"+ getvariableofnpc(.monsterkill,"DOTAPVP") +"^000000 : Monster Kill"; mes "^70AC11"+ getvariableofnpc(.godlike,"DOTAPVP") +"^000000 : Godlike"; mes "^70AC11"+ getvariableofnpc(.holyshit,"DOTAPVP") +"^000000 : Beyond Godlike"; next; mes "["+ .@npcname$ +"]"; mes "Explanation for Longest Ownage:"; mes " "; mes "^996600Rank. ^006699NAME ^00AAAA(Longest Ownage) ^000000on :"; mes " ^EE8800TIME^000000"; mes " "; mes "--------------------------------"; mes " "; mes "The ^00AAAAOwnage^000000 added every time any guild members killed another player that doesn't belong to his/her guild. It will reset when any of the guild member was killed by ANY player, including his/her guild member."; mes " "; mes "Then it record in the server the ^EE8800TIME^000000 when the guild got that longest ownage."; mes " "; mes "If the server went under maintainance, the current ownage will survive after the server restart."; mes " "; mes "Any guild member killed by monster, homunculus or pets will not reset the ownage count."; next; if ( getvariableofnpc(.lvltokill,"DOTAPVP") ) { mes "["+ .@npcname$ +"]"; mes "You must kill another player with minimum base level of "+ getvariableofnpc(.lvltokill,"DOTAPVP") +", in order to get an announcement or get in the ladder."; mes " "; mes "It's possible for a base level 1 novice kills a base level 99 player and still can get in the ladder."; mes "However when a player level 99 kills a level 1 novice will get nothing."; next; } if ( getvariableofnpc(.counttopunish,"DOTAPVP") ) { mes "["+ .@npcname$ +"]"; mes "Some noob players try to kill the same person over and over again in hope of getting his/her name appear in the ladder."; mes "However if you trying to do the same thing on this ladder, your name will announce to the public, and your action will be recorded into the server to notify the GMs."; next; } if ( getvariableofnpc(.minlvlrange,"DOTAPVP") ) { mes "["+ .@npcname$ +"]"; mes "When you kill another player thats lower base level than you, the base level gap between you and that player must not more than "+ getvariableofnpc(.minlvlrange,"DOTAPVP") +"."; mes " "; if ( getvariableofnpc(.minlvlrange,"DOTAPVP") >= 200) mes "In other words, if your base level is 500, the player you killed must be at least level "+( 500 - getvariableofnpc(.minlvlrange,"DOTAPVP") )+" then only you will get the announcement and in the ladder."; else if ( getvariableofnpc(.minlvlrange,"DOTAPVP") >= 70) mes "In other words, if your base level is 255, the player you killed must be at least level "+( 255 - getvariableofnpc(.minlvlrange,"DOTAPVP") )+" then only you will get the announcement and in the ladder."; else mes "In other words, if your base level is 99, the player you killed must be at least level "+( 99 - getvariableofnpc(.minlvlrange,"DOTAPVP") )+" then only you will get the announcement and in the ladder."; mes "Higher base level kills lower level gets nothing, however lower level player kills higher level will get the announcement."; next; } break; } } } this script is from annieruru anyone can modify this so you can delete pvp ladder data on NPC it self? thnx in advance im trying my best to do it but i cant
  23. //===== rAthena Script ======================================= //= Healer //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Basic healer script. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Aligned coordinates with @go. //============================================================ - script Healer -1,{ .@Price = 0; // Zeny required for heal .@Buffs = 0; // Also buff players? (1: yes / 0: no) .@Delay = 5; // Heal delay, in seconds if (@HD > gettimetick(2)) end; if (.@Price) { message strcharinfo(0), "Healing costs " + callfunc("F_InsertComma",.@Price) + " Zeny."; if (Zeny < .@Price) end; if (select("^0055FFHeal^000000:^777777Cancel^000000") == 2) end; Zeny -= .@Price; } specialeffect2 EF_HEAL2; percentheal 100,100; if (.@Buffs) { specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; } if (.@Delay) @HD = gettimetick(2) + .@Delay; end; } // Duplicates //============================================================ alberta,25,240,6 duplicate(Healer) Healer#alb 909 aldebaran,135,118,6 duplicate(Healer) Healer#alde 909 amatsu,200,79,4 duplicate(Healer) Healer#ama 909 ayothaya,207,169,6 duplicate(Healer) Healer#ayo 909 comodo,184,158,6 duplicate(Healer) Healer#com 909 einbech,57,36,6 duplicate(Healer) Healer#einbe 909 einbroch,57,202,6 duplicate(Healer) Healer#einbr 909 geffen,115,72,6 duplicate(Healer) Healer#gef 909 gonryun,156,122,6 duplicate(Healer) Healer#gon 909 hugel,89,150,6 duplicate(Healer) Healer#hug 909 izlude,121,150,6 duplicate(Healer) Healer#izl 909 //Pre-RE: (125,118) jawaii,250,139,4 duplicate(Healer) Healer#jaw 909 lighthalzen,152,100,6 duplicate(Healer) Healer#lhz 909 louyang,226,103,4 duplicate(Healer) Healer#lou 909 manuk,272,144,6 duplicate(Healer) Healer#man 909 mid_camp,203,289,6 duplicate(Healer) Healer#mid 909 moc_ruins,72,164,4 duplicate(Healer) Healer#moc 909 morocc,153,97,6 duplicate(Healer) Healer#mor 909 moscovia,220,191,4 duplicate(Healer) Healer#mos 909 niflheim,212,182,5 duplicate(Healer) Healer#nif 909 payon,179,106,4 duplicate(Healer) Healer#pay 909 prontera,152,183,5 duplicate(Healer) Healer#prt 909 rachel,125,116,6 duplicate(Healer) Healer#rac 909 splendide,201,153,4 duplicate(Healer) Healer#spl 909 thor_camp,249,74,4 duplicate(Healer) Healer#thor 909 umbala,105,148,3 duplicate(Healer) Healer#umb 909 veins,217,121,4 duplicate(Healer) Healer#ve 909 xmas,143,136,4 duplicate(Healer) Healer#xmas 909 yuno,164,45,4 duplicate(Healer) Healer#yuno 909 // Duplicates (Renewal) //============================================================ brasilis,194,221,6 duplicate(Healer) Healer#bra 909 dewata,195,187,4 duplicate(Healer) Healer#dew 909 dicastes01,201,194,4 duplicate(Healer) Healer#dic 909 ecl_in01,45,60,4 duplicate(Healer) Healer#ecl 909 malangdo,132,114,6 duplicate(Healer) Healer#mal 909 malaya,227,204,6 duplicate(Healer) Healer#ma 909 mora,55,152,4 duplicate(Healer) Healer#mora 909 im trying to add auto repair and magnify to this NPC and i cant do it thnx in advance
×
×
  • Create New...