Jump to content

rkhin28

Members
  • Posts

    45
  • Joined

  • Last visited

Posts posted by rkhin28

  1. Hi, I'm currently having problem with this script :( I got this error in my map-serv

     

    [Error]:  Loading NPC file: npc/custom/ro/questevent.txt
    script error on npc/custom/ro/questevent.txt line 68
        parse_line: need ';'
        63 :        Add(1,5374,1,5000000,0,2256,3,750,2,923,100);
        64 :        Add(1,5373,1,5000000,0,7063,100,949,150,7315,200,983,4,7510,2,22
    55,10);
        65 :        Add(1,5377,1,10000000,0,7201,300,999,100,7035,5,2268,1)
        66 : // -----------------------------------------------------------
        67 :
    *   68 :        'f'reeloop(0);
        69 :        set .menu$,"";
        70 :        for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
        71 :                set .menu$, .menu$+.Shops$[.@i]+":";
        72 :                npcshopdelitem "qshop"+.@i,909;
        73 :        }
    

     

     

    Here is the full script.

     

    //===== rAthena Script =======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.6
    //===== Compatible With: =====================================
    //= rAthena SVN r16862+
    //===== Description: =========================================
    //= A dynamic quest shop based on Lunar's, with easier config.
    //= Includes support for multiple shops & cashpoints.
    //= Item Preview script by ToastOfDoom.
    //============================================================
    
    // Shop NPCs -- supplying no argument displays entire menu.
    //	callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
    //============================================================
    prontera,164,203,6	script	Quest Shop#1	998,{ callfunc "qshop"; }
    
    
    // Script Core
    //============================================================
    -	script	quest_shop	-1,{ 
    function Add; function Chk; function Slot; function A_An;
    OnInit:
    	freeloop(1);
    
    // -----------------------------------------------------------
    //  Basic shop settings.
    // -----------------------------------------------------------
    
    	set .Announce,0;	// Announce quest completion? (1: yes / 0: no)
    	set .ShowSlot,1;	// Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
    	set .ShowID,0;  	// Show item IDs? (1: yes / 0: no)
    	set .ShowZeny,0;	// Show Zeny cost, if any? (1: yes / 0: no)
    	set .MaxStack,100;	// Max number of quest items purchased at one time.
    
    // -----------------------------------------------------------
    //  Points variable -- optional quest requirement.
    //	setarray .Points$[0],"<variable name>","<display name>";
    // -----------------------------------------------------------
    
    	setarray .Points$[0],"#CASHPOINTS","Cash Points";
    
    // -----------------------------------------------------------
    //  Shop IDs -- to add shops, copy dummy data at bottom of file.
    //	setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
    // -----------------------------------------------------------
    
    	setarray .Shops$[1],"Headgears";
    
    // -----------------------------------------------------------
    //  Quest items -- do NOT use a reward item more than once!
    //	Add(<shop ID>,<reward ID>,<reward amount>,
    //	    <Zeny cost>,<point cost>,
    //	    <required item ID>,<required item amount>{,...});
    // -----------------------------------------------------------
    
    	Add(1,5359,1,2000000,0,2259,30);
    	Add(1,5132,1,2000000,0,949,150,5035,1,5074,1);
    	Add(1,5505,1,5000000,0,6020,150,1059,200,7215,50,7213,50,7038,50,7166,30);
    	Add(1,5431,1,2000000,0,916,300,925,200,1095,100);
    	Add(1,5374,1,5000000,0,2256,3,750,2,923,100);
    	Add(1,5373,1,5000000,0,7063,100,949,150,7315,200,983,4,7510,2,2255,10);
    	Add(1,5377,1,10000000,0,7201,300,999,100,7035,5,2268,1)
    // -----------------------------------------------------------
    
    	freeloop(0);
    	set .menu$,"";
    	for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
    		set .menu$, .menu$+.Shops$[.@i]+":";
    		npcshopdelitem "qshop"+.@i,909;
    	}
    	end;
    
    OnMenu:
    	set .@size, getarraysize(@i);
    	if (!.@size) set .@i, select(.menu$);
    	else if (.@size == 1) set .@i, @i[0];
    	else {
    		for(set .@j,0; .@j<.@size; set .@j,.@j+1)
    			set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";
    		set .@i, @i[select(.@menu$)-1];
    	}
    	deletearray @i[0],getarraysize(@i);
    	if (.Shops$[.@i] == "") {
    		message strcharinfo(0),"An error has occurred.";
    		end;
    	}
    	dispbottom "Select one item at a time.";
    	callshop "qshop"+.@i,1;
    	npcshopattach "qshop"+.@i;
    	end;
    
    OnBuyItem:
    	// .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }
    	setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);
    	copyarray .@q[3],getd(".q_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@q[0]));
    	set .@q[2],.@q[1]*.@q[3];
    	if (!.@q[2] || .@q[2] > 30000) {
    		message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";
    		end;
    	}
    	mes "[Quest Shop]";
    	mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";
    	mes "Requirements:";
    	if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";
    	if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";
    	if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    		mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
    	next;
    	setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
    	if (((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) && @qe[2] > 0)
    		set .@preview,1;
    	addtimer 1000, strnpcinfo(0)+"::OnEnd";
    	while(1) {
    		switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
    		case 1:
    			if (@qe[0]) { 
    				mes "[Quest Shop]";
    				mes "You're missing one or more quest requirements.";
    				close;
    			}
    			if (!checkweight(.@q[0],.@q[2])) {
    				mes "[Quest Shop]";
    				mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
    				close;
    			}
    			if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);
    			if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);
    			if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    				delitem .@q[.@i],.@q[.@i+1]*.@q[1];
    			getitem .@q[0],.@q[2];
    			if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0;
    			specialeffect2 699;
    			close;
    		case 2:
    			setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), 1;
    			if (@qe[1] & 1) changelook LOOK_HEAD_BOTTOM, @qe[2];
    			if (@qe[1] & 256) changelook LOOK_HEAD_TOP, @qe[2];
    			if (@qe[1] & 512) changelook LOOK_HEAD_MID, @qe[2];
    			break;
    		case 3:
    			close;
    		}
    	}
    
    OnEnd:
    	if (@qe[6]) {
    		changelook LOOK_HEAD_BOTTOM, @qe[3];
    		changelook LOOK_HEAD_TOP, @qe[4];
    		changelook LOOK_HEAD_MID, @qe[5];
    	}
    	deletearray @qe[0],7;
    	end;
    
    function Add {
    	if (getitemname(getarg(1)) == "null") {
    		debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
    		return;
    	}
    	setarray .@j[0],getarg(2),getarg(3),getarg(4);
    	for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
    		if (getitemname(getarg(.@i)) == "null") {
    			debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";
    			return;
    		} else
    			setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);
    	}
    	copyarray getd(".q_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);
    	npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
    	return;
    }
    
    function Chk {
    	if (getarg(0) < getarg(1)) {
    		set @qe[0],1;
    		return "^FF0000";
    	} else
    		return "^00FF00";
    }
    
    function Slot {
    	set .@s$,getitemname(getarg(0));
    	switch(.ShowSlot) {
    		case 1: if (!getitemslots(getarg(0))) return .@s$;
    		case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
    		default: return .@s$;
    	}
    }
    
    function A_An {
    	setarray .@A$[0],"a","e","i","o","u";
    	set .@B$, "_"+getarg(0);
    	for(set .@i,0; .@i<5; set .@i,.@i+1)
    		if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
    	return "a "+getarg(0);
    }
    }
    
    function	script	qshop	{
    	deletearray @i[0],getarraysize(@i);
    	for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
    		set @i[.@i],getarg(.@i);
    	doevent "quest_shop::OnMenu";
    	end;
    }
    
    
    // Dummy shop data -- copy as needed.
    //============================================================
    //-	shop	qshop1	-1,909:-1
    //-	shop	qshop2	-1,909:-1
    //-	shop	qshop3	-1,909:-1
    //-	shop	qshop4	-1,909:-1
    //-	shop	qshop5	-1,909:-1
    

     

     

  2. Hi rkhin28,

    You can easily use any program that has SFTP such as WinSCP or FileZilla and the connect to your server to transfer the files over. After transferring the files, simply compile the server within CentOS and configure the conf files to have the correct information; after that you should be able to run the server within CentOS with no issues.

    I'm planning to get a VPS from you. Do you mean even I have already configured the files, I need configure them again when transferring to CentOS?

  3. Yeah I wanted to disable mounts on Prontera but it doesn't work. The script don't remove the mount when somebody goes to Prontera.

    12622,Reins_Of_Mount,Reins Of Mount,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if (strcharinfo(3) != prontera) { setmounting(); } },{},{}

    ^I can't use Reins of Mount

  4. - script no_reins2 -1,{
    OnPCLoadMapEvent:
    if (strcharinfo(3) == prontera && ismounting() ) { setmounting(); }
    }
    prontera mapflag loadevent

    That should work now. I found the documentation for it.

    http://rathena.org/w...untingNPCHandle

    Thanks for the help. It's working now :D Thanks again :)

    **EDIT**

    It's not working :/ I accidentally put setmounting(); below OnPCLoadMapEvent that's why I said it's working but there's a problem with it. If they are not on mount and when they go to Prontera they are already mounted and when they type @go 0 again the mount disappear. Any ideas?

    • Upvote 1
  5. Make it into a full script, you only need to add two lines, and load it into the server.

    I've got this error btw

    script error on npc/own/mapflags/no_reins2.txt line 4
    parse_line: need ';'
     1 : {
     2 : OnPCLoadMapEvent:
     3 :   setmounting();
    *    4 :   if (strcharinfo(3) == prontera) {  setmounting'('0); }
        5 :   end;
        6 : }
        7 : prontera mapflag loadevent
    

  6. Something along this lines

    OnPCLoadMapEvent:
    if (strcharinfo(3) == prontera) { setmounting(0); }
    end;
    

    Double check on prontera if it needs " " or not.

    Do note:

    OnPCLoadMapEvent:
    This special label will trigger once a player steps in a map marked with the
    'loadevent' mapflag and attach its RID. The fact that this label requires a
    mapflag for it to work is because, otherwise, it'd be server-wide and trigger
    every time a player would change maps. Imagine the server load with 1,000 players
    (oh the pain...)

    Where should I put this one?

  7. Can anybody make a Refiner using this item:

    Purified Elunium

    ...

    Usable for refining +7 and higher armor (up to + 10). If the item fails to upgrade, the item is not lost, but instead loses 1 upgrade level

    Purified Oridecon

    ...

    Usable for refining +7 and higher weapons (up to + 10). If the item fails to upgrade, the item is not lost, but instead loses 1 upgrade level.

    But instead of +7 on armor make it +5. Thanks! /no1

  8. Can anybody modify this script so it could run for rAthena?

    //============================================================
    //= Auto MVP Summoner
    //===== By: =======================Modified By:=========
    //= xMachina / Acetito    Emistry
    //===== Current Version: =====================================
    //= 1.0
    //===== Compatible With: =====================================
    //= eA SVN 5000+
    //===== Additional Comments: =================================
    //= v1.0 Testing Mode
    //============================================================
    
    gonryun,155,181,5 script MVP Attack 437,{
    mes "[ ^0065DFxMachina^000000 ]";
    if(getgmlevel() < 20) {
    if(!.Event) mes "There is no MVP Attack Event now.";
    else {
     mes "There is a MVP Attack Event on now!";
     mes "Location: " + $@Map$;
     mes "Special MVP: " + $@SpecialMVP;
     mes "Normal MVP: " + $@NormalMVP;
    }
    close;
    }
    Main:
    mes "Please customize the MVP Attack Event:";
    while(1){
    switch(select("Item ["+getitemname($@ItemID)+" x "+$@Amount+"]:Location [" + $@Map$ + "]:MVP [special "+$@SpecialMVP+" |Normal "+$@NormalMVP+"]:Start/END Event")) {
    Case 1:
      mes "What item to be given to MVP Killer ?";
      next;
      do{
      message strcharinfo(0),"Enter a VALID itemID. Example 501 - Red Potion.";
      input $@ItemID,501,32767;
      }while( getitemname( $@ItemID ) == "null" );
      mes "Input the Amount of Item to be Rewarded for Special MVP Killer.";
      input $@Amount,1,30000;
      next;
      break;
    Case 2:
      mes "Which map would you like me to host this event?";
      mes "Input a ^FF0000VALID^000000 mapname.";
      do{
      message strcharinfo(0),"Enter a VALID mapname . Example : prt_maze02";
      input $@Map$;
      }while( getmapmobs( $@Map$ ) == -1 );
      next;
      break;
    Case 3:
      mes "How many ^FF0000Special^000000 MVP would you like me to summon?";
      input $@SpecialMVP;
      next;
      mes "How many ^FF0000Normal^000000 MVP would you like me to summon?";
      input $@NormalMVP;
      dispbottom "Special MVP = "+$@SpecialMVP+"   and   Normal MVP = "+$@NormalMVP+" ";
      next;
      break;
    Case 4:
      if( getmapmobs( $@Map$ ) == -1 || $@SpecialMVP == 0 ){
      mes "Please make sure your have do the Correct Configuration.";
      next;
      break;
      }
     if( !.Event ){
      mes "Starting the event now...";
      set .Event,1;
      monster $@Map$,0,0,"--ja--",-3,$@SpecialMVP,strnpcinfo(3)+"::OnSpecialKill";
      monster $@Map$,0,0,"--ja--",-3,$@NormalMVP,strnpcinfo(3)+"::OnNormalKill";
      announce "Map Invasion Begin : "+$@SpecialMVP+" Special MVP has invaded in "+$@Map$+". Hurry Up..",0,0x98FB98;
     }else{
      mes "Ending the event now...";
      announce "The MVP Attack Event is now over!",0,0x98FB98;
      killmonster $@Map$,"All";
      set .Event,0;
      }
     close;
    }
    }
    
    OnSpecialKill:
    announce "["+strcharinfo(0)+"] has killed 1 Special MVP and Gained Mystery Items .  Left "+mobcount($@Map$,strnpcinfo(3)+"::OnSpecialKill")+" Special MVP.",0;
    getitem $@ItemID,$@Amount;
    if( mobcount( $@Map$,strnpcinfo(3)+"::OnSpecialKill" ) == 0 ){ announce "The MVP Attack Event is now over!",0,0x98FB98;
    killmonster $@Map$,"All";
    set .Event,0;
    }
    end;
    
    OnNormalKill:
    dispbottom "You killed Normal MVP ( No Reward ).  Special MVP Left : "+mobcount($@Map$,strnpcinfo(3)+"::OnSpecialKill")+" .";
    end;
    OnClock0000:
    OnClock0400:
    OnClock0800:
    OnClock1200:
    OnClock1600:
    OnClock2000:
    if( getmapmobs( $@Map$ ) == -1 || $@SpecialMVP == 0 ){
    announce "MVP Invasion Event Failed due to MisConfiguration of Event. Please Report to Staffs.",0;
    end;
    }
    set .Event,1;
    monster $@Map$,0,0,"--ja--",-3,$@SpecialMVP,strnpcinfo(3)+"::OnSpecialKill";
    monster $@Map$,0,0,"--ja--",-3,$@NormalMVP,strnpcinfo(3)+"::OnNormalKill";
    announce "Map Invasion Begin : "+$@SpecialMVP+" Special MVP has invaded in "+$@Map$+". Hurry Up..",0,0x98FB98;
    end;
    }
    

    Thanks! :)

  9. Does anybody know why all of the characters are mounted and also they can attack. o.O I can't remember anything that I added. Thanks for those who will help me ^_^

×
×
  • Create New...