Jump to content

Zyper143

Members
  • Posts

    22
  • Joined

  • Last visited

Posts posted by Zyper143

  1. Need help the def over 99 will become negetive I already set the battle/player.conf still not working btw im using  pre-re

    // Max armor def/mdef
    // NOTE: This setting have no effect if server is run on Renewal Mode (RENEWAL) 
    // NOTE: does not affects skills and status effects like Mental Strength
    // If weapon_defense_type is non-zero, it won't apply to max def.
    // If magic_defense_type is non-zero, it won't apply to max mdef.
    max_def: 500

     

  2. Help to this Unknown Syntax

    [Error]: npc_parsesrcfile: Unknown syntax in file 'npc/custom/healer.txt', line '52'. Stopping...
     * w1=if (.@Identify) {
     * w2=
     * w3=
     * w4=

    This is the script

    //===== rAthena Script =======================================
    //= Healer
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.1
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= Basic healer script.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.1 Aligned coordinates with @go.
    //= 1.2 Added repair/Identifier
    //============================================================
    
    -	script	Healer	-1,{
    
    	.@Price = 0;	// Zeny required for heal
    	.@Buffs = 0;	// Also buff players? (1: yes / 0: no)
    	.@Delay = 0;	// Heal delay, in seconds
    	.@Repair = 0;	// Repairall (1: yes / 0: no)
    	.@Identify = 1;	// Identify (1: yes / 0: no)
    
    	if (@HD > gettimetick(2))
    		end;
    	if (.@Price) {
    		message strcharinfo(0), "Healing costs " + callfunc("F_InsertComma",.@Price) + " Zeny.";
    		if (Zeny < .@Price)
    			end;
    		if (select("^0055FFHeal^000000:^777777Cancel^000000") == 2)
    			end;
    		Zeny -= .@Price;
    	}
    	percentheal 100,100;
    	if (.@Buffs) {
    		specialeffect2 EF_INCAGILITY;
    		sc_start SC_SPEEDUP0,300000,30;
    	}
    	if (.@Delay)
    		@HD = gettimetick(2) + .@Delay;
    
    	if (.@Repair) {
    	while (getbrokenid(1)) {
    	repair(1);
    	set .@i, .@i +1;
    		}
    	if (.@i) dispbottom .@i + " items has been repaired.";
    	end;
    		}
    	}
    	if (.@Identify) {
    	getinventorylist;
    	for( set .@i,0; .@i < @inventorylist_count; set .@i, .@i + 1 ) {
    		if ( @inventorylist_identify[.@i] == 1 ) continue;
    		delitem2 @inventorylist_id[.@i],1,0,0,0,0,0,0,0;
    		getitem @inventorylist_id[.@i],1;
    	}
    	}
    	end;
    }
    
    
    // Duplicates
    //============================================================
    alberta,186,148,5	duplicate(Healer)	Healer#alb	742
    aldebaran,135,118,6	duplicate(Healer)	Healer#alde	742
    amatsu,191,113,5	duplicate(Healer)	Healer#ama	742
    ayothaya,207,169,6	duplicate(Healer)	Healer#ayo	742
    comodo,145,165,5	duplicate(Healer)	Healer#com	742
    einbech,57,36,6	duplicate(Healer)	Healer#einbe	742
    einbroch,57,202,6	duplicate(Healer)	Healer#einbr	742
    geffen,113,65,5	duplicate(Healer)	Healer#gef	742
    gonryun,156,122,6	duplicate(Healer)	Healer#gon	742
    hugel,89,150,6	duplicate(Healer)	Healer#hug	742
    //izlude,121,150,6	duplicate(Healer)	Healer#izl	742	//Pre-RE: (125,118)
    jawaii,250,139,4	duplicate(Healer)	Healer#jaw	742
    lighthalzen,152,100,6	duplicate(Healer)	Healer#lhz	742
    louyang,226,103,4	duplicate(Healer)	Healer#lou	742
    manuk,272,144,6	duplicate(Healer)	Healer#man	742
    mid_camp,203,289,6	duplicate(Healer)	Healer#mid	742
    moc_ruins,72,164,4	duplicate(Healer)	Healer#moc	742
    morocc,153,97,6	duplicate(Healer)	Healer#mor	742
    moscovia,220,191,4	duplicate(Healer)	Healer#mos	742
    niflheim,212,182,5	duplicate(Healer)	Healer#nif	742
    payon,163,222,3	duplicate(Healer)	Healer#pay	742
    prontera,150,183,5	duplicate(Healer)	Healer#prt	742
    rachel,125,116,6	duplicate(Healer)	Healer#rac	742
    splendide,201,153,4	duplicate(Healer)	Healer#spl	742
    thor_camp,249,74,4	duplicate(Healer)	Healer#thor	742
    umbala,69,142,5	duplicate(Healer)	Healer#umb	742
    veins,217,121,4	duplicate(Healer)	Healer#ve	742
    xmas,149,136,5	duplicate(Healer)	Healer#xmas	742
    yuno,164,45,4	duplicate(Healer)	Healer#yuno	742
    yuno,166,126,4	duplicate(Healer)	Healer#yuno2	742
    
    // Duplicates (Renewal)
    //============================================================
    brasilis,194,221,6	duplicate(Healer)	Healer#bra	742
    dewata,195,187,4	duplicate(Healer)	Healer#dew	742
    dicastes01,201,194,4	duplicate(Healer)	Healer#dic	742
    ecl_in01,45,60,4	duplicate(Healer)	Healer#ecl	742
    malangdo,132,114,6	duplicate(Healer)	Healer#mal	742
    malaya,227,204,6	duplicate(Healer)	Healer#ma	742
    mora,55,152,4	duplicate(Healer)	Healer#mora	742

     

  3. 6 hours ago, jurelmetal said:

    If I understand your request correctly, and since the section you want to show the cutin in is being executed as part of a OnMinuteXX event label, the NPC is not attached to any players at that point, so it's not possible to show a cutin.

    How about creating separate script that can trigger in the time of OnMinuteXX then it will close after 3min

  4. How to add cutin in this poring catcher event during the portal open and it will close after saying The portal has been closed. Thank you
     

    //=========== PORING CATCHER MADE ==============\\
    //=== BY: SHOGS-GFX and RAGNAROK DEVELOPERS ====\\
    //= Please Report if you encounter some errors =\\
    //===== https://www.facebook.com/ShogsGfx ======\\
    //==============================================\\
    //==FUNCTIONS===================================\\
    /* GM Can start the event manualy
       GM Can also stop the event manualy
    HOW: just PM this npc (npc:pcatch)
    The Next Guide Will Be Given by the Manager 	*/
    //======= PLEASE DO NOT REMOVE CREDITS =========\\
    //==============================================\\
    //== MORE UPDATES TO COME FOR BETTER FUNCTION ==\\
    //===== https://www.facebook.com/ShogsGfx ======\\
    //==============================================\\
    
    //====LEVEL OF GM CAN CONTROL THE EVENT=========\\
    
    -	script	GMCONTROL	-1,{
    OnInit:
    set $gmcontrol,60;
    end;
    
    }
    //---------------END OF SETUP-------------------\\
    
    //================ON WHISPER=========================\\
    -	script	pcatch	-1,{
    
    //====LEVEL OF GM CAN CONTROL THE EVENT=========\\
    //OnInit:
    //set $gmcontrol,60;
    //end;
    //---------------END OF SETUP-------------------\\
    
    OnWhisperGlobal:
    if(getgmlevel() >= $gmcontrol) {
    mes "^3399FF[Poring Catcher]^000000";	
    mes "Hello GameMaster!";
    mes "What do you want to do?";
    switch(select("Start Event:Stop Event:Nothing"))
    {
    	case 1: 
    	{
    		next;
    		mes "^3399FF[Poring Catcher]^000000";
    		mes "Please confirm by typing START."; 
    		input .@confirm$;          
    		if (.@confirm$ == "START") 
    		{
    			donpcevent "Announcer2::OnGMStart"; 
    			close;
    		}
    		mes "Confirmation failed";
    		close;
    		break;
    	}
    	case 2:
    	{
    		next;
    		mes "^3399FF[Poring Catcher]^000000";
    		mes "Please confirm by typing STOP."; 
    		input .@confirm$;          
    		if (.@confirm$ == "STOP") 
    		{
    			donpcevent "Announcer2::OnGMStop";
    			close;
    		}
    		mes "Confirmation failed";
    		close;
    		break;
    		
    	}
    					
    	case 3:
    	{
    		next; mes "^3399FF[Poring Catcher]^000000";
    		mes "Good bye"; 
    		close;
    	}
    
    }
    }
    }
    
    
    //====================ANNOUNCER======================\\
    
    -	script	Announcer2	-1,{
    
    
    OnGMStart:
    	killmonster "poring_w01.gat","All";
    	announce "(Poring Manager) : A Gamemaster started a Poring Catcher Event now.",0;
    	sleep 3000;
    	announce "(Poring Manager) : If you want to join, come at the middle of Prontera, enter the warp portal.",0;
    	enablenpc "PoringCatcher";
    	sleep 2000;
    	announce "(Poring Manager) : Prize: will be Poring Coins",0;
    	sleep 2000;
    	announce "(Poring Manager) : The portal is going to close in one minute.",0;  
    	sleep 60000;
    	announce "(Poring Manager) : The portal has been closed.",0;
    	disablenpc "PoringCatcher";
    	if(getmapusers("poring_w01") == 0) 
    	{
    		disablenpc "Poring Banker";
    		announce "Event Poring Catcher didn't start because there's no players.",0;
    		end;
    	}
    
    	donpcevent "Poring Banker::OnEnable";
    	end;
    
    OnGMStop:
    
    	killmonster "poring_w01.gat","All";
    	announce "A Gamemaster has stopped the Poring Catcher Event",0;
    	mapwarp "poring_w01.gat","prontera.gat",155,173;
    	disablenpc "Poring Banker";
    	disablenpc "PoringCatcher";
    	end;
    
    
    
    OnMinute00:
    	killmonster "poring_w01.gat","All";
    	announce "(Poring Manager) : Poring Catcher Event will start at the moment.",0;
    	sleep 3000;
    	announce "(Poring Manager) : If you want to join, come at the middle of Prontera, enter the warp portal.",0;
    	enablenpc "PoringCatcher";
    	sleep 2000;
    	announce "(Poring Manager) : Prize: will be Poring Coins",0;
    	sleep 2000;
    	announce "(Poring Manager) : The portal is going to close in one minute.",0;  
    	sleep 60000;
    	announce "(Poring Manager) : The portal has been closed.",0;
    	disablenpc "PoringCatcher";
    	if(getmapusers("poring_w01") == 0) 
    	{
    		disablenpc "Poring Banker";
    		announce "Event Poring Catcher didn't start because no players found in map.",0;
    		end;
    	}
    
    	donpcevent "Poring Banker::OnEnable";
    	end;
    
    OnInit:
    	disablenpc "Poring Banker";
    	disablenpc "PoringCatcher";
    }
    //---------All Job Registration----------------------------------------
    prontera,155,158,0	warp	PoringCatcher	2,2,poring_w01,105,128
    
    //---------------------------------------------------------------------
    
    
    //---------------------------------------------------------------------
    -	script	Poring Banker	-1,{
    
    OnEnable:
    mapannounce "poring_w01","Poring Manager: The Poring Catcher Event will start shortly",0;
    sleep2 10000;
    mapannounce "poring_w01","Poring Manager: I will be summoning 100 porings with different names kill the real poring",0;
    sleep2 10000;
    mapannounce "poring_w01","Poring Manager: What are we waiting for?..Let's Catch some Porings!!...",0;
    sleep2 10000;
    goto L_Start;
    end;
    L_Start:
    	if(getmapusers("poring_w01") == 0) goto L_None;
    	if(getmapusers("poring_w01") >= 1) {
    
    	mapannounce "poring_w01","Poring Manager: Get ready at the count of 5 we will start!....",0;
    	sleep2 6000;
    	mapannounce "poring_w01","Poring Manager: 5",0;
    	sleep2 5000;
    	mapannounce "poring_w01","Poring Manager: 4",0;
    	sleep2 4000;
    	mapannounce "poring_w01","Poring Manager: 3",0;
    	sleep2 3000;
    	mapannounce "poring_w01","Poring Manager: 2",0;
    	sleep2 2000;
    	mapannounce "poring_w01","Poring Manager: 1",0;
    	donpcevent "Poringsummoner::OnSummon";
    	end;
    	}
    
    	L_None:
    	disablenpc "Poring Banker";
    	killmonster "poring_w01.gat","All";
    	end;
    }
    
    //==================SUMMONER OF PORINGS ======================\\
    -	script	Poringsummoner	-1,{
    
    OnSummon:
       if(getmapusers("poring_w01") == 0) goto L_2None;
       monster "poring_w01.gat",0,0,"Poring",1002,1,"poringwin::OnMobKilled";
       monster "poring_w01.gat",0,0,"Pouring",1002,10,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Proing",1002,10,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Poirng",1002,10,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Poing",1002,10,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"I'm not a Poring",1002,5,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Gnirop",1002,1,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Poring",1113,1,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Poring",1062,1,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Por|ng",1002,10,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Por1ng",1002,10,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Porong",1002,10,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"P0ring",1002,10,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"P@ring",1002,10,"poringlose::OnMobKilled";
       monster "poring_w01.gat",0,0,"Porng",1002,1,"poringlose::OnMobKilled";end;
    L_2None:
    disablenpc "Poring Banker";
    killmonster "poring_w01.gat","All";
    end;
    }
    
    //==================REAL PORING FOR WIN======================\\
    -	script	poringwin	-1,{
    
    OnMobKilled:
       killmonster "poring_w01.gat","All";
       atcommand "@doommap";
       getitem 7539,5;
       announce "Poring Banker: We have a winner! well done " + strcharinfo(0) + ".",0;
       warp "SavePoint",0,0;
       end;
    }
    
    //==================DUMY PORINGS FOR LOSERS======================\\
    -	script	poringlose	-1,{
    OnMobKilled:
       dispbottom "Your out of the game, You did not catch the right Poring !";
       percentheal -99,-99;
       warp "SavePoint",0,0;
       end;
    }
    
    
    //==================Mapflags========================\\
    poring_w01	mapflag	nowarp
    poring_w01	mapflag	nowarpto
    poring_w01	mapflag	noteleport
    poring_w01	mapflag	nosave
    poring_w01	mapflag	nomemo
    poring_w01	mapflag	nobranch
    poring_w01	mapflag	noloot
    poring_w01	mapflag	noskill
    poring_w01	mapflag	nopenalty

     

  5. 12 hours ago, Cretino said:

    Here is the problem:

      Reveal hidden contents
    
    
    mes "You only have "+countitem($QuestItem1HM)+" of ^FF0000"+getitemname($QuestItem1)+"^000000, "+countitem($QuestItem2HM)+" of ^FF0000"+getitemname($QuestItem2)+"^000000, "+countitem($QuestItem3HM)+" of ^FF0000"+getitemname($QuestItem3)+"^000000.";

     

    The script command 'countitem' is receiving a invalid item id, because you're passing the wrong variable...

    '$QuestItem1HM' instead of '$QuestItem1', '$QuestItem2HM' instead of '$QuestItem2' and '$QuestItem3HM' instead of '$QuestItem3'.

    Just change to this and the error will probably stops:

      Reveal hidden contents
    
    
    mes "You only have "+countitem($QuestItem1)+" of ^FF0000"+getitemname($QuestItem1)+"^000000, "+countitem($QuestItem2)+" of ^FF0000"+getitemname($QuestItem2)+"^000000, "+countitem($QuestItem3)+" of ^FF0000"+getitemname($QuestItem3)+"^000000.";

     

     

    It works! Thank you very much

  6. Need help to this error

    [Error]: buildin_countitem: Invalid item '32'.
    [Debug]: Source (NPC): Daily Quest at prontera (189,180)
    [Error]: buildin_countitem: Invalid item '42'.
    [Debug]: Source (NPC): Daily Quest at prontera (189,180)
    [Error]: buildin_countitem: Invalid item '33'.
    [Debug]: Source (NPC): Daily Quest at prontera (189,180)

    My script

    prontera,189,180,5	script	Daily Quest	533,{
    	if (getgmlevel() >= 80) goto GM_Menu;
    L_Start:
    	if (getgmlevel() >= 80) next;
    	mes "[ Daily  Quest ]";
    	mes "Total Daily Quests Finished: ^008800"+$DailyQuestTotal+"^000000.";
    	mes "Today Daily Quests Finished: ^0000FF"+$DailyQuestToday+"^000000.";
    	next;
    	mes "[Daily  Quest]";
    	mes "Hello "+strcharinfo(0)+"!";
    	mes "Do you want to start today's Quest?";
    	mes " ";
    	menu "Yes!",-,"Nahh",L_Close;
    	if(gettimetick(2) - CooldownQuest < (60 * 60 * 24)) {
    	next;
    	mes "[ Daily  Quest ]";
    	mes "^FF0000Sorry you have to wait 24 Hours until you can do the Quest again!^000000";
    	close;
    	}
    	next;
    	mes "[Daily Quest]";
    	mes "You'll need these item for Today's Quest:";
    	mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"";
    	mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"";
    	mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"";
    	mes "In exchange you will get ^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+"";
    	next;
    	mes "[Daily Quest]";
    	mes "Do you have the items?";
    	menu "Yes! I do.",-,"Gimme some time.",L_Close;
    	if(countitem($QuestItem1) >= $QuestItem1HM) && (countitem($QuestItem2) >= $QuestItem2HM) && (countitem($QuestItem3) >= $QuestItem3HM) goto FinishQuest;
    	next;
    	mes "[Daily Quest]";
    	mes "You only have "+countitem($QuestItem1HM)+" of ^FF0000"+getitemname($QuestItem1)+"^000000, "+countitem($QuestItem2HM)+" of ^FF0000"+getitemname($QuestItem2)+"^000000, "+countitem($QuestItem3HM)+" of ^FF0000"+getitemname($QuestItem3)+"^000000.";
    	mes "Come back when you have it! Better get the items quickly. It's gonna change in a Day!";
    	close;
    
    L_Close:
    	next;
    	mes "[Daily Quest]";
    	mes "Come back again! Get the Items!";
    	mes "Goodbye!";
    	close;
    
    GM_Menu:
    	mes "[Daily Quest]";
    	mes "Hello GM "+strcharinfo(0)+"!";
    	mes "What can I do for you today?";
    	menu "Player Menu",L_Start,"Change Today's Quest/Prize",L_ChangeQuest,"Close",L_Close;
    
    L_ChangeQuest:
    	next;
    	mes "[Daily Quest]";
    	mes "What will you like to change?";
    	next;
    	menu "Go back.",GM_Menu,"Prize [^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+"]",L_ChangePrize,"Change Quest Randomly",L_ChangeQuestRandom,"Change Quest by Myself",L_ChangeQuestMyself;
    
    L_ChangeQuestMyself:
    	next;
    	mes "[Daily Quest]";
    	mes "Which item would you like to change first?";
    	menu "Go Back.",L_ChangeQuest,"Item 1 [^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"]",L_ChangeItem1,"Item 2 [^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"]",L_ChangeItem2,"Item 3 [^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"]",L_ChangeItem3;
    
    L_ChangeItem1:
    	next;
    	mes "[Daily Quest]";
    	mes "Alright. What will be the item?";
    	next;
    	input $QuestItem1;
    	next;
    	L_ChangeItem12:
    	mes "[Daily Quest]";
    	mes "How much of ^ff0000"+getitemname($QuestItem1)+"^000000 do you want?";
    	mes "It must be in the range of ^0088001 ~ 200^000000.";
    	next;
    	input $QuestItem1HM;
    	next;
    	if ($QuestItem1HM > 200) goto L_HMItem1Denied;
    	mes "[Daily Quest]";
    	mes "Item 1 Set.";
    	set $DailyQuestToday,0;
    	mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+".";
    	next;
    	goto L_ChangeQuest;
    
    L_HMItem1Denied:
    	mes "[Daily Quest]";
    	mes "This item (^ff0000"+getitemname($QuestItem1)+"^000000) must be in a range of ^0088001 ~ 200^000000.";
    	next;
    	goto L_ChangeItem12;
    
    L_ChangeItem2:
    	next;
    	mes "[Daily Quest]";
    	mes "Alright. What will be the item?";
    	next;
    	input $QuestItem2;
    	next;
    L_ChangeItem22:
    	mes "[Daily Quest]";
    	mes "How much of ^ff0000"+getitemname($QuestItem2)+"^000000 do you want?";
    	mes "It must be in the range of ^0088001 ~ 150^000000.";
    	next;
    	input $QuestItem2HM;
    	next;
    	if ($QuestItem2HM > 150) goto L_HMItem2Denied;
    	mes "[Daily Quest]";
    	mes "Item 2 Set.";
    	set $DailyQuestToday,0;
    	mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+".";
    	next;
    	goto L_ChangeQuest;
    
    L_HMItem2Denied:
    	mes "[Daily Quest]";
    	mes "This item (^ff0000"+getitemname($QuestItem2)+"^000000) must be in a range of ^0088001 ~ 150^000000.";
    	next;
    	goto L_ChangeItem22;
    
    L_ChangeItem3:
    	next;
    	mes "[Daily Quest]";
    	mes "Alright. What will be the item?";
    	next;
    	input $QuestItem3;
    	next;
    L_ChangeItem32:
    	mes "[Daily Quest]";
    	mes "How much of ^ff0000"+getitemname($QuestItem3)+"^000000 do you want?";
    	mes "It must be in the range of ^0088001 ~ 50^000000.";
    	next;
    	input $QuestItem3HM;
    	next;
    	if ($QuestItem3HM > 50) goto L_HMItem3Denied;
    	mes "[Daily Quest]";
    	mes "Item 3 Set.";
    	set $DailyQuestToday,0;
    	mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+".";
    	next;
    	goto L_ChangeQuest;
    
    L_HMItem3Denied:
    	mes "[Daily Quest]";
    	mes "This item (^ff0000"+getitemname($QuestItem3)+"^000000) must be in a range of ^0088001 ~ 50^000000.";
    	next;
    	goto L_ChangeItem32;
    
    L_ChangeQuestRandom:
    	set $QuestItem1, rand(701,1065);
    	set $QuestItem1HM, rand(1,200);
    	set $QuestItem2, rand(701,1065);
    	set $QuestItem2HM, rand(1,150);
    	set $QuestItem3, rand(701,1065);
    	set $QuestItem3HM, rand(1,50);
    	set $DailyQuestToday,0;
    	mes "[Daily Quest]";
    	mes "This is the Daily Quest:";
    	mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"";
    	mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"";
    	mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"";
    	next;
    	goto GM_Menu;
    
    L_ChangePrize:
    	next;
    	mes "[Daily Quest]";
    	mes "Input the Prize";
    	next;
    	input $DailyQuestPrize;
    	next;
    	mes "[Daily Quest]";
    	mes "The Prize: "+getitemname($DailyQuestPrize)+" x How many?";
    	next;
    	input $DailyQuestPrizeHM;
    	next;
    	mes "[Daily Quest]";
    	mes "This is what you like?";
    	mes "^0000ff"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+".";
    	menu "Yup, Thanks.",GM_Menu,"Noo! I made a mistake!",L_ChangePrize;
    
    FinishQuest:
    	next;
    	mes "[Daily Quest]";
    	mes "You got ^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+".";
    	delitem $QuestItem1,$QuestItem1HM;
    	delitem $QuestItem2,$QuestItem2HM;
    	delitem $QuestItem3,$QuestItem3HM;
    	getitem $DailyQuestPrize,$DailyQuestPrizeHM;
    	set CooldownQuest,gettimetick(2);
    	set $DailyQuestTotal,$DailyQuestTotal +1;
    	set $DailyQuestToday,$DailyQuestToday +1;
    	close;
    }
    
    -	script	DailyQuestItemChanger	-1,{
    OnInit:
    OnClock0000:
    	while ( getitemname( set( $QuestItem1, rand(701,1065) ) ) == "null" );
    	set $QuestItem1HM, rand(1,200);
    	while ( getitemname( set( $QuestItem2, rand(701,1065) ) ) == "null" );
    	set $QuestItem2HM, rand(1,150);
    	while ( getitemname( set( $QuestItem3, rand(701,1065) ) ) == "null" );
    	set $QuestItem3HM, rand(1,50);
    	set $DailyQuestToday,0;
    	end;
    }

     

  7. Need help how to add show cutin in this quest shop Thank you

    //===== 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>{,...}}};
    //  ADD YOUR NPC HERE
    //============================================================
    prontera,164,203,6	script	Quest Shop#1	998,{ callfunc "qshop"; }
    // prontera,165,203,6	script	Quest Shop#2	998,{ callfunc "qshop",1,2; }	// call the shop 1 and 2 defined below
    // etc.. Add your Shop NPCs 'Quest Shop#XXX' here
    //============================================================
    
    
    // Script Core - DO NOT DUPLICATE THIS NPC !!!!!!!!!!!!!
    //============================================================
    -	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";
    
    
    //=====================================================================================
    // ------------------- ADD YOUR SHOPS NAME AND ITEMS SHOPS STARTING HERE --------------
    //=====================================================================================
    
    // -----------------------------------------------------------
    //  Shop IDs -- to add shops, copy dummy data at bottom of file.
    //	setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
    // -----------------------------------------------------------
    
    	setarray .Shops$[1],
    		"Headgears",	// Shop Named 1
    		"Weapons",		// Shop Named 2
    		"Other";		// Shop Named 3
    
    // -----------------------------------------------------------
    //  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>{,...});
    // -----------------------------------------------------------
    
    // Shop 1
    	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);
    
    // Shop 2
    	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);
    
    // Shop 3
    	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);
    
    // -----------------------------------------------------------
    
    //=====================================================================================
    // ------------------- YOUR SHOPS AND ITEMS SHOPS HAVE BEEN ADDED ---------------------
    //=====================================================================================
    
    	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

     

  8. 11 minutes ago, Akkarin said:

    There is literally no information in your request other than a time requirement.

    • How long do you want the cutin to display for?
    • Do you have a particular cutin in-mind?
    • Do you want it to remove itself automatically?
    • None of us are mind-readers.

     

    1. 3 mins display

    2. I have created the custom cutin in illust folder

    3. Yes it will remove automatically after 3mins display

  9. 3 hours ago, -Chuck- said:

    Run the server with this command:

    
    ./athena-start start --enlog

    This will save into log/map-server.log

    Thank you for your response! Is this for screen command? Because I'm running desktop script via xterm on vnc not screen.

  10. 7 minutes ago, Emistry said:

    that's something that up to you to decide and figure out what and how ....

    I see, by just removing this part on official release date
     

    	OnUpdate:
    		#ONLINE_MINUTE++;
    	OnPCLoginEvent:
    		if (!#cbtreward && #ONLINE_MINUTE < 500) {
    			addtimer (60 * 1000), strnpcinfo(3)+"::OnUpdate";
    		}
    		end;

     

    and add // to this part during beta
     

    		//getitembound 909,1,Bound_Account; // <-- should be bound if you don't want this to be abused.
    		mes "Here's your reward!";
    		//set #cbtreward,1;

     

    Is that correct?

  11. 1 hour ago, Emistry said:
    
    prontera,150,150,3	script	Beta Reward	100,{
    	mes "[ Beta Reward ]";
    	if(BaseLevel < 255) {
    		mes "You don't have the required level for Beta Reward.";
    		mes "Come back when you reached it - Base Level 255!";
    	}
    	else if(getcharid(3) > 2000100) {
    		mes "You're not eligible for rewards";
    	}
    	else if(#cbtreward == 1) {
    		mes "You already got your reward!";
        }
    	else if (#ONLINE_MINUTE < 500) {
    		mes "You need to stay online for next "+(500 - #ONLINE_MINUTE)+" minutes to redeem the rewards!";
    	}
    	else {
    		getitembound 909,1,Bound_Account; // <-- should be bound if you don't want this to be abused.
    		mes "Here's your reward!";
    		set #cbtreward,1;
    	}
    	close;
    	
    	OnUpdate:
    		#ONLINE_MINUTE++;
    	OnPCLoginEvent:
    		if (!#cbtreward && #ONLINE_MINUTE < 500) {
    			addtimer (60 * 1000), strnpcinfo(3)+"::OnUpdate";
    		}
    		end;
    }

    try this

     

    Thank you for this @Emistry but how do you separate the OBT participants and non-OBT participants here? Thank you

×
×
  • Create New...