Jump to content

lelouchxv

Members
  • Posts

    120
  • Joined

  • Last visited

Posts posted by lelouchxv

  1. On 4/4/2021 at 3:13 PM, cook1e said:
    
    ///////////////////////////////////////////////////////
    //  ___________               _____.__                
    //  \__    ___/__.__.________/ ____\__| ____    ____  
    //    |    | <   |  |\_  __ \   __\|  |/    \  / ___\ 
    //    |    |  \___  | |  | \/|  |  |  |   |  \/ /_/  >
    //    |____|  / ____| |__|   |__|  |__|___|  /\___  / 
    //            \/       Scripts             \//_____/  
    //
    //=====================================================
    // Name: Race to Max Level
    //
    // Description:
    // This NPC allows for Game Masters to set a reward to
    // be given to the first player of each 2nd class that
    // reaches maximum level (base and class).
    //=====================================================
    ///////////////////////////////////////////////////////
    prontera,147,180,5	script	Race to Max Level	58,{
    	set .@gm_level, 99; // GM level required to set the reward
    	set .@maxbase, 99;
    	set .@maxjob, 70;
    	set .@defaultreward, 510;
    	setarray .@rewardablejobs[0], Job_Lord_Knight, Job_Creator, Job_Assassin_Cross, Job_Clown, Job_Whitesmith, Job_Paladin, Job_Gypsy, Job_Sniper, Job_Champion, Job_High_Priest, Job_Stalker, Job_Professor, Job_High_Wizard;
    	
    	Begin:
    	clear;
    	mes "[ ^0099ccRace to Max Level^000000 ]";
    	mes "Hello, " + ((getgmlevel() >= .@gm_level) ? "master! What do you want to do today?" : "are you here for your reward?");
    	switch(select(((getgmlevel() >= .@gm_level) ? "Set Reward:Restart Race" : ":") + ":YES!:...Reward?:Who was rewarded?:Cancel")) {
    		case 1:
    			goto SetReward;
    		case 2:
    			goto RestartRace;
    		case 3:
    			goto GetReward;
    		case 4:
    			goto ExplainRace;
    		case 5:
    			goto ShowRewarded;
    		default:
    			end;
    	}
    	
    	SetReward:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		if ($reward == 0)
    			set $reward, .@defaultreward;
    		mes "The reward is " + getitemname($reward) + " (ID: " + $reward + ").";
    		mes "Do you want to change it?";
    		if (select("Yes:No") == 1) {
    			clear;
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "Please enter the new reward item ID.";
    			input .@rewardid;			
    			clear;
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "Set " + getitemname(.@rewardid) + " as the reward?";
    			if(select("Yes:No") == 1) {
    				set $reward, .@rewardid;
    			}
    		}
    		goto Begin;
    	
    	RestartRace:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Are you sure you want to restart the race?";
    		if (select("Yes:No") == 1) {
    			for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    				set $rewarded$[.@rewardablejobs[.@i]], "";
    			}
    			announce "The Race to Max Level has begun! Claim a reward once you reach " + .@maxbase + " base and " + .@maxjob + " class!", bc_all;
    		}
    		goto Begin;
    	
    	GetReward:
    		mes "Let's see... " + strcharinfo(0) + ", huh?";
    		
    		set .@competitioner, 0;
    		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    			if (Class == .@rewardablejobs[.@i]) {
    				set .@competitioner, 1;
    				if (BaseLevel < .@maxbase || JobLevel < .@maxjob) {
    					mes "I'm sorry, but you still need to level a bit more.";
    				} else if ($rewarded$[Class] == strcharinfo(0)) {
    					mes "You have already claimed your reward.";
    				} else if ($rewarded$[Class] != "") {
    					mes "Too late!";
    					mes "The reward for " + jobname(Class) + " was already claimed by " + $rewarded$[Class] + ".";
    				} else goto GiveReward;
    			}
    		}
    		if (.@competitioner == 0)
    			mes "You need to change your job.";
    		close;
    	
    	GiveReward:
    		set $rewarded$[Class], strcharinfo(0);
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Congratulations! You were the first " + jobname(Class) + " to reach " + .@maxbase + " base and " + .@maxjob + " class!";
    		getitem $reward, 1;
    		announce strcharinfo(0) + " (" + jobname(Class) + ") reached Max. Level and received " + getitemname($reward) + "!", bc_all;
    		end;
    	
    	ExplainRace:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Yes! When you reach the maximum level for your class, talk to me and you'll be rewarded with a special item.";
    		next;
    		goto Begin;
    		
    	ShowRewarded:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    			mes jobname(.@rewardablejobs[.@i]) + ": " + (($rewarded$[.@rewardablejobs[.@i]] != "") ? $rewarded$[.@rewardablejobs[.@i]] : "^ff0000Nobody^000000");
    		}
    		next;
    		goto Begin;
    }

     

    still the same bro

    stillthesame.jpg

     

    On 4/5/2021 at 1:52 AM, Emistry said:

    clear(); should only be called if there are any mes(); (aka npc dialog) displayed

    Thankyou master! it worked i remove all clear ();

  2. How can i fix this guys? any help would be appreciated! 

    ///////////////////////////////////////////////////////
    //  ___________               _____.__                
    //  \__    ___/__.__.________/ ____\__| ____    ____  
    //    |    | <   |  |\_  __ \   __\|  |/    \  / ___\ 
    //    |    |  \___  | |  | \/|  |  |  |   |  \/ /_/  >
    //    |____|  / ____| |__|   |__|  |__|___|  /\___  / 
    //            \/       Scripts             \//_____/  
    //
    //=====================================================
    // Name: Race to Max Level
    //
    // Description:
    // This NPC allows for Game Masters to set a reward to
    // be given to the first player of each 2nd class that
    // reaches maximum level (base and class).
    //=====================================================
    ///////////////////////////////////////////////////////
    prontera,147,180,5	script	Race to Max Level	58,{
    	set .@gm_level, 99; // GM level required to set the reward
    	set .@maxbase, 99;
    	set .@maxjob, 70;
    	set .@defaultreward, 510;
    	setarray .@rewardablejobs[0], Job_Lord_Knight, Job_Creator, Job_Assassin_Cross, Job_Clown, Job_Whitesmith, Job_Paladin, Job_Gypsy, Job_Sniper, Job_Champion, Job_High_Priest, Job_Stalker, Job_Professor, Job_High_Wizard;
    	
    	Begin:
    	clear;
    	mes "[ ^0099ccRace to Max Level^000000 ]";
    	mes "Hello, " + ((getgmlevel() >= .@gm_level) ? "master! What do you want to do today?" : "are you here for your reward?");
    	switch(select(((getgmlevel() >= .@gm_level) ? "Set Reward:Restart Race" : ":") + ":YES!:...Reward?:Who was rewarded?:Cancel")) {
    		case 1:
    			goto SetReward;
    		case 2:
    			goto RestartRace;
    		case 3:
    			goto GetReward;
    		case 4:
    			goto ExplainRace;
    		case 5:
    			goto ShowRewarded;
    		default:
    			end;
    	}
    	
    	SetReward:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		if ($reward == 0)
    			set $reward, .@defaultreward;
    		mes "The reward is " + getitemname($reward) + " (ID: " + $reward + ").";
    		mes "Do you want to change it?";
    		if (select("Yes:No") == 1) {
    			clear;
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "Please enter the new reward item ID.";
    			input .@rewardid;			
    			clear;
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "Set " + getitemname(.@rewardid) + " as the reward?";
    			if(select("Yes:No") == 1) {
    				set $reward, .@rewardid;
    			}
    		}
    		goto Begin;
    	
    	RestartRace:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Are you sure you want to restart the race?";
    		if (select("Yes:No") == 1) {
    			for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    				set $rewarded$[.@rewardablejobs[.@i]], "";
    			}
    			announce "The Race to Max Level has begun! Claim a reward once you reach " + .@maxbase + " base and " + .@maxjob + " class!", bc_all;
    		}
    		goto Begin;
    	
    	GetReward:
    		mes "Let's see... " + strcharinfo(0) + ", huh?";
    		
    		set .@competitioner, 0;
    		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    			if (Class == .@rewardablejobs[.@i]) {
    				set .@competitioner, 1;
    				if (BaseLevel < .@maxbase || JobLevel < .@maxjob) {
    					mes "I'm sorry, but you still need to level a bit more.";
    				} else if ($rewarded$[Class] == strcharinfo(0)) {
    					mes "You have already claimed your reward.";
    				} else if ($rewarded$[Class] != "") {
    					mes "Too late!";
    					mes "The reward for " + jobname(Class) + " was already claimed by " + $rewarded$[Class] + ".";
    				} else goto GiveReward;
    			}
    		}
    		if (.@competitioner == 0)
    			mes "You need to change your job.";
    		close;
    	
    	GiveReward:
    		set $rewarded$[Class], strcharinfo(0);
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Congratulations! You were the first " + jobname(Class) + " to reach " + .@maxbase + " base and " + .@maxjob + " class!";
    		getitem $reward, 1;
    		announce strcharinfo(0) + " (" + jobname(Class) + ") reached Max. Level and received " + getitemname($reward) + "!", bc_all;
    		close;
    	
    	ExplainRace:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Yes! When you reach the maximum level for your class, talk to me and you'll be rewarded with a special item.";
    		next;
    		goto Begin;
    		
    	ShowRewarded:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    			mes jobname(.@rewardablejobs[.@i]) + ": " + (($rewarded$[.@rewardablejobs[.@i]] != "") ? $rewarded$[.@rewardablejobs[.@i]] : "^ff0000Nobody^000000");
    		}
    		next;
    		goto Begin;
    }

     

    map.jpeg

  3. On 4/3/2021 at 10:56 PM, Chaos92 said:

    You should use that and use it as high priority GRF and System folder.

    file becomes kRO maybe because u are using kRO or the files has been rewritten back to kRO since you might be updating your kRO before. 

    i did use it and i make my grf and my system after i update my kro . its still the same ?

    bmp

    any1?

    On 4/6/2021 at 12:46 PM, Chaos92 said:

    are you sure you're using the nemo profiles given in Chris Translation ? Because the file path might be different compare to default.

    Thankyou! i ddnt know that i should use those sorry. it worked! 

    screenrAthena012.jpg

    screenrAthena013.jpg

    screenrAthena014.jpg

  4. On 7/7/2019 at 12:37 PM, Mael said:

    I just tried on client 2018-06-21aRagexeRE

    thanks so much @melv0❤️ 

    1. How to change the maximum level of your server? https://gist.github.com/cydh/d82a06472f12c4ec7f38ab3de22fe86b

    2. How to make the aura appear at a maximum level other than 99? 

    • data\luafiles514\lua files\service_korea\ExternalSettings_kr.lub & externalsettings_kr_sak.lub
    
    MaxLevelTable = {
        BaseLevel = 99, << Edit this part into 255
        BaseLevel3rd = 185,
        BaseLevelExtend2 = 160,
        BaseLevelUpperJob = 185,
        BaseLevelHomun = 185,
        BaseLevelDoram = 185,
        JobLevelNovice = 10,
        JobLevelSuperNovice = 99,
        JobLevelBase = 50,
        JobLevel2nd = 70,
        JobLevel3rd = 65,
        JobLevelExtend2 = 50,
        JobLevelUpperJob = 60,
        JobLevelDoram = 55
    }

    and that's it, see magic ingame ? 

    why this is not working on 2015-11-04 ?

  5. the bidder got the bets but the race is not start and how can i make this accessible all the time. like you can always play it? Thanks in advance! 

    //===== Description: =================================================
    //= Poring Race
    //==================================================================
    /*
    if(getgmlevel()){
    if(select("Start Bidding:Skip")==1){
    goto Start1;
    } else
    close;
    } else
    */
    
    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	pvp	off
    p_track01	mapflag	nosave
    
    -	script	PraceAnnouncer	-1,{
    OnInit:
    	disablenpc "Prace";
    	disablenpc "Bidder#prace0";
    	end;
    
    OnMinute50:
    
    announce "Poring Race : It's time to play Poring Race!",0;
    	set $accessPrace, 1;
    	sleep2 10000;
    	announce "Poring Race : Please make your way to Prontera 180 132.",0;
    	sleep2 10000;
    	announce "Poring Race : After one minute the portal will close.",0;
    	sleep2 10000;
    	announce "Poring Race : Enter the warp portal now if you want to join.",0;
    	enablenpc "Prace";
    	initnpctimer;
    	end;
    
    OnTimer30000:
    	announce "Poring Race : Last 30 seconds.",0;
    	sleep2 5000;
    	announce "Poring Race : Hurry up! at Prontera 180 132 if you want to join.",0;
    	end;
    	
    OnTimer50000:
    	announce "Poring Race : Last 10 seconds.",0;
    	end;
    	
    OnTimer55000:
    	announce "Poring Race : 5.",0;
    	end;
    	
    OnTimer56000:
    	announce "Poring Race : 4.",0;
    	end;
    	
    OnTimer57000:
    	announce "Poring Race : 3.",0;
    	end;
    	
    OnTimer58000:
    	announce "Poring Race : 2.",0;
    	end;
    	
    OnTimer59000:
    	announce "Poring Race : 1.",0;
    	end;
    	
    OnTimer60000:
    	announce "Poring Race : Time's up. Portal Will Open again in 50 minutes.",0;
    	end;
    	
    OnTimer61000:
    	disablenpc "Prace";
    	enablenpc "Bidder#prace0";
    	stopnpctimer;
    	end;
    
    OnPraceEnd:
    set $accessPrace, 0;
    announce "Poring Race is over!",0,0xFFAB54;
    end;
    
    }
    
    prontera,180,132,5	script	Poring Race::Prace	723,{
    
    if( $accessPrace == 0) {
    mes "[Poring Race Staff]";
    mes "Poring Race has ended.";
    
    close;
    }
    mes "[Poring Race Staff]";
    mes "Do you want to participate on Poring Race?";
    menu "Yes",-,"No",L_no;
    if( $accessPrace == 0) {
    mes "[Poring Race Staff]";
    mes "...";
    mes "...";
    mes "Cheater!!~~";
    close;
    }
    close2;
    warp "p_track01",52,41;
    end;
    
    L_no:
    next;
    mes "[Poring Race Staff]";
    mes "See you again next time!";
    close;
    }
    
    p_track01,78,42,0	warp	p_track002	1,3,prontera,142,170
    
    //NPC Checker
    -	script	Checker#prace0	-1,{
    end;
    
    OnChequeo:
    for(set .@tmp1,0;.@tmp1<(getarraysize($prace_bidders));set .@tmp1,.@tmp1+1) {
    if(attachrid($prace_bidders[.@tmp1])) {
    if( prace_playing != 1) end;
    dispbottom "The winner is "+$prace_winner$+" and you have bet for "+prace_winner$+".";
    if( prace_winner$ == $prace_winner$ && prace_winner$ != "") {
    dispbottom "You have won!"+Pods;
    mapannounce "p_track01"," Congratulations! "+strcharinfo(0)+" has won with",1,0xFFAB54;
    getitem 7179, (Pods * 2);
    emotion 21,1;
    } else
    dispbottom "You have lost."; emotion 28,1;
    set prace_winner$,"";
    set prace_playing,0;
    } //else { announce .@tmp1+" || "+$prace_bidders[.@tmp1],bc_all; } //debug
    }
    for( set .@tmp1,0; .@tmp1 < (getarraysize( $prace_bidders )); set .@tmp1,.@tmp1 + 1 ) {
    set $prace_bidders[.@tmp1],0;
    }
    }
    //NPC Principal 765
    p_track01,58,41,3	script	Bidder#prace0	877,{
    if($prace_random < 1) callsub OnInit;
    if( prace_playing == 1) {
    mes "[Bidder]";
    mes "You have choose ^00bb00"+prace_winner$+"^000000";
    close;
    }
    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");
    if (.@x1 != 58 || .@x2 != 58 || .@x3 != 58 || .@x4 != 58 || .@x5 != 58 || .@x6 != 58) {
    mes "[Bidder]";
    mes "There is a race in progress...";
    close;
    }
    //set .@prace_zeny,3500;
    input Pods;
    mes "[Bidder]";
    mes "Choose the poring you want to bet:";
    mes "It will cost "+Pods+" PODS.";
    //next;
    switch( select("Poring","Angeling","Metaling","Deviling","Santa Poring","Poporing","None.") ) {
    case 1: set .@thining$,"Poring"; break;
    case 2: set .@thining$,"Angeling"; break;
    case 3: set .@thining$,"Metaling"; break;
    case 4: set .@thining$,"Deviling"; break;
    case 5: set .@thining$,"Santa Poring"; break;
    case 6: set .@thining$,"Poporing"; break;
    case 7:
    mes "[Bidder]";
    mes "Goodbye.";
    close;
    }
    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");
    if (.@x1 != 58 || .@x2 != 58 || .@x3 != 58 || .@x4 != 58 || .@x5 != 58 || .@x6 != 58) {
    mes "[Bidder]";
    mes "...";
    mes "...";
    mes "Cheater!!~~";
    close;
    }
    
    if (countitem(7179) <= 0) {
    mes "[Bidder]";
    mes "You dont have enough Pots.";
    close;
    }
    
    if ((Pods) <= 0) {
    mes "[Bidder]";
    mes "Please place your bet!";
    close;
    }
    if ((Pods) > (countitem(7179))) {
    mes "[Bidder]";
    mes "You dont have enough PODS to bet";
    close;
    }
    if (countitem(7179) == 30000) {
    mes "[Bidder]";
    mes "You have reach the maximum number of credits";
    close;
    }
    
    
    delitem 7179,Pods;
    set prace_winner$,.@thining$;
    set $prace_bets,$prace_bets+1;
    set $prace_bidders[$prace_bets],getcharid(3);
    set prace_playing,1;
    mes "[Bidder]";
    mes "I have "+$prace_bets+" bets.";
    setnpctimer 60000;
    startnpctimer;
    npctalk "I got "+strcharinfo(0)+" bet!";
    close;
    
    Start1:
    setnpctimer 0;
    startnpctimer;
    end;
    
    StartRace:
    donpcevent "Metaling#prace3::OnRace";
    donpcevent "Poring#prace1::OnRace";
    donpcevent "Poporing#prace6::OnRace";
    donpcevent "Angeling#prace2::OnRace";
    donpcevent "Santa Poring#prace5::OnRace";
    donpcevent "Deviling#prace4::OnRace";
    end;
    
    OnStopRace:
    donpcevent "Poring#prace1::OnStop";
    donpcevent "Angeling#prace2::OnStop";
    donpcevent "Metaling#prace3::OnStop";
    donpcevent "Deviling#prace4::OnStop";
    donpcevent "Santa Poring#prace5::OnStop";
    donpcevent "Poporing#prace6::OnStop";
    if($prace_winner$!="") callsub WinRace;
    end;
    
    ReturnRace:
    donpcevent "Poring#prace1::OnReturn";
    donpcevent "Angeling#prace2::OnReturn";
    donpcevent "Metaling#prace3::OnReturn";
    donpcevent "Deviling#prace4::OnReturn";
    donpcevent "Santa Poring#prace5::OnReturn";
    donpcevent "Poporing#prace6::OnReturn";
    end;
    
    WinRace:
    mapannounce "p_track01","The winner is "+$prace_winner$,1,0xFFAB54;
    donpcevent "Checker#prace0::OnChequeo";
    sleep2 10000;
    mapwarp "p_track01","prontera",156,181;
    set $accessPrace, 0;
    setnpctimer 30000;
    startnpctimer;
    donpcevent "PraceAnnouncer::OnPraceEnd";
    end;
    
    OnInit:
    set $prace_random,70;
    set $prace_random2,600;
    set $prace_winner$,"";
    set $prace_bets,0;
    set $prace_bidders,0;
    end;
    
    OnTimer500:
    mapannounce "p_track01","Porings, on your marks...",1,0xFFAB54;
    end;
    
    OnTimer3000:
    mapannounce "p_track01","...3...",1,0xFFAB54;
    end;
    
    OnTimer4000:
    mapannounce "p_track01","...2...",1,0xFFAB54;
    end;
    
    OnTimer5000:
    mapannounce "p_track01","...1...",1,0xFFAB54;
    callsub StartRace;
    end;
    
    OnTimer6000:
    stopnpctimer;
    mapannounce "p_track01","Gooo!!!",1,0xFFAB54;
    end;
    
    OnTimer35000:
    set $prace_winner$,"";
    set $prace_bets,0;
    stopnpctimer;
    callsub ReturnRace;
    end;
    
    OnTimer90000:
    npctalk "I got "+$prace_bets+" bets. Anyone else?";
    end;
    
    OnTimer110000:
    npctalk "The race will start soon. Last chance.";
    end;
    
    OnTimer120000:
    goto Start1;
    end;
    }
    //-----------------------------------
    // Racer NPC's
    //-----------------------------------
    p_track01,58,38,2	script	Poring#prace1	1002,{
    end;
    OnRace:
    initnpctimer;
    startnpctimer;
    end;
    OnStop:
    stopnpctimer;
    end;
    OnReturn:
    npcwalkto 58,38;
    end;
    OnTimer1100:
    getmapxy(.@mapname$,.@x,.@y,1,"Poring#prace1");
    if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
    setnpctimer rand($prace_random2);
    startnpctimer;
    if ((.@x-1) == 29) {
    set $prace_winner$,"Poring";
    emotion 29;
    donpcevent "Bidder#prace0::OnStopRace";
    }
    end;
    }
    p_track01,58,36,2	script	Angeling#prace2	1096,{
    end;
    OnRace:
    initnpctimer;
    startnpctimer;
    end;
    OnStop:
    stopnpctimer;
    end;
    OnReturn:
    npcwalkto 58,36;
    end;
    OnTimer1100:
    getmapxy(.@mapname$,.@x,.@y,1,"Angeling#prace2");
    if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
    setnpctimer rand($prace_random2);startnpctimer;
    if ((.@x-1) == 29) {
    set $prace_winner$,"Angeling";
    emotion 29;
    donpcevent "Bidder#prace0::OnStopRace";
    }
    end;
    }
    p_track01,58,34,2	script	Metaling#prace3	1613,{
    end;
    OnRace:
    initnpctimer;
    startnpctimer;
    end;
    OnStop:
    stopnpctimer;
    end;
    OnReturn:
    npcwalkto 58,34;
    end;
    OnTimer1100:
    getmapxy(.@mapname$,.@x,.@y,1,"Metaling#prace3");
    if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
    setnpctimer rand($prace_random2);startnpctimer;
    if ((.@x-1) == 29) {
    set $prace_winner$,"Metaling";
    emotion 29;
    donpcevent "Bidder#prace0::OnStopRace";
    }
    end;
    }
    p_track01,58,32,2	script	Deviling#prace4	1582,{
    end;
    OnRace:
    initnpctimer;
    startnpctimer;
    end;
    OnStop:
    stopnpctimer;
    end;
    OnReturn:
    npcwalkto 58,32;
    end;
    OnTimer1100:
    getmapxy(.@mapname$,.@x,.@y,1,"Deviling#prace4");
    if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
    setnpctimer rand($prace_random2);startnpctimer;
    if ((.@x-1) == 29) {
    set $prace_winner$,"Deviling";
    emotion 29;
    donpcevent "Bidder#prace0::OnStopRace";
    }
    end;
    }
    p_track01,58,30,2	script	Santa Poring#prace5	1062,{
    end;
    OnRace:
    initnpctimer;
    startnpctimer;
    end;
    OnStop:
    stopnpctimer;
    end;
    OnReturn:
    npcwalkto 58,30;
    end;
    OnTimer1100:
    getmapxy( .@mapname$,.@x,.@y,1,"Santa Poring#prace5");
    if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
    setnpctimer rand($prace_random2);startnpctimer;
    if ((.@x-1) == 29) {
    set $prace_winner$,"Santa Poring";
    emotion 29;
    donpcevent "Bidder#prace0::OnStopRace";
    }
    end;
    }
    p_track01,58,28,2	script	Poporing#prace6	1031,{
    end;
    OnRace:
    initnpctimer;
    startnpctimer;
    end;
    OnStop:
    stopnpctimer;
    end;
    OnReturn:
    npcwalkto 58,28;
    end;
    OnTimer1100:
    getmapxy(.@mapname$,.@x,.@y,1,"Poporing#prace6");
    if(rand(100) < $prace_random) npcwalkto .@x-1,.@y;
    setnpctimer rand($prace_random2);startnpctimer;
    if ((.@x-1) == 29) {
    set $prace_winner$,"Poporing";
    emotion 29;
    donpcevent "Bidder#prace0::OnStopRace";
    }
    end;
    }

     

    screenHex RO000.jpg

  6. On 3/17/2021 at 7:02 PM, botka4aet said:

    Change 

    npctalk "Disguise Event : You took too long to guess what I was. Please wait 10 seconds while I disguise again.";

    to

    npctalk "Disguise Event : You took too long to guess what I was "+$MonsterName$+". Please wait 10 seconds while I disguise again.";

    and check correct answer

    if (.Timer) end;
    	set .Change,0;
    	setnpcdisplay "Disguise Event",795;
    	npctalk "Disguise Event : You took too long to guess what I was "+$MonsterName$+". Please wait 10 seconds while I disguise again.";
    	specialeffect EF_DETECT2;
    	set $MonsterName$,"";
    	deletepset 1;
    	stopnpctimer;
    	setnpctimer 0;
    	initnpctimer;
    	end;

    its correct but still not giving any prize

    qweqwe.jpg

    Any fix for this?

  7. On 3/14/2021 at 4:05 PM, Brynner said:

    have you tried to change your langtype?

    Yes i did, i change it to 0 and it won't let me open my client.

    <?xml version="1.0" encoding="euc-kr" ?>
    <clientinfo>
    <servicetype>korea</servicetype>
    <servertype>sakray</servertype>
       <connection>
          <display>Hex Ragnarok Online</display>
          <balloon>Hex Ragnarok Online</balloon>
          <desc>Hex Ragnarok Online</desc>
          <address>127.0.0.1</address>
          <port>6900</port>
          <version>24</version>
          <langtype>1</langtype>
          <registrationweb>flux.domain.com</registrationweb>
            <aid>
                <admin>2000000</admin>
            </aid>
           <loading>
        <image>loading00.jpg</image>
        </loading>
       </connection>
    </clientinfo>

    Bmp need help

     

  8. IM USING THE LATEST Disguise event NPC 

    https://github.com/rathena/rathena/blob/master/npc/custom/events/disguise.txt

     

    Quote
    
    //===== rAthena Script =======================================
    //= Disguise Event
    //===== By: ==================================================
    //= GmOcean
    //===== Current Version: =====================================
    //= 5.1
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= Guess a monster name correctly for prizes.
    //= 
    //= NOTE: Requires PCRE library installed.
    //===== Additional Comments: =================================
    //= 5.0 Last update by GmOcean.
    //= 5.1 Cleaned and standardized, mostly. [Euphy]
    //============================================================
    
    prontera,160,155,4	script	Disguise Event	795,{
    
    	// Currently set to run every two hours.
    	// To change times, edit the OnClock labels below.
    
    	set .@GMLevel,60;	// GM level required to access NPC.
    	set .@n$,"[^0000FFDisguise NPC^000000]";
    
    	if (getgmlevel()>=.@GMLevel) {
    		mes .@n$;
    		mes "Select an option.";
    		next;
    		switch(select("Turn ON/OFF Event:Event Settings")) {
    		case 1:
    			mes .@n$;
    			if (.EventON) {
    				mes "The Event is currently: [^0000FFON^000000]";
    				mes "Would you like to turn it OFF?";
    			} else {
    				mes "The Event is currently: [^FF0000OFF^000000]";
    				mes "Would you like to turn it ON?";
    			}
    			if(select("Yes:No")==2) close;
    			if (.EventON) {
    				set .EventON,0; set .Timer,0;
    				setnpctimer 0; stopnpctimer;
    				announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue;
    				deletepset 1;
    				setnpcdisplay "Disguise Event",795;
    				close;
    			}
    			set .EventON,1; set .Timer,1; setnpctimer 0; initnpctimer;
    			set .ResetCounter,.ResetCounter+1;
    			announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue;
    			announce "The Event is being held in Prontera.",bc_all | bc_blue;
    			close;
    		case 2:
    			mes .@n$;
    			mes "Pick a setting to modify.";
    			next;
    			switch(select("Monster Display:Number of Rounds:Prize Settings")) {
    			case 1:
    				setarray .@r$[0],"Disguise as all monsters.","Disguise as MVPs only.";
    				mes .@n$;
    				mes "Choose a disguise rule.";
    				next;
    				set .Rule, select(implode(.@r$,":"));
    				mes .@n$;
    				mes "The Disguise Rule has been set:";
    				mes "  > ^0055FF"+.@r$[.Rule-1]+"^000000";
    				close;
    			case 2:
    				mes .@n$;
    				mes "Input the number of rounds you want the event to last.";
    				mes "Current number: [^0000FF"+.Rounds+"^000000]";
    				next;
    				input .@Rounds;
    				set .Rounds,.@Rounds;
    				mes .@n$;
    				mes "The number of rounds has been changed to "+.Rounds+".";
    				close;
    			case 3:
    				mes .@n$;
    				mes "Input the Item ID of the prize given each round.";
    				mes "Current item: [^0000FF"+getitemname(.Prize)+"^000000] (ID #"+.Prize+")";
    				next;
    				input .@Prize;
    				mes .@n$;
    				if (getitemname(.@Prize)=="" || getitemname(.@Prize)=="null") {
    					mes "That item does not exist. Please try again.";
    					close;
    				}
    				set .Prize,.@Prize;
    				mes "Input the amount to be given.";
    				next;
    				input .@amount;
    				mes .@n$;
    				if (.@amount<=0 || .@amount>=10000) {
    					mes "That amount is invalid. Using default amount of 1.";
    					set .@amount,1;
    					next;
    					mes .@n$;
    				}
    				set .PrizeAmt,.@amount;
    				mes "The Prize has been changed successfully.";
    				mes "Prize: "+.PrizeAmt+"x [^0000FF"+getitemname(.Prize)+"^000000]";
    				close;
    			}
    		}
    	}
    	if (.EventON) end;
    	mes .@n$;
    	mes "Welcome.";
    	mes "How may I be of assistance?";
    	if(select("Information:Nothing, just passing through.")==2) close;
    	next;
    	mes .@n$;
    	mes "This event is quite simple.";
    	mes "At the start of the event, I will";
    	mes "disguise myself as a random";
    	mes "monster. You have to shout";
    	mes "that monster's name out loud.";
    	next;
    	mes "If you are correct, you will receive";
    	mes "a prize. If not, keep trying!";
    	mes "That's all that there is to this event.";
    	close;
    
    OnInit:
    	set .EventON,0;
    	set .Wait,0;
    	set .Winner,0;
    	set .ResetCounter,0;
    	set .Rounds,10;
    	set .Prize,512;
    	set .PrizeAmt,1;
    	set .Rule,1;
    	setarray .MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373,
    	                  1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688,
    				   1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131,
    				   2156,2165;
    	set .BlackList$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168," + 
    	    "1171,1172,1173,1181,1187,1210,1217,1218,1222,1223,1224,1225,1226,1227,1228," + 
    	    "1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,2002,2003,2004," + 
    	    "2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035," + 
    	    "2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049," + 
    	    "2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063," + 
    	    "2064,2065,2066,2067,2075,2076,2077,2078,2079,2080,2081,2083,2084,2085," + 
    	    "2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099," + 
    	    "2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113," + 
    	    "2114,2115,2116,2117,2118,2119,2120,2121,2123,2124,2125,1496,";
    	end;
    OnClock0000:
    OnClock0200:
    OnClock0400:
    OnClock0600:
    OnClock0800:
    OnClock1000:
    OnClock1200:
    OnClock1400:
    OnClock1600:
    OnClock1800:
    OnClock2000:
    OnClock2200:
    	set .ResetCounter,.ResetCounter+1;
    	set .EventON,1;
    	set .Timer,1;
    	set .Wait,1;
    	announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue;
    	announce "The Event is being held in Prontera.",bc_all | bc_blue;
    	setnpctimer 0;
    	initnpctimer;
    	end;
    OnTimer10000:
    	if (.Timer || .Change) end;
    	set .Wait,0;
    	goto iDisguise;
    	end;
    OnTimer30000:
    	if (.Timer) end;
    	set .Change,0;
    	setnpcdisplay "Disguise Event",795;
    	npctalk "Disguise Event : You took too long to guess what I was. Please wait 10 seconds while I disguise again.";
    	specialeffect EF_DETECT2;
    	set $MonsterName$,"";
    	deletepset 1;
    	stopnpctimer;
    	setnpctimer 0;
    	initnpctimer;
    	end;
    OnTimer60000:
    	if (.Timer!=1) end;
    	announce "The Disguise Event will begin in 2 minutes.",bc_all | bc_blue;
    	announce "The Event is being held in Prontera.",bc_all | bc_blue;
    	end;
    OnTimer120000:
    	if (.Timer!=1) end;
    	announce "The Disguise Event will begin 1 minute.",bc_all | bc_blue;
    	announce "The Event is being held in Prontera.",bc_all | bc_blue;
    	end;
    OnTimer180000:
    	if (.Timer!=1) end;
    	announce "The Disguise Event has begun!",bc_all | bc_blue;
    	announce "The Event is being held in Prontera.",bc_all | bc_blue;
    	set .Timer,0; stopnpctimer;
    	setnpctimer 0; initnpctimer;
    iDisguise:
    	if (.Rule==1) {
    		set .Winner,0;
    		set .Monster,1000+rand(1,995);
    		if (compare(","+.BlackList$+"," , ","+.Monster+",")) goto iDisguise;
    		if (.Monster==.LastMonster) goto iDisguise;
    		set .LastMonster,.Monster;
    		set $MonsterName$,getmonsterinfo(.Monster,0);
    	}
    	if (.Rule==2) {
    		set .Winner,0;
    		set .Monster,rand(49);
    		set $MonsterName$,getmonsterinfo(.MVP[.Monster],0);
    	}
    	deletepset 1;
    	defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect";
    	activatepset 1;
    	if (.Rule==1) setnpcdisplay "Disguise Event",.Monster;
    	if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.Monster];
    	set .Change,1;
    	setnpctimer 0;
    	end;
    iCorrect:
    	if (.Winner) {
    		dispbottom "Someone has already won this round.";
    		end;
    	}
    	set .Winner,1;
    	set .RoundCount,.RoundCount+1;
    	deletepset 1;
    	activatepset 1;
    	getitem .Prize,.PrizeAmt;
    	announce strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue;
    	if (.RoundCount>=.Rounds) {
    		setnpcdisplay "Disguise Event",795;
    		set .RoundCount,0; set .Change,0; set .EventON,0;
    		setnpctimer 0; stopnpctimer;
    		npctalk "Disguise Event : Thank you all for playing. That was the last round of the Disguise Event. Come play again later.";
    		end;
    	}
    	setnpcdisplay "Disguise Event",795;
    	set .Change,0;
    	setnpctimer 0;
    	end;
    }

     

    screenHex RO002.jpg

    screenHex RO003.jpg

    1.jpg

  9. 			if (!i && (skill_id == RG_STRIPWEAPON || skill_id == RG_STRIPSHIELD || skill_id == RG_STRIPARMOR || skill_id == RG_STRIPHELM))
    			{
    				int idx = sd ? pc_search_inventory(sd, 7321) : -1;
    				if (idx >= 0)
    				{
    					struct status_change *sc_ = status_get_sc(src);
    					if (sc_->data[SC_SPIRIT])
    					{
    						if (sc_->data[SC_SPIRIT]->val2 == SL_ROGUE)
    						{
    							if (rnd() % 100 >= ii)
    							{
    								enum sc_type sc_atk;
    								if (skill_id == RG_STRIPWEAPON)
    									sc_atk = SC_STRIPWEAPON;
    								else if (skill_id == RG_STRIPSHIELD)
    									sc_atk = SC_STRIPSHIELD;
    								else if (skill_id == RG_STRIPARMOR)
    									sc_atk = SC_STRIPARMOR;
    								else if (skill_id == RG_STRIPHELM)
    									sc_atk = SC_STRIPHELM;
    								else
    									sc_atk = SC_NONE;
    								if (sc_atk != SC_NONE)
    								{
    									sc_start(bl, sc_atk, 100, skill_lv, d);
    									clif_skill_nodamage(src, bl, skill_id, skill_lv, i);
    									i = 1;
    								}
    							}
    							pc_delitem(sd, idx, 1, 0, 1, LOG_TYPE_NONE);
    						}
    					}
    				}
    			}

    im new to src editing this is the code

    problem.JPG

×
×
  • Create New...