Jump to content

GM-Murphy

Members
  • Posts

    5
  • Joined

  • Last visited

About GM-Murphy

  • Birthday 04/11/1995

Profile Information

  • Gender
    Male
  • Server
    VanroLegacy

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

GM-Murphy's Achievements

Santa Poring

Santa Poring (3/15)

  • First Post
  • Conversation Starter
  • One Month Later
  • Dedicated
  • Week One Done

Recent Badges

0

Reputation

  1. //===== Script =============================================== //= Code Breaker [v1.1] //===== By: ================================================== //= Xantara //===== Additional Comments: ================================= //= 1.0 Initial Release //= 1.1 Took out unused .@skip variable // Implemented KeyWorld's createCode optimization //============================================================ prontera,147,172,5 script Code Breaker 106,{ function gmPanel; function validGuess; function createCode; function getCode; function evaluateGuess; function winGame; while(1) { if( getgmlevel() >= .minGMlvl ) gmPanel(); mes .NPC$; mes "Hello. Want to play Code Breaker?"; next; switch(select("- Lets play!:- No thanks.:- Information")){ case 1: mes .NPC$; mes "What level of difficulty do you want to play Code Breaker in?"; next; set .@l, select("- Easy:- Medium:- Hard"); createCode(); mes .NPC$; while( .@guesses != .CB_Guess[.@l] ) { mes "Guess a 3 digit number:"; mes "# of Tries: ^FF0000"+ .@guesses +"^000000 / ^3355FF"+ .CB_Guess[.@l] +"^000000"; next; input .@num; if(validGuess(.@num)) { if(.@num == getCode()) winGame(.@l); else evaluateGuess(.@num); set .@guesses, .@guesses + 1; } } next; mes .NPC$; mes "I'm sorry! You did not win the game. The number was ^FF0000"+ getCode() +"^000000 Try again."; close; case 2: mes .NPC$; mes "See ya around!"; close; case 3: mes .NPC$; mes "Objective of the game is to guess a 3 digit number where none of the digits repeat."; next; mes .NPC$; mes "There are 3 difficulty settings depending on the number of guesses."; for( set .@i,1; .@i < getarraysize(.CB_Guess); set .@i,.@i+1 ) mes "- "+ .CB_Diff$[.@i] +": "+ .CB_Guess[.@i] +" Tries"; next; mes .NPC$; mes "I will give you a clue in regards to your previous guess. Code guide:"; mes "- ^FF0000C^000000 stands for the number of numbers that are correct and in the right position."; next; mes .NPC$; mes "I will give you a clue in regards to your previous guess. Code guide:"; mes "- ^FF0000N^000000 stands for the number of correct numbers that are in the wrong position."; next; mes .NPC$; mes "Prizes are as follows:"; for( set .@i,1; .@i < getarraysize(.CB_Diff$); set .@i,.@i+1 ) mes "- "+ .CB_Diff$[.@i] +": ^FF0000"+ $CB_Prize[.@i+3] +"^000000x ^FF0000"+ getitemname($CB_Prize[.@i])+"^000000"; break; } next; } function gmPanel { while(1) { mes .NPC$; mes "Hello GM. What can I do for you?"; next; set .@select, select("- Edit Easy Prize:- Edit Medium Prize:- Edit Hard Prize:- Player Mode"); if(.@select == 4) break; mes .NPC$; mes "Mode: Editing "+ .CB_Diff$[.@select] +" Prize"; mes "Insert new prize ^FF0000item ID^000000"; next; input .@id; mes .NPC$; mes "Mode: Editing "+ .CB_Diff$[.@select] +" Prize"; mes "Insert new prize ^FF0000amount^000000"; next; input .@amt; next; mes .NPC$; mes "Mode: Editing "+ .CB_Diff$[.@select] +" Prize"; mes "Are you sure you want to change the prize to ^FF0000"+ .@amt +"^000000x ^FF0000"+ getitemname(.@id) +"^000000?"; next; if(select("No, it's wrong!:Yes, I'm sure.")==2){ mes .NPC$; mes "Mode: Editing "+ .CB_Diff$[.@select] +" Prize"; mes "Done!"; set $CB_Prize[.@select], .@id; set $CB_Prize[.@select+3], .@amt; next; } } } function validGuess { set .@guess, getarg(0); if( .@guess < 100 || .@guess > 999 ) { mes "^FF0000Invalid Guess. Must be a 3 digit number.^000000"; mes " "; return 0; } set .@n1, .@guess / 100; set .@n2, (.@guess % 100) / 10; set .@n3, .@guess % 10; if( (.@n1 == .@n2) || (.@n1 == .@n3) || (.@n2 == .@n3) ) { mes "^FF0000Invalid Guess. Do not use a number more than once.^000000"; mes " "; return 0; } return 1; } function createCode { for ( setarray .@list,1,2,3,4,5,6,7,8,9; .@i<3; set .@i,.@i+1 ) { set .@j, rand(9-.@i); set @CB_code[.@i+1], .@list[.@j]; deletearray .@list[.@j], 1; } } function getCode { set .@n1, @CB_code[1]; set .@n2, @CB_code[2]; set .@n3, @CB_code[3]; return ( (.@n1 * 100) + (.@n2 * 10) + .@n3 ); } function evaluateGuess { set .@g[1], getarg(0) / 100; set .@g[2], (getarg(0) % 100) / 10; set .@g[3], getarg(0) % 10; if( .@g[1] == @CB_code[1] ) set .@C,.@C + 1; if( .@g[2] == @CB_code[2] ) set .@C,.@C + 1; if( .@g[3] == @CB_code[3] ) set .@C,.@C + 1; if( (.@g[1] == @CB_code[2]) || (.@g[1] == @CB_code[3]) ) set .@N,.@N + 1; if( (.@g[2] == @CB_code[1]) || (.@g[2] == @CB_code[3]) ) set .@N,.@N + 1; if( (.@g[3] == @CB_code[1]) || (.@g[3] == @CB_code[2]) ) set .@N,.@N + 1; mes .NPC$; mes "Last guess ^3355FF"+ getarg(0) +"^000000 had ^FF0000"+ .@C +"^000000 C and ^FF0000"+ .@N +"^000000 N"; mes " "; return; } function winGame { set .@d, getarg(0); mes .NPC$; mes "Congratulations, you cracked the code!"; mes "Difficulty: ^3355FF"+ .CB_Diff$[.@d] +"^000000"; next; mes .NPC$; mes "Here is your prize. Enjoy!"; getitem $CB_Prize[.@d], $CB_Prize[.@d+3]; close; } OnInit: // ---- CONFIG ------------------------------------------------------------------------------------ // NPC Name set .NPC$, "[ Code Breaker ]"; // Minimum GM Level for GM Panel. [Default: 60] set .minGMlvl, 60; // Number of Guesses per Difficulty (Easy, Medium, Hard) [Default: 5, 3, 2] setarray .CB_Guess[1], 5, 3, 2; // ---- END OF CONFIG ----------------------------------------------------------------------------- setarray .CB_Diff$[1], "Easy", "Medium", "Hard"; if(!$CB_Prize[1]) setarray $CB_Prize[1], 909,909,909, 1,2,3; end; }
  2. 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."; .@s = select( .menu_$ ); if( .@s == 7 ) { next; mes "[Event Employee: Poring Race Bidder]"; mes "Goodbye."; close; } .@c$ = .monst_$[ .@s -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$ = .@c$; .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( .@i = 3; .@i > 0; .@i-- ) { mapannounce "p_track01","..."+ .@i +"...",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( .@i = 0 ; .@i < getarraysize( .prace_bidders ); .@i++ ) { if( attachrid( .prace_bidders[.@i] ) && 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 .@mapname$, .@x1, .@y, 1, "Poring#prace1"; getmapxy .@mapname$, .@x2, .@y, 1, "Angeling#prace2"; getmapxy .@mapname$, .@x3, .@y, 1, "Metaling#prace3"; getmapxy .@mapname$, .@x4, .@y, 1, "Deviling#prace4"; getmapxy .@mapname$, .@x5, .@y, 1, "Santa Poring#prace5"; getmapxy .@mapname$, .@x6, .@y, 1, "Poporing#prace6"; .@t = ( .@x1 + .@x2 + .@x3 + .@x4 + .@x5 + .@x6 ) != 58 * 6; return .@t; } } //----------------------------------- // Racer NPC's //----------------------------------- - script pori_race -1,{ OnRace: initnpctimer; end; OnStop: stopnpctimer; end; OnReturn: sleep 1000; while( strnpcinfo(1) != .monst$[ .@i ] ) .@i++; movenpc strnpcinfo(3), 58, .walk_t[.@i]; end; OnTimer1100: getmapxy .@mapname$,.@x,.@y,1, strnpcinfo(3); if( rand(100) < .prace_random ) npcwalkto .@x-1, .@y; .@r = rand( .prace_random2 ); if ( .@x -1 == 29 ) { while( strnpcinfo(1) != .monst$[ .@i ] ) .@i++; set getvariableofnpc( .prace_winner$, "Bidder#prace0" ), .monst$[ .@i ]; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; end; } stopnpctimer; setnpctimer .@r; 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
  3. it says poring race has ended everytime i click the npc
  4. prontera,114,154,5 script Poring Race 561,{ 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."; .@s = select( .menu_$ ); if( .@s == 7 ) { next; mes "[Event Employee: Poring Race Bidder]"; mes "Goodbye."; close; } .@c$ = .monst_$[ .@s -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$ = .@c$; .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( .@i = 3; .@i > 0; .@i-- ) { mapannounce "p_track01","..."+ .@i +"...",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( .@i = 0 ; .@i < getarraysize( .prace_bidders ); .@i++ ) { if( attachrid( .prace_bidders[.@i] ) && 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 .@mapname$, .@x1, .@y, 1, "Poring#prace1"; getmapxy .@mapname$, .@x2, .@y, 1, "Angeling#prace2"; getmapxy .@mapname$, .@x3, .@y, 1, "Metaling#prace3"; getmapxy .@mapname$, .@x4, .@y, 1, "Deviling#prace4"; getmapxy .@mapname$, .@x5, .@y, 1, "Santa Poring#prace5"; getmapxy .@mapname$, .@x6, .@y, 1, "Poporing#prace6"; .@t = ( .@x1 + .@x2 + .@x3 + .@x4 + .@x5 + .@x6 ) != 58 * 6; return .@t; } } //----------------------------------- // Racer NPC's //----------------------------------- - script pori_race -1,{ OnRace: initnpctimer; end; OnStop: stopnpctimer; end; OnReturn: sleep 1000; while( strnpcinfo(1) != .monst$[ .@i ] ) .@i++; movenpc strnpcinfo(3), 58, .walk_t[.@i]; end; OnTimer1100: getmapxy .@mapname$,.@x,.@y,1, strnpcinfo(3); if( rand(100) < .prace_random ) npcwalkto .@x-1, .@y; .@r = rand( .prace_random2 ); if ( .@x -1 == 29 ) { while( strnpcinfo(1) != .monst$[ .@i ] ) .@i++; set getvariableofnpc( .prace_winner$, "Bidder#prace0" ), .monst$[ .@i ]; emotion 29; donpcevent "Bidder#prace0::OnStopRace"; end; } stopnpctimer; setnpctimer .@r; 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
×
×
  • Create New...