Jump to content

elmucho

Members
  • Posts

    32
  • Joined

  • Last visited

Posts posted by elmucho

  1. New script but its not dropping gold and not working when added on the item db 

      //*********************************************************************************************************************************************************************************
      //***--Topic Link :		***\( ^ ~ ^ )/***
      //***
      //***
      //*********************************************************************************************************************************************************************************
      //***-- Script by :		***\( ^ ~ ^ )/***
      //***-- Emistry
      //***
      //*********************************************************************************************************************************************************************************
      //***-- Contact Info :	***\( ^ ~ ^ )/***
      //***-- My Email : [email protected]
      //***
      //*********************************************************************************************************************************************************************************
      //***-- Messages :		***\( ^ ~ ^ )/***
      //***-- Drop me a private message or email if you are looking for my helps ^^.
      //***-- Beside that, I am looking for a Server to work with ^^ .  
      //***-- I will do my best to help you ^^.
      //***-- More Details ? PM Me ^^.
      //***
      //*********************************************************************************************************************************************************************************
      //***Although these scripts might not suit or follow with what you have requested completely. But i still wish you can give it a try before reject the works.
      //***
      //*********************************************************************************************************************************************************************************
    
    
      //-------------------------MONSTER DATABASE [ REPLACE it in Your MOB_DB.txt ]  --------------------------------------------------------------------
    
      //1852,G_EM_ANGELING,Angeling,Angeling,99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,969,5000,969,10000,969,8000,969,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
      //1853,G_EM_DEVILING,Deviling,Deviling,99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,7444,5000,7444,10000,7444,5000,969,10000,969,5000,0,0,0,0,0,0,0,0,0,0,0,0
    
    
    
      //-------------------------NPC [ Warper + Exchanger  ]  --------------------------------------------------------------------
    
      prontera,150,164,3	script	Gold Room Manager	100,{
      	mes "[ Gold Room Manager ]";
      	mes "How may I serve for you ?";
      	mes "I can warp you to a Gold Mine.";
      	next;
      	mes "[ Gold Room Manager ]";
      	mes "I need you to give me";
      	mes "1,000,000 Zeny to Enter.";
      	next;
      	switch(select("Enter to Gold Room:Cancel")) {
      case 1:
      	if(Zeny < 1000000) goto nomoney;
      	set .@a,rand(50);
      	set .@b,rand(50);
      	mes "[Gold Room]";
      	mes "Before you enter, you need to answer the question  ";
      	mes "for security check.";
      	mes "If A = "+.@a+"   B = "+.@b;
      	switch( rand(1) ){
      	set .@answer,.@a + .@b;
      	mes "How many is A + B ?";
      			next;
      			input .@input;	
      			next;
      		if( .@input!=.@answer ) {
      		atcommand "@kick " + strcharinfo(0);
      		close;
      		break;
      		}
      		else if (.@input==.@answer) {
      			set Zeny,Zeny-1000000;		
      			warp "ordeal_3-2",0,0; 	
      			close;
      			}
      		end;
      		}
      case 2:
      			mes "[ Gold Room Manager ]";	
      			mes "Owh....";
      			mes "Nevermind..since it is your decision.";
      			mes "It is all up to you.";
      			mes "Come back to me if you changed your mind.";
      			close;
      	}
      	nomoney:
      		mes "[Gold Room Manager]";
      		mes "Sorry you need 1,000,000z to enter";
      		close;
      }
      //-------------------------MONSTER SPAWN--------------------------------------------------------------------
    
    
      // Duplicados Warps v1.0
      ordeal_3-2.gat,130,193,0	warp	goldroomwrp#1	3,3,ordeal_3-2.gat,154,154
      ordeal_3-2.gat,106,154,0	warp	goldroomwrp#2	3,3,ordeal_3-2.gat,154,154
      ordeal_3-2.gat,201,129,0	warp	goldroomwrp#3	3,3,ordeal_3-2.gat,154,154
      ordeal_3-2.gat,177,193,0	warp	goldroomwrp#4	3,3,ordeal_3-2.gat,154,154
      //ordeal_3-2,24,228,0	warp	prontera	1,1,prontera,156,172;
      //ordeal_3-2,25,58,0	warp	prontera	1,1,prontera,156,172;
      //ordeal_3-2,289,130,0	warp	prontera	1,1,prontera,156,172;
      //ordeal_3-2,283,230,0	warp	prontera	1,1,prontera,156,172;
      //ordeal_3-2,210,203,0	warp	prontera	1,1,prontera,156,172;
    
      // Natural Monsters v1.0
      ordeal_3-2,154,154,0,0	monster	Gold Peco Peco	3003,15,0,0,0
      ordeal_3-2,0,0,0,0	monster	Gold Peco Peco	3003,50,0,0,0
      ordeal_3-2,0,0,0,0	monster	Gold Peco Peco	3003,50,0,0,0
      ordeal_3-2,0,0,0,0	monster	Gold Peco Peco	3003,50,0,0,0
    
      // Map Flags v1.0
      ordeal_3-2	mapflag	nowarp
      ordeal_3-2	mapflag	nobranch
      ordeal_3-2	mapflag	nomemo
      ordeal_3-2	mapflag	nowarpto
      ordeal_3-2	mapflag	nopenalty
      ordeal_3-2	mapflag	pvp_noparty
      ordeal_3-2	mapflag	noskill
      ordeal_3-2	mapflag	nosave
      ordeal_3-2	mapflag	novending
      ordeal_3-2	mapflag	noteleport

     

  2. Hi @Emistry i found this somewhere but im not able to spawn the monsters :( when i change the  angeling and develing on my db its not working. can u check this please 

    
    //*********************************************************************************************************************************************************************************
    //***--Topic Link :		***\( ^ ~ ^ )/***
    //***
    //***
    //*********************************************************************************************************************************************************************************
    //***-- Script by :		***\( ^ ~ ^ )/***
    //***-- Emistry
    //***
    //*********************************************************************************************************************************************************************************
    //***-- Contact Info :	***\( ^ ~ ^ )/***
    //***-- My Email : [email protected]
    //***
    //*********************************************************************************************************************************************************************************
    //***-- Messages :		***\( ^ ~ ^ )/***
    //***-- Drop me a private message or email if you are looking for my helps ^^.
    //***-- Beside that, I am looking for a Server to work with ^^ .  
    //***-- I will do my best to help you ^^.
    //***-- More Details ? PM Me ^^.
    //***
    //*********************************************************************************************************************************************************************************
    //***Although these scripts might not suit or follow with what you have requested completely. But i still wish you can give it a try before reject the works.
    //***
    //*********************************************************************************************************************************************************************************
    
    
    //-------------------------MONSTER DATABASE [ REPLACE it in Your MOB_DB.txt ]  --------------------------------------------------------------------
    
    //1852,G_EM_ANGELING,Angeling,Angeling,99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,969,5000,969,10000,969,8000,969,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    //1853,G_EM_DEVILING,Deviling,Deviling,99,120,0,0,0,1,60,71,100,99,1,17,80,80,126,20,10,12,0,8,66,0x37B5,300,1288,288,384,0,0,0,0,0,0,7444,5000,7444,10000,7444,5000,969,10000,969,5000,0,0,0,0,0,0,0,0,0,0,0,0
    
    
    
    //-------------------------NPC [ Warper + Exchanger  ]  --------------------------------------------------------------------
    
    phtownall,209,163,3	script	Gold Room Manager	4_M_EINMINER,{
    	mes "[ Gold Room Manager ]";
    	mes "How may I serve for you ?";
    	mes "I can warp you to a Gold Mine.";
    	next;
    	mes "[ Gold Room Manager ]";
    	mes "I need you to give me";
    	mes "1,000,000 Zeny to Enter.";
    	next;
    	switch(select("Enter to Gold Room:Cancel")) {
    case 1:
    	if(Zeny < 1000000) goto nomoney;
    	set .@a,rand(50);
    	set .@b,rand(50);
    	mes "[Gold Room]";
    	mes "Before you enter, you need to answer the question  ";
    	mes "for security check.";
    	mes "If A = "+.@a+"   B = "+.@b;
    	switch( rand(1) ){
    	set .@answer,.@a + .@b;
    	mes "How many is A + B ?";
    			next;
    			input .@input;	
    			next;
    		if( .@input!=.@answer ) {
    		atcommand "@kick " + strcharinfo(0);
    		close;
    		break;
    		}
    		else if (.@input==.@answer) {
    			set Zeny,Zeny-1000000;		
    			warp "ordeal_3-2",0,0; 	
    			close;
    			}
    		end;
    		}
    case 2:
    			mes "[ Gold Room Manager ]";	
    			mes "Owh....";
    			mes "Nevermind..since it is your decision.";
    			mes "It is all up to you.";
    			mes "Come back to me if you changed your mind.";
    			close;
    	}
    	nomoney:
    		mes "[Gold Room Manager]";
    		mes "Sorry you need 1,000,000z to enter";
    		close;
    }
    //-------------------------MONSTER SPAWN--------------------------------------------------------------------
    
    
    // Duplicados Warps v1.0
    ordeal_3-2.gat,130,193,0	warp	goldroomwrp#1	3,3,ordeal_3-2.gat,154,154
    ordeal_3-2.gat,106,154,0	warp	goldroomwrp#2	3,3,ordeal_3-2.gat,154,154
    ordeal_3-2.gat,201,129,0	warp	goldroomwrp#3	3,3,ordeal_3-2.gat,154,154
    ordeal_3-2.gat,177,193,0	warp	goldroomwrp#4	3,3,ordeal_3-2.gat,154,154
    //ordeal_3-2,24,228,0	warp	prontera	1,1,prontera,156,172;
    //ordeal_3-2,25,58,0	warp	prontera	1,1,prontera,156,172;
    //ordeal_3-2,289,130,0	warp	prontera	1,1,prontera,156,172;
    //ordeal_3-2,283,230,0	warp	prontera	1,1,prontera,156,172;
    //ordeal_3-2,210,203,0	warp	prontera	1,1,prontera,156,172;
    
    // Natural Monsters v1.0
    ordeal_3-2,154,154,0,0	monster	Gold Peco Peco	3003,15,0,0,0
    ordeal_3-2,0,0,0,0	monster	Gold Peco Peco	3003,50,0,0,0
    ordeal_3-2,0,0,0,0	monster	Gold Peco Peco	3003,50,0,0,0
    ordeal_3-2,0,0,0,0	monster	Gold Peco Peco	3003,50,0,0,0
    
    // Map Flags v1.0
    ordeal_3-2	mapflag	nowarp
    ordeal_3-2	mapflag	nobranch
    ordeal_3-2	mapflag	nomemo
    ordeal_3-2	mapflag	nowarpto
    ordeal_3-2	mapflag	nopenalty
    ordeal_3-2	mapflag	pvp_noparty
    ordeal_3-2	mapflag	noskill
    ordeal_3-2	mapflag	nosave
    ordeal_3-2	mapflag	novending
    ordeal_3-2	mapflag	noteleport

     

  3. //*********************************************************************************************************************************************************************************
    //*********************************************************************************************************************************************************************************
    //***-- Script by :
    //***-- Syllabear
    //***
    //*********************************************************************************************************************************************************************************
    //*********************************************************************************************************************************************************************************
    //***-- Messages :
    //***-- I will do my best to help you
    //***-- More Details ? PM Me
    //***
    //*********************************************************************************************************************************************************************************
    //***
    //*********************************************************************************************************************************************************************************
    //***Although these scripts might not suit or follow with what you have requested completely. But i still wish you can give it a try before reject the works.
    //***
    //*********************************************************************************************************************************************************************************
    
    //-------------------------MONSTER DATABASE [ REPLACE it in Your MOB_DB.txt ]  --------------------------------------------------------------------
    //-------------------------NPC [ Warper + Exchanger  ]  --------------------------------------------------------------------
    belagio,72,61,7	script	Gold Room	452,{
    mes "[ Gold Room Manager ]";
    mes "Hello, ";
    mes "How may i serve for you ?";
    mes "I can warp you to a Gold Mine.";
    mes "Would you like to go there try to get some gold ?";
    mes "You could be get rich if you lucky enough.";
    next;
    switch(select("Hunt Now:Later")) {
    	Case 1:
    	mes "[ Gold Room Manager ]";
    	mes "Okay, here you go";
    	next;
    	mes "[ Gold Room Manager ]";
    	mes "Enjoy !";
    	close2;  
    	warp "bat_c01",0,0;
    	end;
    	Case 2:
    	mes "[ Gold Room Manager ]";
    	mes "Okay, I'll wait you.";
    	close;
    	Case 3:
    	mes "[ Gold Room Manager ]";
    	mes "Do you wish to change it into ";
    	mes "^0000FFBronze Coin^000000?";
    	next;
    	switch(select("Exchange:Not yet")) {
    	case 1:
    		mes "[ Gold Room Manager ]";
    		mes "you have ";
    		mes "- "+countitem(969)+" x ^008800 Golds^000000";
    		mes "- "+countitem(7444)+" x ^008800 Treasure Boxes^000000";
    		next;
    		switch(select("Gold to Bronze Coin:Treasure Box to Coin")) {
    			Case 1:
    			mes "[ Gold Room Manager ]";
    			if(countitem(969)<100){
    				mes "You dont have enough gold with you.";
    				close;
    			}
    			if(countitem(969)>100){
    				mes "Okay there you go.";
    				mes "100 Gold has been changed to 10 Bronze Coin";
    				delitem 969,100;
    				getitem 673,10;
    				close;
    				end;
    			}
    			Case 2:
    			mes "[ Gold Room Manager ]";
    			if(countitem(7444)<100){
    				mes "You dont have enough treasure box with you.";
    				close;
    			}
    			if(countitem(969)>100){
    				mes "Okay there you go.";
    				mes "100 Treasure Box has been changed to 10 Bronze Coin";
    				delitem 7444,100;
    				getitem 673,10;
    				close;
    				end;
    			}
    		}
    	}
    }
    }
    
    //-------------------------MONSTER SPAWN--------------------------------------------------------------------
    
    bat_c01,0,0,0,0	monster	Gold Room Angel	1852,80,0,0,0
    bat_c01,0,0,0,0	monster	Gold Room Devil	1853,80,0,0,0
    bat_c01,0,0,0,0	monster	Gold Room Guardian	2071,1,0,0,0

    But its not working no item drop :(

  4. 5 hours ago, Scylla said:
    
    //===== Hourly Points Script =========================================
    //===== By: ==========================================================
    //= GorthexTiger modified by Nibi
    //===== Current Version: =============================================
    //= 1.0
    //===== Compatible With: =============================================
    //= Any eAthena Version
    //===== Description: =================================================
    //= Get Points every successful hours of gameplay, you cannot get
    //= the points even if you miss a second or a minute. A player will
    //= get a very big bonus if they played 3 hours consecutively
    //= or without logging out of the game. If the player is vending
    //= the script will then stop.
    //===== Additional Comments: =========================================
    //= You can modify the script to your liking.
    //= The default points is Kafrapoints change it anyway if you like.
    //= 1.1 = Check Chatting too
    //= 1.2 = 5 Minute Idle Check & @at/@autotrade check.
    //= 1.3 = Corrected the current balance line on 12 Hours Consecutive
    //====================================================================
    -	script	hourlypoints	-1,{
    //--Start of the Script
    OnPCLoginEvent:
        dispbottom "The hourly points system has started please continue to be online to gain PODS.";
        addtimer .timer,"hourlypoints::OnPointGet";
        end;
        
    OnPointGet:
    	while(checkvending() >= 1 || checkchatting() == 1 || checkidle()>=.dlimit) {
    	sleep2 .delay;
    	if(.@mes$=="")
    	dispbottom set(.@mes$,"The hourly points event haulted because you were vending");
    }
    	getitem 7179,.point_amt;
    	dispbottom "You received "+.point_amt+" PODS by staying ingame for 1 hour";
    	set @consecutive_hour, @consecutive_hour + 1;
    
        //Check for 6 hours consecutive
    	if(@consecutive_hour == 6) {
    	set @consecutive_hour,0;
    	getitem 7179,.cpoint_amt;
    	dispbottom "You receive "+.cpoint_amt+" PODS in playing for 12 consecutive hours";
    }
    	addtimer .timer,"hourlypoints::OnPointGet";
    	end;
    
    OnInit:
    	set .timer, 1000*60*60; //Timer in milliseconds.
    	set .cpoint_amt, 5; //Points gained for consecutive time online.
    	set .point_amt, 1; //Normal points gained.
    	set .delay, 1000; //Delay for idle re-check check.
    	set .dlimit, 60*5; //Stop points if afk greater then in seconds.
    
    }

    To change the rewards given, just edit stuff here:

    
    	set .timer, 1000*60*60; //Timer in milliseconds.
    	set .cpoint_amt, 5; //Points gained for consecutive time online.
    	set .point_amt, 2; //Normal points gained.
    	set .delay, 1000; //Delay for idle re-check check.
    	set .dlimit, 60*5; //Stop points if afk greater then in seconds.

    Script Source: https://rathena.org/board/topic/88823-hourly-points/

    Ho can i make it pods instead of points ?

  5. Hi can i request a npc script that will provide you pods automatically on your storage every 1 hr, and every 6 hrs you will be getiing a bonus. 

    i tried this but its not working even i change in to 1 minute. help please 

    //===== Hourly Points Script =========================================
    //===== By: ==========================================================
    //= GorthexTiger modified by Nibi
    //===== Current Version: =============================================
    //= 1.0
    //===== Compatible With: =============================================
    //= Any eAthena Version
    //===== Description: =================================================
    //= Get Points every successful hours of gameplay, you cannot get
    //= the points even if you miss a second or a minute. A player will
    //= get a very big bonus if they played 12 hours consecutively
    //= or without logging out of the game. If the player is vending
    //= the script will then stop.
    //===== Additional Comments: =========================================
    //= You can modify the script to your liking.
    //= The default points is Kafrapoints change it anyway if you like.
    //= 1.1 = Check Chatting too
    //= 1.2 = 5 Minute Idle Check & @at/@autotrade check.
    //= 1.3 = Corrected the current balance line on 12 Hours Consecutive
    //====================================================================
    - script hourlypoints -1,{
    //--Start of the Script
    OnPCLoginEvent:
    attachnpctimer ""+strcharinfo(0)+"";
    initnpctimer;
    end;
    
    OnTimer30000:
    //Check if Vending (normal or @at)
    if(checkvending() >= 1 || checkchatting() == 1) {
    dispbottom "The hourly points event stopped because you were vending / chatting. Please relog if you wish to start again.";
    stopnpctimer;
    end;
    }
    //Check if Idle
    getmapxy( .@map$, .@x, .@y, 0 );
    if(@map$ == .@map$ && @x == .@x && @y == .@y) {
    set @afk, @afk + 1;
    }
    //If move timer resets
    else {
    set @afk, 0;
    }
    set @map$, .@map$; set @x, .@x; set @y, .@y;
    //Idle Check for 5 Minutes
    if(@afk == 5) {
    dispbottom "The hourly points event stopped because you were idle for 5 minutes. Please relog if you wish to start again.";
    stopnpctimer;
    end;
    }
    end;
    OnTimer60000:
    set @minute, @minute + 1;
    //Check for 1 Minute
    if(@minute == 60){
    set @minute,0;
    set .@point_amt, 3; //Points to get every hour (default: 10)
    getitem 7227,.@point_amt;
    dispbottom "You received "+.@point_amt+" TCG by staying ingame for 1 hour";
    set @consecutive_hour, @consecutive_hour + 1;
    }
    //Check for 12 hours consecutive
    if(@consecutive_hour == 12) {
    set @consecutive_hour,0;
    set .@cpoint_amt, 50; //Points to get for 12 Consecutive hours (default: 50)
    getitem 7227,.@point_amt;
    dispbottom "You received "+.@point_amt+" TCG in playing for 12 consecutive hours";
    }
    stopnpctimer;
    initnpctimer;
    end;
    }
    //--End of the Script

     

  6. Hi how to add room names so people can choose map and enter to it 

    -    script    PvpRotative    -1,{
    
    OnInit:
    // ======================================
    // Configurations ***********************
    // ======================================
    // Which map will be on the rotation?
       setarray .lista$[0],"guild_vs3","pvp_y_3-2","guild_vs4" ,"pvp_y_1-4";
    // From how much time to time will the maps change? (Standard value 30 minutes/18000000)
    // WARNING, DO NOT SET VALUES HERE SMALLER THAN 60000 (1 Minute).
       set .rotatetime, 4500000;
    // ======================================
    
        set $@lista$, ""+.lista$[0]+"";
        set .count, getarraysize(.lista$);
    
        for( set .@i,0; .@i < .count; set .@i, .@i+1 ){
                sleep .rotatetime-60000;
                mapannounce ""+.lista$[.@i]+"","The PVP map will change in 30 seconds.",8;
                sleep 30000;
                mapannounce ""+.lista$[.@i]+"","The PVP map will change in 20 seconds.",8;
                sleep 20000;
                mapannounce ""+.lista$[.@i]+"","The PVP map will change in 10 seconds.",8;
                sleep 10000;
                if(.lista$[.@i] == .lista$[.count-1]){
                    mapwarp ""+.lista$[.@i]+"",""+.lista$[0]+"",0,0;
                    set $@lista$, ""+.lista$[0]+"";
                    set .@i,-1;
                }
                else{
                    mapwarp ""+.lista$[.@i]+"",""+.lista$[.@i+1]+"",0,0;
                    set $@lista$, ""+.lista$[.@i+1]+"";
                }
            }
    }
    
    prontera,129,215,5     script    PvP Keeper    843,{
    
        mes "[PvP Keeper]";
        mes "Ready for a bloody";
        mes "and glorious battle today?";
      if (select("Enter PVP. ["+getmapusers( $@lista$ ) +"]:I'm out of potions today.") == 1) {
          warp $@lista$,0,0;
        announce strcharinfo(0)+" has entered PVP! at "+$@lista$,0;
          end;
      }
        next;
        mes "[PvP Keeper]";
        mes "Haha!~";
        mes "It's okay to be scared!!";
        mes "HAHAHAHAHAHA!";
        close;
        
    }

     

  7. This is the code that i have but its not working  can you

     

    Punching Bag Npc with auto respawn and dps

    help me about this please thank you i want to create 3 punching bag when die it will automatically respawn 

     

    -    script    Punching Bag    -1,{OnInit:monster "prontera”,203,183,”Punching Bag",1905,1,strnpcinfo(0)+"::OnDummyKill";monster "prontera”,203,180,”Punching Bag",1905,1,strnpcinfo(0)+"::OnDummyKill2";monster "prontera",203,177,”Punching Bag",1905,1,strnpcinfo(0)+"::OnDummyKill3";end;OnDummyKill:     monster "prontera",203,183,"Punching Bag",1905,1,strnpcinfo(0)+"::OnDummyKill";     end;OnDummyKill2:     monster "prontera”,203,180,”Punching Bag",1905,1,strnpcinfo(0)+"::OnDummyKill2";     end;OnDummyKill3:     monster "prontera”,203,177,”Punching Bag",1905,1,strnpcinfo(0)+"::OnDummyKill3";     end;}

  8. Upon Deleting the character it will ask you are you sure about it and once you click the ok it will ask you for this "Please enter the deletion password" but if you typed your password its wrong. but when i try to type my email it will work. how can i change the please enter the deletion password word with email ? please check the video for explanation thank u 

    When you type your password its incorrect but when you type your email its correct how can i change please enter deletion password to email ? 

     

     

    Screen Recording.mov

    Screen Shot 2017-06-15 at 6.34.37 PM.png

  9. Hi how to make another euphys quest shop because i tried to make another one but the item is the same what should i do 

     

    code 

     

    //===== rAthena Script =======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.6c
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= A dynamic quest shop based on Lunar's, with easier config.
    //= Includes support for multiple shops & cashpoints.
    //= Item Preview script by ToastOfDoom.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.2 Added category support.
    //= 1.3 More options and fixes.
    //= 1.4 Added debug settings.
    //= 1.5 Replaced categories with shop IDs.
    //= 1.6 Added support for purchasing stackables.
    //= 1.6a Added support for previewing costumes and robes.
    //= 1.6b Added 'disable_items' command.
    //= 1.6c Replaced function 'A_An' with "F_InsertArticle".
    //============================================================
    
    // 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;
    OnInit:
    	freeloop(1);
    
    // -----------------------------------------------------------
    //  Basic shop settings.
    // -----------------------------------------------------------
    
    	set .Announce,1;	// 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","Weapons","Other";
    
    // -----------------------------------------------------------
    //  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,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
    	Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
    	Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
    	Add(1,5045,1,0,0,2252,1,1054,450,943,1200);
    
    	Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
    	Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);
    
    	Add(3,531,1,3,0,512,1,713,1);
    	Add(3,532,1,3,0,513,1,713,1);
    	Add(3,533,1,3,0,514,1,713,1);
    	Add(3,534,1,3,0,515,1,713,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 @shop_index, select(.menu$);
    	else if (.@size == 1) set @shop_index, @i[0];
    	else {
    		for(set .@j,0; .@j<.@size; set .@j,.@j+1)
    			set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";
    		set @shop_index, @i[select(.@menu$)-1];
    	}
    	deletearray @i[0],getarraysize(@i);
    	if (.Shops$[@shop_index] == "") {
    		message strcharinfo(0),"An error has occurred.";
    		end;
    	}
    	dispbottom "Select one item at a time.";
    	callshop "qshop"+@shop_index,1;
    	npcshopattach "qshop"+@shop_index;
    	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_"+@shop_index+"_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+@shop_index+"_"+.@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:";
    	disable_items;
    	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[2] > 0 && ((@qe[1] & EQP_HEAD_LOW) || (@qe[1] & EQP_HEAD_TOP) || (@qe[1] & EQP_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_TOP) || (@qe[1] & EQP_COSTUME_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_LOW) || (@qe[1] & EQP_GARMENT) || (@qe[1] & EQP_COSTUME_GARMENT)))
    		set .@preview,1;
    	addtimer 1000, strnpcinfo(0)+"::OnEnd";
    	while(1) {
    		switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ 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]):callfunc("F_InsertArticle",getitemname(.@q[0])))+"!",0;
    			specialeffect2 EF_FLOWERLEAF;
    			close;
    		case 2:
    			setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1;
    			if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2];
    			else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2];
    			else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2];
    			else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2];
    			break;
    		case 3:
    			close;
    		}
    	}
    
    OnEnd:
    	if (@qe[7]) {
    		changelook LOOK_HEAD_BOTTOM, @qe[3];
    		changelook LOOK_HEAD_TOP, @qe[4];
    		changelook LOOK_HEAD_MID, @qe[5];
    		changelook LOOK_ROBE, @qe[6];
    	}
    	deletearray @qe[0],8;
    	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(0)+"_"+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	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
  10. The Code below only shows jellopy :( 

    //===== rAthena Script =======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.4b
    //===== Compatible With: =====================================
    //= rAthena SVN r15340+
    //===== Description: =========================================
    //= A dynamic quest shop based on Lunar's, with easier config.
    //= Includes support for multiple shops & cashpoints.
    //= Item Preview script by ToastOfDoom.
    //============================================================
                        
    prontera,164,203,6    script    Quest Shop    998,{
    function Add; function Chk; function Slot; function A_An;
    
        if (.Shops$ == "") set .@i, select(.menu$);
        else set .@i,1;
        dispbottom "Select one item at a time.";
        callshop "qshop"+.@i,1;
        npcshopattach "qshop"+.@i;
        end;
    
    function Add {
        if (getitemname(getarg(1)) == "null") {
            debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
            return;
        }
        for(set .@n,5; .@n<127; set .@n,.@n+2) {
            if (!getarg(.@n,0)) break;
            if (getitemname(getarg(.@n)) == "null") {
                debugmes "Quest requirement #"+getarg(.@n)+" invalid (skipped).";
                return;
            }
        }
        for(set .@i,2; .@i<.@n; set .@i,.@i+1)
            set getd(".q_"+getarg(1)+"["+(.@i-2)+"]"), getarg(.@i);
        npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
        return;
    }
    function Chk {
        if (getarg(0) < getarg(1)) {
            set @qe0,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);
    }
    
    OnBuyItem:
        set .@q[0],@bought_nameid;
        copyarray .@q[1],getd(".q_"+@bought_nameid+"[0]"),getarraysize(getd(".q_"+@bought_nameid+"[0]"));
        if (!.@q[1]) {
            message strcharinfo(0),"An error has occurred.";
            end;
        }
        mes "[Quest Shop]";
        mes "Reward: ^0055FF"+((.@q[1]>1)?.@q[1]+"x ":"")+Slot(.@q[0])+"^000000";
        mes "Requirements:";
        if (.@q[2]) mes " > "+Chk(Zeny,.@q[2])+.@q[2]+" Zeny^000000";
        if (.@q[3]) mes " > "+Chk(getd(.Points$[0]),.@q[3])+.@q[3]+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+.@q[3]+")^000000";
        if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
            mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1])+((.DisplayID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+.@q[.@i+1]+")^000000";
        next;
        set @qe1, getiteminfo(.@q[0],5);
        set @qe2, getiteminfo(.@q[0],11);
        addtimer 1000, strnpcinfo(1)+"::OnEnd";
        while(1) {
            switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((((@qe1&1) || (@qe1&256) || (@qe1&512)) && @qe2 > 0 && !@qe6)?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
            case 1:
                if (@qe0) { 
                    mes "[Quest Shop]";
                    mes "You're missing one or more quest requirements.";
                    close;
                }
                if (!checkweight(.@q[0],.@q[1])) {
                    mes "[Quest Shop]";
                    mes "^FF0000You need "+(((.@q[1]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
                    close;
                }
                if (.@q[2]) set Zeny, Zeny-.@q[2];
                if (.@q[3]) setd .Points$[0], getd(.Points$[0])-.@q[3];
                if (.@q[4]) for(set .@i,4; .@i<getarraysize(.@q); set .@i,.@i+2)
                    delitem .@q[.@i],.@q[.@i+1];
                getitem .@q[0],.@q[1];
                if (.Announce) announce strcharinfo(0)+" has created "+A_An(getitemname(.@q[0]))+"!",0;
                specialeffect2 699;
                close;
            case 2:
                set @qe3, getlook(3);
                set @qe4, getlook(4);
                set @qe5, getlook(5);
                set @qe6,1;
                if (@qe1&1) atcommand "@changelook 3 "+@qe2;
                if (@qe1&256) atcommand "@changelook 1 "+@qe2;
                if (@qe1&512) atcommand "@changelook 2 "+@qe2;
                break;
            case 3:
                close;
            }
        }
    OnEnd:
        if (@qe6) {
            atcommand "@changelook 3 "+@qe3;
            atcommand "@changelook 1 "+@qe4;
            atcommand "@changelook 2 "+@qe5;
        }
        for(set .@i,0; .@i<7; set .@i,.@i+1)
            setd "@qe"+.@i,0;
        end;
    OnInit:
        freeloop(1);
    // --------------------- Config ---------------------
    // Custom points, if needed: "<variable>","<name to display>"
        setarray .Points$[0],"#CASHPOINTS","Cash Points";
    
        set .Announce,1;    // Announce quest completion? (1: yes / 0: no)
        set .ShowSlot,1;    // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
        set .DisplayID,0;    // Show item IDs? (1: yes / 0: no)
        set .ShowZeny,0;    // Show Zeny cost, if any? (1: yes / 0: no)
    
    // Shop categories, if needed: "<Shop 1>","<Shop 2>"{,...};
    // Duplicate dummy data for any additional shops (bottom of script).
    // If no categories, use the second line instead (remove //).
    
        setarray .Shops$[1],"Headgears","Weapons","Other";
        // set .Shops$,"n/a";
    
    // Add(<shop number>,<reward ID>,<reward amount>,<Zeny cost>,<point cost>,
    //     <required item ID>,<required item amount>{,...});
    // Shop number corresponds with order above (default is 1).
    // Note: Do NOT use a reward item more than once!
    
        Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
        Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
        Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
        Add(1,5045,1,0,0,2252,1,1054,450,943,1200);
    
        Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
        Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);
    
        Add(3,531,1,3,0,512,1,713,1);
        Add(3,532,1,3,0,513,1,713,1);
        Add(3,533,1,3,0,514,1,713,1);
        Add(3,534,1,3,0,515,1,713,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;
    }
    
    // -------- Dummy data (duplicate as needed) --------
    -    shop    qshop1    -1,909:-1
    -    shop    qshop2    -1,909:-1
    -    shop    qshop3    -1,909:-1

     

×
×
  • Create New...