Jump to content
  • 0
Katakuri

Modification of Poring Race

Question


prontera,114,154,5	script	Poring Race	568,{

	if( .access_Prace == 0 ) {
		mes "[Event Employee: Poring Race]";
		mes "Poring Race has ended.";
		close;
	}
	mes "[Event Employee: Poring Race]";
	mes "Do you want to participate on Poring Race?";
	if( select( "Yes","No" ) -1 ) {
		next;
		mes "[Event Employee: Poring Race]";
		mes "See you again next time!";
		close;
	}
	if( .access_Prace == 0 ) {
		next;
		mes "[Event Employee: Poring Race]";
		mes "...";
		mes "...";
		mes "Cheater!!~~";
		close;
	}
	close2;
	@prace_winner$ = "";
	warp "p_track01",52,41;
	end;
// OnInit:
OnClock1434:
	if( gettime(3)%2 ) end;
	set .access_Prace, 1;
	announce "Event Employee [Poring Race]: Poring Race is about to begin. To participate kindly approach me at Event Room or use @event",0;
	setnpctimer 100000,"Bidder#prace0";
	startnpctimer "Bidder#prace0";
	end;
OnPraceEnd:
	set .access_Prace, 0;
	announce "Event Employee [Poring Race]: Poring Race is over! Thank you for participating.",0;
	end;
}


p_track01,58,41,3	script	Bidder#prace0	877,{
function checkevent;

	
	if( getstrlen( @prace_winner$ ) ) {
		mes "[Event Employee: Poring Race Bidder]";
		mes "You have choose ^00bb00"+ @prace_winner$ +"^000000";
		close;
	}
	else if ( checkevent() || .start ) {
		mes "[Event Employee: Poring Race Bidder]";
		mes "There is a race in progress...";
		close;
	}
	else if( !getvariableofnpc( .access_Prace,"Poring Race" ) ) {
		mes "[Event Employee: Poring Race Bidder]";
		mes "There is no race.";
		close;
	}
	mes "[Event Employee: Poring Race Bidder]";
	mes "Choose the poring you want to bet:";
	mes "It will cost "+ .zeny_req +" Zeny.";

	[email protected] = select( .menu_$ );
	if( [email protected] == 7 ) {
		next;
		mes "[Event Employee: Poring Race Bidder]";
		mes "Goodbye.";
		close;
	}
	[email protected]$ = .monst_$[ [email protected] -1 ];

	if ( checkevent() ) {
		next;
		mes "[Event Employee: Poring Race Bidder]";
		mes "...";
		mes "...";
		mes "Cheater!!~~";
		close;
	}
	else if( Zeny < .zeny_req ) {
		next;
		mes "[Event Employee: Poring Race Bidder]";
		mes "You don't have enough Zeny.";
		close;
	}
	Zeny -= .zeny_req;
	@prace_winner$ = [email protected]$;
	.prace_bidders[ .prace_bets ] = getcharid(3);
	.prace_bets++;

	next;
	mes "[Event Employee: Poring Race Bidder]";
	mes "[Event Employee: Poring Race Bidder]: I have "+ .prace_bets +" bets.";
	initnpctimer;
	npctalk "[Event Employee: Poring Race Bidder]: I got "+ strcharinfo(0) +" bet!";
	close;
OnTimer60000:
	npctalk "[Event Employee: Poring Race Bidder]: I got "+ .prace_bets +" 's bets. Anyone else?";
	end;
OnTimer80000:
	npctalk "[Event Employee: Poring Race Bidder]: The race will start soon. Last chance.";
	end;
OnTimer90000:
	stopnpctimer;
	.start = 1;
	mapannounce "p_track01","Porings, on your marks...",1,0xFFAB54;
	sleep 2500;
	for( [email protected] = 3; [email protected] > 0; [email protected] ) {
		mapannounce "p_track01","..."+ [email protected] +"...",1,0xFFAB54;
		sleep 1000;
	}
	donpcevent strnpcinfo(0) +"::OnStartRace";
	sleep 1000;
	mapannounce "p_track01","Gooo!!!",1,0xFFAB54;
	end;
OnTimer320000:
	mapwarp "p_track01","prontera",142,170;
	donpcevent "Poring Race::OnPraceEnd";
	.prace_winner$ = "";
	.start = .prace_bets = 0;
	donpcevent strnpcinfo(0) +"::OnReturnRace";
	end;

OnStartRace:
	callsub L_label, "OnRace";
OnStopRace:
	callsub L_label, "OnStop";
OnReturnRace:
	callsub L_label, "OnReturn";
L_label:
	donpcevent "Metaling#prace3::"+ getarg(0);
	donpcevent "Poring#prace1::"+ getarg(0);
	donpcevent "Poporing#prace6::"+ getarg(0);
	donpcevent "Angeling#prace2::"+ getarg(0);
	donpcevent "Santa Poring#prace5::"+ getarg(0);
	donpcevent "Deviling#prace4::"+ getarg(0);
	if( getarg(0) == "OnStop" && .prace_winner$ != "" )
		callsub L_WinRace;
	end;
L_WinRace:
	mapannounce "p_track01", "The winner is "+ .prace_winner$,1,0xFFAB54;
	donpcevent strnpcinfo(0) +"::OnChequeo";
	sleep 3000;
	donpcevent strnpcinfo(0) +"::OnReturnRace";
	sleep 10000;
	mapwarp "p_track01","prontera",142,170;
	donpcevent "Poring Race::OnPraceEnd";
	.prace_winner$ = "";
	.start = .prace_bets = 0;
	end;
OnChequeo:
	for( [email protected] = 0 ; [email protected] < getarraysize( .prace_bidders ); [email protected]++ ) {
		if( attachrid( .prace_bidders[[email protected]] ) && getstrlen( @prace_winner$ ) ) {
			dispbottom "The winner is "+ .prace_winner$ +" and you have bet for "+ @prace_winner$ +".";
			if( @prace_winner$ == .prace_winner$ ) {
				dispbottom "You have won!";
				mapannounce "p_track01"," Congratulations! "+ strcharinfo(0) +" has won!",1,0xFFAB54;
				getitem .item_gained, .item_num_gain;
				emotion 21,1;
			}
			else {
				dispbottom "You have lost.";
				emotion 28,1;
			}
			@prace_winner$ = "";
		}
	}
	deletearray .prace_bidders;
	end;
OnInit:
	.zeny_req = 10000000;
	.item_gained = 36008;
	.item_num_gain = 5;
	setarray .monst_$,"Poring","Angeling","Metaling","Deviling","Santa Poring","Poporing","None";
	.menu_$ = implode( .monst_$, ":" );
	end;

function checkevent {
	getmapxy [email protected]$, [email protected], [email protected], 1, "Poring#prace1";
	getmapxy [email protected]$, [email protected], [email protected], 1, "Angeling#prace2";
	getmapxy [email protected]$, [email protected], [email protected], 1, "Metaling#prace3";
	getmapxy [email protected]$, [email protected], [email protected], 1, "Deviling#prace4";
	getmapxy [email protected]$, [email protected], [email protected], 1, "Santa Poring#prace5";
	getmapxy [email protected]$, [email protected], [email protected], 1, "Poporing#prace6";
	[email protected] = ( [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] ) != 58 * 6;
	return [email protected];
}
}
//-----------------------------------
// Racer NPC's
//-----------------------------------

-	script	pori_race	-1,{
OnRace:
	initnpctimer;
	end;
OnStop:
	stopnpctimer;
	end;
OnReturn:
	sleep 1000;
	while( strnpcinfo(1) != .monst$[ [email protected] ] ) [email protected]++;
	movenpc strnpcinfo(3), 58, .walk_t[[email protected]];
	end;
OnTimer1100:
	getmapxy [email protected]$,[email protected],[email protected],1, strnpcinfo(3);
	if( rand(100) < .prace_random )
		npcwalkto [email protected], [email protected];
	[email protected] = rand( .prace_random2 );
	if ( [email protected] -1 == 29 ) {
		while( strnpcinfo(1) != .monst$[ [email protected] ] ) [email protected]++;
		set getvariableofnpc( .prace_winner$, "Bidder#prace0" ), .monst$[ [email protected] ];
		emotion 29;
		donpcevent "Bidder#prace0::OnStopRace";
		end;
	}
	stopnpctimer;
	setnpctimer [email protected];
	startnpctimer;
	end;
OnInit:
	deletearray .walk_t;
	deletearray .monst$;
	setarray .walk_t, 38, 36, 34, 32, 30, 28;
	setarray .monst$, "Poring", "Angeling", "Metaling", "Deviling", "Santa Poring", "Poporing";
	.prace_random = 70;
	.prace_random2 = 600;
	end;
}

p_track01,58,38,2	duplicate(pori_race)	Poring#prace1	1002
p_track01,58,36,2	duplicate(pori_race)	Angeling#prace2	1096
p_track01,58,34,2	duplicate(pori_race)	Metaling#prace3	1613
p_track01,58,32,2	duplicate(pori_race)	Deviling#prace4	1582
p_track01,58,30,2	duplicate(pori_race)	Santa Poring#prace5	1062
p_track01,58,28,2	duplicate(pori_race)	Poporing#prace6	1031

p_track01,78,42,0	warp	p_track002	1,3,prontera,156,191

p_track01	mapflag	nobranch
p_track01	mapflag	noicewall
p_track01	mapflag	nomemo
p_track01	mapflag	noreturn
p_track01	mapflag	noteleport
p_track01	mapflag	nowarpto
p_track01	mapflag	nowarp
p_track01	mapflag	noskill
p_track01	mapflag	pvp	off
p_track01	mapflag	nosave

Hello, How to make this script as active like No specific time to be trigger like the people place bet every race and change the zeny bets into item bets. Sorry for bad english thanks

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0
// OnInit:
OnClock1434:

Change to

OnClock0015:
OnClock0215:
OnClock0415:
OnClock0615:
OnClock0815:
OnClock1015:
OnClock1215:
OnClock1415:
OnClock1615:
OnClock1815:
OnClock2015:
OnClock2215:

and change to the hours you want.

Link to comment
Share on other sites

  • 0

No i want to change it into continous race like there's no time needed as long there are bettors it will start the race and after the race it will need again bettors and ao on

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...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.