Leaderboard
Popular Content
Showing content with the highest reputation on 10/06/17 in Posts
-
1 point
-
@GodKnows Jhomz Hello, Im not 100% sure about this so please test this first on your local server. First, from your script, kindly look for this line: set .@sql$, ((.Options&4)?"position = 0":"online = 1"); and replace it with this: set .@sql$,"position = 0"; Second, from your script, kindly look again for this line: set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid); and replace it with this: if (.Options&4){ set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid); } else { set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = "+.@gid,.@aid,.@cid); }1 point
-
1 point
-
I suggest you to read this part thispartanswerswhen and thispartanswershow1 point
-
@Hossam You wanted to reset the values regardless if players are online or not? Tho, i haven't tried to run this in-game but I hope this solves your problem, good luck! //===== Stolao Scripts ================================== //= PvP Ladder //===== Author ================================================== //= Stolao (Original Author) //= Happy (2.0) //= Aureon (2.3) //===== Current Version: ===================================== //= 2.3(unofficial) //===== Compatible With: ===================================== //= rAthena SVN, Hercules, 3ceam, eAthena //===== Description: ========================================= // Configurable Pvp Ladder //===== Comments: ============================================ //= [Stolao] // Needs bug testing, please report any bugs // Unable to test thurally on my comp atm //= [Happy] // Update* I tested it and found tons of bugs, I'm in rush so // I fixed them myself. It is now working 100%. // The version is unofficial version. Sorry Stolao I fixed it // Without your permission XD //= [Aureon] // Update* I made it all pk values of all characters to be // deleted upon reset (made through request) // link: https://rathena.org/board/topic/113064-pvp-rank-reset/ //===== Additional Comments: ================================= //= 1.00 Initial Release //= 1.01 Added Location with veiwing of ladder //= 1.02 Added GM Menu //= 1.03 Added atcommand //= 1.04 Shortend menu script //= 1.05 Added PvpPoints into confug and script //= 1.06 Added Abuse Protection //= 1.07 Made Pvp Points Configurable //= 1.08 Fixed typo in Reset Option //= 1.09 Made Amount of pvp points earned configurable //= 1.0A Ajusted Spacing for easier reading //= 1.0B Added Warp to savepoint on abuse into config //= 2.0 (unofficial)Fixed bugs on ranking modification and // bitwise permissions //= 2.0b minor fix on resetting the ladder //= 2.1 tested fix to ladder reset part //= 2.3 reset all characters it may be offline or online characters //===== Contact Ifo: ========================================= //= [Stolao] // Email: [email protected] //= [Happy] // Email: http://hercules.ws/board/user/164-happy/ //============================================================ prontera,139,174,6 script PvP Rank 837,{ mes "[Ladder Event]"; OnPvpLadder: mes "Ranking"; if(getgmlevel() >= .GM){ // Menu Generator for GM and Normal Player set .@i,select("View Ranking:Leave:Reset PVP Stats"); } else { set .@i,select("View Ranking:Leave"); } switch(.@i) { // Where generated menu goes to case 3: // DReset PvP Stats mes "Are you sure you want to delete"; mes "ALL pvp records?"; if(select("No:Yes")==1) close; next; mes "Wait one Moment..."; mes "....."; cleararray $TOPPK$[0],0,127; // Clears array where top rank char names are stored. cleararray $TOPPK[0],0,127; // Clears array where top rank kill count are stored. query_sql("UPDATE `char_reg_num_db` SET `value` = '0' WHERE `key` = 'pl_pkcount'"); // Clears kills saved on character variables (NEW: on all characters it may be online or offline) mes "Cleared pvp data."; close; case 1: // View PvP Records for(set .@i,1; .@i <= .MaxPlayers; set .@i,.@i+1){ mes (.@i)+": "+ $TOPPK$[.@i] +" with "+ $TOPPK[.@i] +" kills"; if((.@i) % 10 == 0){ // A nice way to create multiple pages by 10 ranks if(select("Read More:Leave") == 1){ next; } else { close; } } } case 2: // Leave close; } close; OnPCKillEvent: if(.Options&2 && (agitcheck() || agitcheck2())){ // Check to disable during woe end; } if(getgmlevel() <= .GmLvl){ if(.Options&1 || strcharinfo(3) == .Map$){ if(.Options&32){ // Repeatkill abuse counter for(set .@i,.RepeatCount; .@i > 0; set .@i, .@i-1){ set @PKedID[.@i+1], @PKedID[.@i]; // Old killedrids moved to upper array elements } set @PKedID,killedrid; // set killedrid to [0] position. for(set .@i,1; .@i < .RepeatCount; set .@i,.@i + 1){ if(@PKedID[0] == @PKedID[.@i]){ // check if killerid same as the previously killedrids set .@s, .@s + 1; // if all 5 past killedrid are the same then this would become 5 and trigger protection } else { break; // else stop checking } } } if(.@s < .RepeatCount){ // if not abusing kills according to repeatcount set pl_pkcount,pl_pkcount + 1; if(.Options&16) { set getd(.PointType$),getd(.PointType$) + .PvpEarned; // add points } if(pl_pkcount > $TOPPK[.MaxPlayers]) { // If higher than last ranker for(set .@i,1; .@i <= .MaxPlayers ; set .@i, .@i + 1) { // Reorganize the ranking if (pl_pkcount > $TOPPK[.@i] && !.@newrank) { set .@newrank,.@i; } if (strcharinfo(0) == $TOPPK$[.@i] && .@newrank == .@i) { setarray $TOPPK$[.@i], strcharinfo(0); setarray $TOPPK[.@i], pl_pkcount; set .@newrank,0; break; } if ( strcharinfo(0) == $TOPPK$[.@i] && .@newrank != .@i) { set .@existrank,.@i; break; } } if (.@newrank) { for (set .@e,.MaxPlayers; .@e >= 0 ; set .@e, .@e - 1) { if (.@e < .@existrank) { setarray $TOPPK$[.@e + 1], $TOPPK$[.@e]; // move this ranker backward setarray $TOPPK[.@e + 1], $TOPPK[.@e]; } if (.@e == .@newrank) { setarray $TOPPK$[.@e], strcharinfo(0); setarray $TOPPK[.@e], pl_pkcount; if(.Options&4) { announce strcharinfo(0)+"'s rank is now "+(.@e)+"",bc_all; } break; } } } } } else { if(.Options&64) { warp "Save",0,0; } } } } end; OnInit: set .GM,99; set .MaxPlayers,10; // Number of Players held in Records set .GmLvl,99; // Highest GM level Able to Hold a Record, if Option 8 is Disabled set .Map$,"guild_vs3"; // Map Pvp Must Take Place on in order to Count, if Option 1 is Disabled set .RepeatCount,5; // Number of kills on same person before it detects abuse, max of 128 set .PointType$,"#PvpPoints"; // Name of points earned, E.G. #Cash Points set .PvpEarned,1; // Number of Pvp Points Earned set .Options,4|32|64; // Bitwise Variable // 1: Only Counts Kills on .Map$ if Disabled // 2: Disables Record Holding during WOE // 4: Announce When Someone Takes a Rank // 8: Allow Gms Above level .GmLvl To Be on Ladder // 16: Gain PvP Points on Kills (#PvpPoints) // 32: Repeat Kill Protection // 64: Warp to Save on abuse // Example: "1+2+4 = 7" No Forced Map, Disables Record Holding during WOE and Announces New Record Holders bindatcmd("PvpLadder" ,"Pvp_Ladder::OnPvpLadder",0,99); waitingroom "PvP Rank - ترتيب الشغب",0; end; } pvp_n_1-5 mapflag nobranch pvp_n_1-5 mapflag novending pvp_n_1-5 mapflag nosave pvp_n_1-5 mapflag nowarp pvp_n_1-5 mapflag novending pvp_y_1-2 mapflag nobranch pvp_y_1-2 mapflag novending pvp_y_1-2 mapflag nosave pvp_y_1-2 mapflag nowarp pvp_y_1-2 mapflag novending pvp_y_1-4 mapflag nobranch pvp_y_1-4 mapflag novending pvp_y_1-4 mapflag nosave pvp_y_1-4 mapflag nowarp pvp_y_1-4 mapflag novending1 point
-
For is like the while, an loop, .require is the array which was set in OnInit and holds the requirements for the exchange. With for() he goes through that array and let it read the content of it and delete the items when everything is collected. Edit: Oceanid was faster ;).1 point
-
The first is a for loop that is iterating through the array of required items to check that you have the required items and the correct amount. If you don’t have all of the required it’s its going to display the message that you still require some items. If everything checks out in the first for loop it will move on to the second one which is going to iterate through the array and del the required item and the amount from your inventory1 point
-
It is a custom backup solution I've been working on, Thanks to feedback of community, I managed to make a V2 V2 of my Database Backup solution Featuring 1. generate a backup of databases specified in a list 2. Name them with yyy-mm-dd[DatabaseName] format 3. Compress them into .7z using maximum compression 4. Set a password on .7z archive 5. Send them to cloud storage Google Drive 6. Write logs 7. Removes all compressed backups 28 days or older (keeping local folder nice and clean) 8. Can be automated with cron to run even every 12 hours Ow yeah, Don't worry about someone hacking your GoogleDrive, if you put 14 character+ Alphanumeric password on yout backup archives it is going to be bruted loong time...1 point