Jump to content

Aureon

Members
  • Posts

    281
  • Joined

  • Last visited

Everything posted by Aureon

  1. Find this part: atcommand "@nuke "+strcharinfo(0); Below that, add this: cutin "",255; close;
  2. That line was stored msgstringtable.txt For that specific message 'First Step of Job Change!' can be found here: Achievement_db.yml
  3. You can use this as an alternative to that uncommented line: mes "^FF0000Reward^000000 - Base Level EXP: "+getarg(0)+" and Job Level EXP: ^0000FF"+getarg(1)+"^000000";
  4. @Quesooo If failed x3 the players will get nuked using this: For the single slot machine mode, find this part of the script: cutin .ssm_animate$[3] + atoi(.ssm_animate$[.@a]),4; dispbottom "Failed"; below that line, add the following: slt_fld01++; if (slt_fld01 >= 3){ slt_fld01 = 0; atcommand "@nuke "+strcharinfo(0); } For the Triple slot machine mode, find his part of the script: } else { dispbottom "Failed"; } and replace it with this: } else { dispbottom "Failed"; slt_fld03++; if (slt_fld03 >= 3){ slt_fld03 = 0; atcommand "@nuke "+strcharinfo(0); } } Here's your script, I already added the changes I made above. prontera,163,161,4 script SlotMachine 563,{ if( getgmlevel() == 99 ) { mes "Welcome Administrator.","What would you like to do?"; menu "Play Game",-,"Change Slot Machine Mode",iMode; next; } switch( getd(".mode"+strnpcinfo(3)+"") ){ case 0: // Single Slot machine mode. mes "Do you want to play a game?"; if( !.payment ) { mes "It costs: "+ .ssm_payment_message$[0] +" to play."; } else if ( .payment == 1 ) { mes "It costs: "+ .ssm_payment_message$[1] +" to play."; } else if ( .payment == 2 ) { mes "It costs: "+ .ssm_payment_message$[0] +" & "+ .payment_message$[1] +" to play."; } if( select("YES:NO") == 2 || Zeny < .ssm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.ssm_payment[1]) < .ssm_payment[2] && .payment ){ close; } while( @menu == 1 ){ if (.EventON == 0) {mes "Slot Machine already finished"; cutin "",255; end;} if( !.payment || .payment == 2 ) { Zeny -= .ssm_payment[0]; } if( .payment ) { delitem( .ssm_payment[1], .ssm_payment[2] ); } if( .soundeffects ) { soundeffect "slot_jackpot.wav",0; } .@a = rand(1,100); if( .@a < atoi(.ssm_animate$[0]) ){ .@a = 1; } else { .@a = 2; } .@b = 1; while( .@b < atoi(.ssm_animate$[.@a]) ) { cutin .ssm_animate$[3] + .@b,4; sleep2 ( ( atoi(.ssm_animate$[4]) * 1000 ) / atoi(.ssm_animate$[.@a]) ); .@b++; } if( .@a == 1 ){ cutin .ssm_animate$[3] + atoi(.ssm_animate$[.@a]),4; dispbottom "Failed"; slt_fld01++; if (slt_fld01 >= 3){ slt_fld01 = 0; atcommand "@nuke "+strcharinfo(0); } } else { cutin .ssm_animate$[3] + atoi(.ssm_animate$[.@a]),4; switch(rand(5)) { case 0: getitem 603,5; specialeffect2 10; break; case 1: getitem 617,5; specialeffect2 10; break; case 2: getitem 644,5; specialeffect2 10; break; case 3: getitem 616,1; specialeffect2 10; break; case 4: getitem 7776,2; specialeffect2 10; break; case 5: getitem 18571,1; specialeffect2 10; break; } } if( select("Another Round:I'm done") == 2 || Zeny < .ssm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.ssm_payment[1]) < .ssm_payment[2] && .payment ){ cutin "",255; close; } } end; case 1: // Triple Slot machine mode. mes "Do you want to play a game?"; if( !.payment ) { mes "It costs: "+ .tsm_payment_message$[0] +" to play."; } else if ( .payment == 1 ) { mes "It costs: "+ .tsm_payment_message$[1] +" to play."; } else if ( .payment == 2 ) { mes "It costs: "+ .tsm_payment_message$[0] +" & "+ .tsm_payment_message$[1] +" to play."; } if( select("YES:NO") == 2 || Zeny < .tsm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.tsm_payment[1]) < .tsm_payment[2] && .payment ){ close; } while( @menu == 1 ){ if (.EventON == 0) {mes "Slot Machine already finished"; cutin "",255; end;} if( !.payment || .payment == 2 ) { Zeny -= .tsm_payment[0]; } if( .payment ) { delitem( .tsm_payment[1], .tsm_payment[2] ); } if( .soundeffects ) { soundeffect "slot_jackpot.wav",0; } // Slot 1 = 100% Chance for success. (Because I didn't make a fail animation for it. .@2 = rand(1,100); //Rolls dice for Slot 2 .@3 = rand(1,100); //Rolls dice for Slot 3 if( .@2 <= atoi(.tsm_animate$[0]) && .@3 <= atoi(.tsm_animate$[1]) ){ .@a = 8; } else if( .@2 <= atoi(.tsm_animate$[0]) && .@3 > atoi(.tsm_animate$[1]) ){ .@a = 6; } else if( .@2 > atoi(.tsm_animate$[0]) && .@3 <= atoi(.tsm_animate$[1]) ){ .@a = 4; } else { .@a = 2; } .@b = 1; while( .@b < atoi(.tsm_animate$[.@a+1]) ) { cutin .tsm_animate$[.@a] + .@b,4; sleep2 ( ( atoi(.tsm_animate$[10]) * 1000 ) / atoi(.tsm_animate$[.@a+1]) ); .@b++; } cutin .tsm_animate$[.@a] + atoi(.tsm_animate$[.@a+1]),4; if( .@a == 2 ){ switch(rand(5)) { case 0: getitem 603,5; specialeffect2 10; break; case 1: getitem 617,5; specialeffect2 10; break; case 2: getitem 644,5; specialeffect2 10; break; case 3: getitem 616,1; specialeffect2 10; break; case 4: getitem 7776,2; specialeffect2 10; break; case 5: getitem 18571,1; specialeffect2 10; break; } } else { dispbottom "Failed"; slt_fld03++; if (slt_fld03 >= 3){ slt_fld03 = 0; atcommand "@nuke "+strcharinfo(0); } } if( select("Another Round:I'm done") == 2 || Zeny < .tsm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.tsm_payment[1]) < .tsm_payment[2] && .payment ){ cutin "",255; close; } } end; } OnSingleSlot: setd ".mode"+strnpcinfo(3)+"",0; end; OnTripleSlot: setd ".mode"+strnpcinfo(3)+"",1; end; iMode: next; mes "Which did you want to do?"; menu "Change THIS machine's mode:Change ALL machine's mode",-; if( @menu == 1 ) { next; mes "What mode would you like this machine to have?"; menu "Single Slot Machine Mode:Triple Slot Machine Mode",-; if( @menu == 1 ) { setd ".mode"+strnpcinfo(3)+"",0; } else { setd ".mode"+strnpcinfo(3)+"",1; } close; } else { next; mes "What mode would you like to change all slot machines to?"; menu "Single Slot Machine Mode:Triple Slot Machine Mode",-; if( @menu == 1 ) { donpcevent "::OnSingleSlot"; } else { donpcevent "::OnTripleSlot"; } close; } OnClock0000: OnClock1000: OnClock1600: announce "Mysterious Slot Machine will begin at prontera 163 161 in 1 minute.", bc_all; sleep 60000; announce "Slot machine event has begun at prontera 163 161", bc_all; set .EventON,1; hideoffnpc strnpcinfo(3); sleep 225000; announce "Mysterious Slot Machine event is over thank you for playing", bc_all; set .EventON,0; hideonnpc strnpcinfo(3); end; OnInit: hideonnpc strnpcinfo(3); //[ 0 = Single Slot Machine Mode ]_[ 1 = Triple Slot Machine Mode ] setd ".mode"+strnpcinfo(3)+"",1; //[0] = Fail Rate //[1] = Fail (Do not change) //[2] = Success (Do not change) //[3] = File Name (Do not change) //[4] = Animation Time (Do not change, for best results :D) setarray .ssm_animate$[0],"30","29","33","slot_","3"; //[0] = Fail Rate "Slot 2" //[1] = Fail Rate "Slot 3" //[2] = SSS (Do not change) //[3] = SSS_Count (Do not change) //[4] = SSF (Do not change) //[5] = SSF_Count (Do not change) //[6] = SFS (Do not change) //[7] = SFS_Count (Do not change) //[8] = SFF (Do not change) //[9] = SFF_Count (Do not change) //[10] = Animation Time (Do not change, for best results :D) setarray .tsm_animate$[0],"30","30","SSS_","41","SSF_","37","SFS_","41","SFF_","45","3"; // Payment Settings // Payment Type // 0 = Zeny, 1 = Item, 2 = Zeny&Item .payment = 1; // [0] = Zeny, [1] = Item ID, [2] = Item Amount; setarray .ssm_payment[0],100000,7720,3; // Single Slot Machine Payment Price setarray .tsm_payment[0],100000,7720,3; // Triple Slot Machine Payment Price // DO NOT CHANGE BELOW // Payment Text Syntax setarray .ssm_payment_message$[0],""+ .ssm_payment[0] +" zeny",""+ getitemname(.ssm_payment[1]) +" x"+ .ssm_payment[2] +""; setarray .tsm_payment_message$[0],""+ .tsm_payment[0] +" zeny",""+ getitemname(.tsm_payment[1]) +" x"+ .tsm_payment[2] +""; end; } Afaik, using @nuke command, the nuked character automatically has the explosion effect so no need to use 'specialeffect' command. PS: I haven't tried to run it in-game.
  5. @padangyoesa You don't have to add the name of the map, just use @maprecall and it would automatically warp all players on the map to your current location.
  6. @lexaeus @padangyoesa I believe this part: if(getgmlevel()==0) end; should be: if(getgmlevel() > 0) end; with the changes above, all characters will be warped to your current location except GMs. I hope this would solve your problem please do add 'end;' after 'mapwarp' and it should look like this: mapwarp .@map$,.@map$,.@x,.@y,0; end;
  7. @iAmGnome Unless if you tweak 'opendressroom' at src
  8. Have you tried to restart your server and check?
  9. Hello there @sader1992, why is it I can't find the command on script.cpp? https://github.com/rathena/rathena/blob/master/src/map/script.cpp
  10. @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); }
  11. I guess they've had removed it even 'opendressroom' command, can no longer find it on script.cpp However have you tried to use this one? opendressroom(0);
  12. I suggest you to read this part thispartanswerswhen and thispartanswershow
  13. @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 novending
  14. @Dev Blaze Add this below 'OnUpate' label if(checkvending() >= 1) { dispbottom "Vending is not allowed."; deltimer .npc_name$+"::OnUpdate"; end; }
  15. @bdgro Kindly look for this part of your script: mes "[LMS Manager]"; mes "Thank you for registering Mr. " + strcharinfo(0) + ", Have fun!"; close2; npctalk ""+strcharinfo(0)+" has registered for the Last Man Standing."; warp "pvp_n_7-5",103,99; end; and change it to: mes "[LMS Manager]"; mes "Thank you for registering Mr. " + strcharinfo(0) + ", Have fun!"; sleep2 1000; npctalk strcharinfo(0)+" has registered for the Last Man Standing."; warp "pvp_n_7-5", 103, 99; end; I hope that solves your problem, good luck!
  16. @HanzMore As I've had reviewed your configurations, i noticed you got "6" shops all in all but you just duplicated "5" on the dummy shop data, what about adding 1 more? - shop qshop6 -1,909:-1 Another question, what error comes out when you clicked it? It should show which part you misconfigured. PS: Please make use of the codebox, it made me sick while scrolling
  17. @Kidlatsv Im not a good scripter but tried optimized your script a bit. I haven't tried to run it in-game. I hope this solves your problem, good luck! mag_dun01,127,123,3 script Dancing Flame 802,{ if (!#10gallonstarted){ mes .npc$; mes "I am a fire elemental, and I have a proposal for you, "+strcharinfo(0)+"."; next; if (select("What is it?","I don't have for this, sorry.") != 1){ mes .npc$; mes "That's too bad, come back when you change your mind."; close; } mes .npc$; mes "I know of thy quest to save Midgard and I wish to help you on your journey."; next; mes .npc$; mes "In order to aid you I shall make a headgear imbued with some of my powers, which will surely be of great use to you."; next; mes "["+strcharinfo(0)+":]"; mes "What headgear would that be?"; next; mes .npc$; mes "...a ^00c000"+getitemname(.rewardid)+"^0000000."; next; mes .npc$; mes "It won't come for free though."; next; mes .npc$; mes "I will need you to collect items which I require in order to make the headgear for you."; next; mes "["+strcharinfo(0)+".]"; mes "What do you need?"; next; mes .npc$; mes "I need the following items:"; mes "^00FF00_______________________________^000000"; for ( .@i = 0; .@i < getarraysize(.require); .@i += 2 ){ mes .require[.@i+1]+" "+getitemname(.require[.@i]); } mes "Bring me these items and I sh-all make the headgear for you, now go."; #10gallonstarted = 1; close; } mes .npc$; mes "You have returned, have you collected the items I require?"; next; mes "["+strcharinfo(0)+".]"; mes "Yes, I have!"; next; mes .npc$; mes "Very well then, let's check..."; next; for ( .@i = 0; .@i < getarraysize(.require); .@i += 2 ){ if (countitem(.require[.@i]) < .require[.@i+1]){ .@count++; } } if (.@count){ mes "I'm sorry, but you need to collect more of the required items."; close; } for ( .@j = 0; .@j < getarraysize(.require); .@j += 2 ){ delitem .require[.@j], .require[.@j+1]; } mes .npc$; mes "Excellent, you have collected all that I require!"; mes "May it serve you well."; getitem .rewardid, 1; next; mes .npc$; mes "If you wish for me to make you another, all you have to do is bring me the required items again."; close; OnPCLoadMapEvent: showevent 1,0; end; OnInit: // CONFIGURATION // set this to your npc name .npc$ = "[Dancing Flame]"; // set this to your reward item id .rewardid = 18940; // item requirements syntax: <item id>, <item amount>, <item id>, <item amount>,... setarray .require[0], 2248, 1, 7098, 100, 7097, 85, 7122, 70, 7120, 55, 994, 40, 716, 25, 7426, 10; while(1){ npctalk "Greetings, hero, please approach."; sleep2 60000; } end; }
  18. He probably meant, as soon as the roulette starts, it should animate (moving pictures) before the player gets the reward, in his case there's no animation happened. Just like here in the video:
  19. You can use this for your referrence https://github.com/rathena/rathena/wiki/Mapflag
  20. You can now access rA wiki thru github https://github.com/rathena/rathena/wiki/PCRE
  21. Just follow on the weemapcache usage part
  22. use weemapcache https://rathena.org/board/topic/53424-weemapcache/ or rA mapcache tool to update
  23. poring_c01 and poring_c02 is currently disabled by default on maps_athena.conf ,https://github.com/rathena/rathena/blob/master/conf/maps_athena.conf#L712 you just need to uncomment it. for the old izlude on pre-re, just update your map_cache.dat (db/pre-re/map_cache.dat).
  24. poring_c01 and poring_c02 is currently disabled by default on maps_athena.conf ,https://github.com/rathena/rathena/blob/master/conf/maps_athena.conf#L712 you just need to uncomment it. for the old izlude on pre-re, just update your map_cache.dat (db/pre-re/map_cache.dat). Edit: i just remembered something
×
×
  • Create New...