Habilis 119 Posted June 15, 2018 View File [Event] Wheel of fortune Wheel of fortune Fun event, this particular version is set to accept Zeny as a payment for gambling. Would like to thank a lot @Myriad for Improving my code! Package contains: data.zip data folder to put into your GRF file or straight into data folder. wheel_of_fortune.txt the script itself. WheelOfFortune.psd the Photoshop source file, you can edit the prizes pictures if you like. This event can be configured to run automatically OnClock0800: OnClock1200: OnClock1600: OnClock2000: OnClock2200: just change this part of the script, at what time you want the script to run. Or, a GM can start this event by running this command : @wheel_of_fortune start As a reference, This is a version of the script using event points as a payment (in case you would like to take a look) https://pastebin.com/wN6ZjxM0 Submitter Habilis Submitted 06/14/18 Category Events & Games 3 Maple, grimmm and Begin reacted to this Quote Share this post Link to post Share on other sites
Maple 6 Posted June 15, 2018 (edited) @Habilis Can you put in the PSD to edit the name Lucky Spin? It's because I want to translate into Portuguese. Edited June 15, 2018 by Dream Catcher Quote Share this post Link to post Share on other sites
Habilis 119 Posted June 15, 2018 It is in the PSD Quote Share this post Link to post Share on other sites
Maple 6 Posted June 15, 2018 I had not even seen it that I could edit, sorry ahahaha Quote Share this post Link to post Share on other sites
Begin 11 Posted June 16, 2018 Hello Habilis, how to make this as permanent NPC? What lines needed to remove? Quote Share this post Link to post Share on other sites
bWolfie 138 Posted June 16, 2018 6 hours ago, Begin said: Hello Habilis, how to make this as permanent NPC? What lines needed to remove? just remove cases of disablenpc 1 Begin reacted to this Quote Share this post Link to post Share on other sites
Begin 11 Posted June 16, 2018 Thank you, Myriad. It works. Quote Share this post Link to post Share on other sites
tathanvocuc017 1 Posted June 17, 2018 It have problem.. http:// help... Quote Share this post Link to post Share on other sites
bWolfie 138 Posted June 17, 2018 1 hour ago, tathanvocuc017 said: It have problem.. http:// help... you have edited script. download fresh one and start again. Quote Share this post Link to post Share on other sites
noobzter003 3 Posted June 17, 2018 how to fix this boss thanks Quote Share this post Link to post Share on other sites
bWolfie 138 Posted June 17, 2018 1 hour ago, noobzter003 said: how to fix this boss thanks you should show/explain how you triggered that Quote Share this post Link to post Share on other sites
InFiNiTe 0 Posted June 25, 2018 (edited) Could you please update the Event Points version? Also, ending the event with the command @wheel_of_fortune is not working. Edited June 25, 2018 by InFiNiTe Quote Share this post Link to post Share on other sites
bWolfie 138 Posted June 25, 2018 9 hours ago, InFiNiTe said: Could you please update the Event Points version? Also, ending the event with the command @wheel_of_fortune is not working. I updated the pastebin. There was an error it was pointing to OnEnd instead of OnStop. Thanks. 2 InFiNiTe and Habilis reacted to this Quote Share this post Link to post Share on other sites
InFiNiTe 0 Posted June 26, 2018 Thank you so much! Quote Share this post Link to post Share on other sites
bWolfie 138 Posted June 28, 2018 5 hours ago, evolutionbr said: Compartible with Rathena ? only works with best emulator hercules master race we are best habilis prime transform no noob emulator 2 iraciz and Thinker reacted to this Quote Share this post Link to post Share on other sites
Habilis 119 Posted June 28, 2018 (edited) 7 minutes ago, Myriad said: only works with best emulator hercules master race we are best habilis prime transform no noob emulator 5 hours ago, evolutionbr said: Compartible with Rathena ? No, sry, this may not be compatible with rAthena. As this script was developed and released for Hercules community. Edited June 28, 2018 by Habilis 1 evolutionbr reacted to this Quote Share this post Link to post Share on other sites
Begin 11 Posted June 30, 2018 Hello Habilis, how to make the requirement a TCG Card (7227) instead of Zeny or Points? I tried to make it like this: .Zeny_Cost = 1; And replaced all the Zeny variable to 7227 but the TCG cards is not decreasing when spinning. Thanks. Quote Share this post Link to post Share on other sites
Habilis 119 Posted June 30, 2018 (edited) It is an item so these functions be of help to you if(countitem(.RequiredItem_id) >= .RequiredItem_qty) and delitem(.RequiredItem_id, .RequiredItem_qty); Edited June 30, 2018 by Habilis 1 Begin reacted to this Quote Share this post Link to post Share on other sites
Begin 11 Posted July 1, 2018 Thanks, it worked. Habilis is not bored. Quote Share this post Link to post Share on other sites
chlas 0 Posted October 21, 2018 I have a problem, when the npc turns off and the player does not come out, the .bmp remains enabled and the npc does not close the dialogue = s how i can solved that plz? Quote //===== Hercules Script ====================================== //= Wheel of Fortune //===== By =================================================== //= Habilis //= Edited by Myriad //===== Version ============================================== //= 1.02 - June 15, 2018 // - Made the script work with zeny, to be more accesibly to everyone. //= 1.01 - June 14, 2018 // - Added @wheel_of_fortune GM command (level 98+). // - Merged S_Pay and S_Loop subs into main line of text. // - S_Gamble is now S_Spin and it will 'return' instead of // calling back to the initial sub. //= 1.00 - June 13, 2018 // - Initial script edit for Habilis. //===== Description ========================================== //= Wheel of fortune something. //============================================================ - script Wheel_of_Fortune FAKE_NPC ,{ OnInit: disablenpc("Wheel of Fortune#Main"); .EventName$ = "[Wheel Of Fortune]"; end; OnClock0900: OnClock1600: OnClock2200: OnStart: .Start = true; announce(sprintf("%s : The event will begin in 1 minute, near the center of Prontera.", .EventName$), bc_blue | bc_all); initnpctimer(); end; OnTimer60000: // 1 min enablenpc("Wheel of Fortune#Main"); announce(sprintf("%s : Come to Prontera and test your luck", .EventName$), bc_yellow | bc_all); end; OnTimer60500: // 1 mins announce(sprintf("%s : One minute, do your last spin!", .EventName$), bc_yellow | bc_all); end; OnTimer120000: // 2 mins OnStop: .Start = false; stopnpctimer(); disablenpc("Wheel of Fortune#Main"); end; OnCommand: if (.@atcmd_numparameters != 1) { dispbottom(sprintf("Usage: %s <start/end>", .@atcmd_command$), 0x00FF00); dispbottom(sprintf("%s failed.", .@atcmd_command$), 0x00FF00); end; } if (.@atcmd_parameters$[0] == "start") { if (!.Start) donpcevent(sprintf("%s::OnStart", strnpcinfo(NPC_NAME))); else { dispbottom("The Wheel of Fortune has already started.", 0x00FF00); dispbottom(sprintf("%s failed.", .@atcmd_command$), 0x00FF00); } } else if (.@atcmd_parameters$[0] == "end") { if (.Start) donpcevent(sprintf("%s::OnEnd", strnpcinfo(NPC_NAME))); else { dispbottom("The Wheel of Fortune is not active.", 0x00FF00); dispbottom(sprintf("%s failed.", .@atcmd_command$), 0x00FF00); } } else { dispbottom(sprintf("Usage: %s <start/end>", .@atcmd_command$), 0x00FF00); dispbottom(sprintf("%s failed.", .@atcmd_command$), 0x00FF00); } end; } prontera,164,169,1 script Wheel of Fortune#Main 2_SLOT_MACHINE,{ OnTalk: if (Zeny < .Zeny_Cost && #freewheelfortunespin < 0) { mes("[^0055FFLucky Spin^000000]", .EventName$); mes("You are out of Zeny"); mes("and have no more"); mes("free spins. Come back"); mes("next time for more!"); close(); } .@mes$ = (#freewheelfortunespin > 0) ? sprintf(", but you, my friend, have %d free spin%s!", #freewheelfortunespin, (#freewheelfortunespin == 1) ? "" : "s") : "."; addtimer(1, sprintf("%s::OnEnd", strnpcinfo(NPC_NAME))); mes("[^0055FFLucky Spin^000000]", .EventName$); mes("Do you want to spin the wheel?"); mes("It costs ^FF000050.000 Zeny^000000 to play", .@mes$); next(); while (true) { if (Zeny < .Zeny_Cost && #freewheelfortunespin < 0) callsub(S_End); switch (select( (#freewheelfortunespin > 0) ? sprintf("Yes! Use free spin! (%d left)", #freewheelfortunespin) : "", (Zeny >= .Zeny_Cost ) ? sprintf("Yes! Use Zeny. (costs %dz)", .Zeny_Cost) : "", "No (Leave)" )) { // pay with free spin case 1: if (#freewheelfortunespin > 0) { if ((#freewheelfortunespin -= 1) < 0) #freewheelfortunespin = 0; callsub(S_Spin); } else callsub(S_End); break; // Pay with zeny case 2: if (Zeny >= .Zeny_Cost) { Zeny -= .Zeny_Cost; callsub(S_Spin); } else { cutin("aca_salim02", 2); mes("[^0055FFLucky Spin^000000]", .EventName$); mes("Awww, you don't have enough to gamble..."); mes(" "); mes("Have you ever heard?"); mes("'Money isn't all that matters' Got it?"); mes("Byeeeeeeeeeeeeee ;)"); callsub(S_End); } break; default: callsub(S_End); } } // Wheel spin animation S_Spin: .@Sector = rand(.Sector_Range[0], .Sector_Range[1]); .@Display = .@Sector * 2 - 1; .@Speed = .Spin_Speed; for (.@i = 0; .@i < .nbTurns; .@i++) { .@b = .Cutin_Range[0]; while (.@b <= .Cutin_Range[1]) { cutin(sprintf("%s%d", .Cutin$, .@b), 4); sleep2(.@Speed); .@b++; .@Speed += 1; // not ++, because you may want to adjust the stopping +1 +2 +3 } } .@b = .Cutin_Range[0]; while (.@b < .@Display) { cutin(sprintf("%s%d", .Cutin$, .@b), 4); sleep2(.@Speed); .@b++; } cutin(sprintf("%s%d", .Cutin$, .@b), 4); if (.Prize_ID[.@Sector] == -1) { // Free spin if (.Sound_Effects) soundeffect("wheel_jackpot.wav", 0); announce(sprintf("[%s] : Wow, %dx more Free spins!!!", .EventName$, .Prize_Qty[.@Sector]), bc_blue | bc_self); #freewheelfortunespin = #freewheelfortunespin == 0 ? .Prize_Qty[.@Sector] : #freewheelfortunespin + .Prize_Qty[.@Sector]; } else if (.Prize_ID[.@Sector] == 0) { // Nothing if (.Sound_Effects) soundeffect("wheel_lost.wav", 0); announce(sprintf("[%s] : Awwww, no luck in your gamble, more luck in love...", .EventName$), bc_blue | bc_self); } else { // Item if (.Sound_Effects) soundeffect("wheel_won.wav", 0); announce(sprintf("[%s] : %dx %s - enjoy your prize!", .EventName$, .Prize_Qty[.@Sector], getitemname(.Prize_ID[.@Sector])), bc_blue | bc_self); getitem(.Prize_ID[.@Sector], .Prize_Qty[.@Sector]); } sleep2(1000); if (Zeny < .Zeny_Cost && #freewheelfortunespin < 0) { mes("[^0055FFLucky Spin^000000]", .EventName$); mes("You are out of Zeny"); mes("and have no more"); mes("free spins. Come back"); mes("next time for more!"); close(); } return; S_End: close2(); OnEnd: cutin("", 255); end; OnInit: .EventName$ = "Wheel Of Fortune"; bindatcmd("wheel_of_fortune", "Wheel_of_Fortune::OnCommand", 98,false); .Spin_Speed = 50; // What is the base spin speed? (ms) .nbTurns = 2; // How many times the arrow makes a complete turn, before entering the stopping routine .Zeny_Cost = 50000; // How much zeny does it cost for a spin? .Sound_Effects = true; // Enable sound effects? (true/false) // You must have a total of 10 prizes. DO NOT remove 0 or -1 from the array and do not // change their order. setarray(.Prize_ID[1], -1, 7539, 14345, 7539, 617, 607, 7539, 604, 0, 12214); setarray(.Prize_Qty[1], 2, 3, 1, 1, 3, 3, 1, 3, 0, 1); // Don't touch below .Cutin$ = "WheelOfFortune_"; setarray(.Sector_Range, 1, 10); // Sector range setarray(.Cutin_Range, 0, 19); // Cutin range end; } Quote Share this post Link to post Share on other sites
Questune 0 Posted March 26 Is there a rA version of this? hopefully yes or someone can convert this. Quote Share this post Link to post Share on other sites