Jump to content
  • 0

H>Luck Spin Jackpot prize


Takuyakii

Question


  • Group:  Members
  • Topic Count:  38
  • Topics Per Day:  0.02
  • Content Count:  206
  • Reputation:   10
  • Joined:  08/30/19
  • Last Seen:  

Can someone help me to make this script have Jackpot prize? or chance to get the rare item?

Thank you.

-	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:
            break;
        }
        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;
}

 

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  38
  • Topics Per Day:  0.02
  • Content Count:  206
  • Reputation:   10
  • Joined:  08/30/19
  • Last Seen:  

can someone help me with this? thanks!

Link to comment
Share on other sites

  • 0

  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2345
  • Joined:  10/28/11
  • Last Seen:  

change

        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]);

into

// 1% jackpot
if (rand(10000) < 100) {
	.@item_id = 512;
	.@amount = 999;
	announce(sprintf("[%s] : %dx %s - enjoy your Jackpot prize!", .EventName$, .@amount, getitemname(.@item_id)), bc_blue | bc_self);
}
else {
	.@item_id = .Prize_ID[.@Sector];
	.@amount = .Prize_Qty[.@Sector];
	announce(sprintf("[%s] : %dx %s - enjoy your prize!", .EventName$, .@amount, getitemname(.@item_id)), bc_blue | bc_self);
}
getitem(.@item_id, .@amount);

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  4
  • Reputation:   0
  • Joined:  03/05/20
  • Last Seen:  

Where did you got the WheelOfFortune_x.bmp sprites ? I keep getting this error sprites from missing WheelOfFortune_x.bmp files at "texture\À¯ÀúÀÎÅÍÆäÀ̽º\cardbmp"

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...