pajodex Posted February 2, 2018 Posted February 2, 2018 Hi, I checked the available PVP Ladders, but I didn't really get what I imagined to have. Anyways, to cut the chase, here is how my ideal anti-abuse should work: Player A = killer Player B = killed if A kills B more than 5 times, a penalty of 5 kills deduction will be given to player A and player B will be given an addition of 10 deaths. Player A and B will be tagged as abuser. And only way to lift it up is to pay a fine of 100k zeny to a Pvp warper (I can do this part my self) Thank you in advance who ever are willing to help me Quote
0 Hurtsky Posted February 2, 2018 Posted February 2, 2018 here the simple one that im still working on - script PVP_System -1,{ OnPCDieEvent: .@charName$ = strcharinfo(0); .@charLoc$ = strcharinfo(3); if ( callfunc ( "F_CheckPVP" , .@charLoc$ , .gmLvl ) == 0 ) end; newKillerName$ = rid2name ( killedrid ); if ( newKillerName$ == oldKillerName$ ) Feed++; if ( Feed == .abuse ) { atcommand "@kick "+strcharinfo(0); dispbottom "You're been tagged as abuser!"; dispbottom "You will keep been kicked until the gm reset abuse record"; Kill = Kill - .penalty; end; } if ( Feed > 0 ) announce strcharinfo(0) + " just feed " + newKillerName$ +" for " + Feed + " times.",bc_blue|bc_all; dispbottom newKillerName$ + " just kill you"; oldKillerName$ = newKillerName$; Die++; end; OnPCKillEvent: .@charName$ = strcharinfo(0); .@charLoc$ = strcharinfo(3); if ( callfunc ( "F_CheckPVP" , @charLoc$ , .gmLvl ) == 1 ) end; newVictimName$ = rid2name ( killedrid ); if ( newVictimName$ == oldVictimName$ ) Abuse++; if ( Abuse == .abuse ) { atcommand "@kick "+strcharinfo(0); dispbottom "You're been tagged as abuser!"; dispbottom "You will keep been kicked until the gm reset abuse record"; Kill = Kill - .penalty; end; } if ( Abuse > 0 ) dispbottom "You have kill " + newKillerName$ + " for " + Abuse + " times."; announce strcharinfo(0) + " just kill " + newVictimName$ + " at " + .@charLoc$ + "",bc_blue|bc_all; oldVictimName$ = newVictimName$; Kill++; end; OnReset: Abuse = 0; debugmes "Abuse " + Abuse; end; OnInit: .penalty = 5; // deduct 5 kill .abuse = 5; // tag abuse if 5 time for same name .gmLvl = 6; bindatcmd ( "resetpvp" , strnpcinfo(3) + "::OnReset" ); end; } function script F_CheckPVP { /*return 1 if block*/ setarray .pvpMap$[0],"ALL"; // change to map name if you want specific map like , "prontera" , "geffen"; .pvpMapSize = getarraysize ( .pvpMap$ ); // don't detect die if not in pvp maps if ( .pvpMap$[0] != "ALL" ) { for ( .@i = 0; .@i < .pvpMapSize; .@i++ ) { if ( getarg(0) != .pvpMap$[.@i] ) { return 1; } } } if ( .pvpMap$[0] == "ALL" ) return 0; // dont record if GM die if ( getgroupid() >= getarg(1) ) return 1; return 0; } still need to working on how to reset the abuse, but because this is sample, i think you can do it by yourself, adjust it as you want 1 Quote
0 pajodex Posted February 2, 2018 Author Posted February 2, 2018 12 minutes ago, Hurtsky said: here the simple one that im still working on - script PVP_System -1,{ OnPCDieEvent: .@charName$ = strcharinfo(0); .@charLoc$ = strcharinfo(3); if ( callfunc ( "F_CheckPVP" , .@charLoc$ , .gmLvl ) == 0 ) end; newKillerName$ = rid2name ( killedrid ); if ( newKillerName$ == oldKillerName$ ) Feed++; if ( Feed == .abuse ) { atcommand "@kick "+strcharinfo(0); dispbottom "You're been tagged as abuser!"; dispbottom "You will keep been kicked until the gm reset abuse record"; Kill = Kill - .penalty; end; } if ( Feed > 0 ) announce strcharinfo(0) + " just feed " + newKillerName$ +" for " + Feed + " times.",bc_blue|bc_all; dispbottom newKillerName$ + " just kill you"; oldKillerName$ = newKillerName$; Die++; end; OnPCKillEvent: .@charName$ = strcharinfo(0); .@charLoc$ = strcharinfo(3); if ( callfunc ( "F_CheckPVP" , @charLoc$ , .gmLvl ) == 1 ) end; newVictimName$ = rid2name ( killedrid ); if ( newVictimName$ == oldVictimName$ ) Abuse++; if ( Abuse == .abuse ) { atcommand "@kick "+strcharinfo(0); dispbottom "You're been tagged as abuser!"; dispbottom "You will keep been kicked until the gm reset abuse record"; Kill = Kill - .penalty; end; } if ( Abuse > 0 ) dispbottom "You have kill " + newKillerName$ + " for " + Abuse + " times."; announce strcharinfo(0) + " just kill " + newVictimName$ + " at " + .@charLoc$ + "",bc_blue|bc_all; oldVictimName$ = newVictimName$; Kill++; end; OnReset: Abuse = 0; debugmes "Abuse " + Abuse; end; OnInit: .penalty = 5; // deduct 5 kill .abuse = 5; // tag abuse if 5 time for same name .gmLvl = 6; bindatcmd ( "resetpvp" , strnpcinfo(3) + "::OnReset" ); end; } function script F_CheckPVP { /*return 1 if block*/ setarray .pvpMap$[0],"ALL"; // change to map name if you want specific map like , "prontera" , "geffen"; .pvpMapSize = getarraysize ( .pvpMap$ ); // don't detect die if not in pvp maps if ( .pvpMap$[0] != "ALL" ) { for ( .@i = 0; .@i < .pvpMapSize; .@i++ ) { if ( getarg(0) != .pvpMap$[.@i] ) { return 1; } } } if ( .pvpMap$[0] == "ALL" ) return 0; // dont record if GM die if ( getgroupid() >= getarg(1) ) return 1; return 0; } still need to working on how to reset the abuse, but because this is sample, i think you can do it by yourself, adjust it as you want Alright, thanks! I will work on this! Quote
Question
pajodex
Hi,
I checked the available PVP Ladders, but I didn't really get what I imagined to have.
Anyways, to cut the chase, here is how my ideal anti-abuse should work:
Player A = killer Player B = killed
if A kills B more than 5 times, a penalty of 5 kills deduction will be given to player A and player B will be given an addition of 10 deaths.
Player A and B will be tagged as abuser.
And only way to lift it up is to pay a fine of 100k zeny to a Pvp warper (I can do this part my self)
Thank you in advance who ever are willing to help me
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.