Jump to content
  • 0

HELP Daily Quest NPC


Reducto

Question


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  231
  • Reputation:   9
  • Joined:  12/16/11
  • Last Seen:  

Can anybody help me to fix this script. Sometimes it gives null items.

Thanks!

//Made by: Katazui
//5/21/2011
//Version 2.50
prontera,136,171,4	script	Daily Quest	102,{
	if (getgmlevel() >= 80) goto GM_Menu;
	L_START:
	if (getgmlevel() >= 80) next;
	mes "[Daily  Quest]";
	mes "Hello "+strcharinfo(0)+"!";
	mes "Do you want to start today's Quest?";
	mes " ";
	mes "Total Daily Quests Finished: ^008800"+$DailyQuestTotal+"^000000.";
	mes "Today Daily Quests Finished: ^0000FF"+$DailyQuestToday+"^000000.";
	menu "Yes!",-,"Nahh",L_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;
	end;

	L_Close:
	next;
	mes "[Daily Quest]";
	mes "Come back again! Get the Items!";
	mes "Goodbye!";
	close;
	end;

	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;
	end;

	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;
	end;

	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;
	end;

	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;
	end;	
//
	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;
	end;

	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;
	end;
//
	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;
	end;

	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;
	end;
//
	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;
	end;

	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;
	end;

	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 $DailyQuestTotal,$DailyQuestTotal +1;
	set $DailyQuestToday,$DailyQuestToday +1;
	close;
	end;
	
}

-	script	DailyQuestItemChanger	-1,{
	OnInit:
	Start:
	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;
	OnHour24:
	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;
	goto Start;
	end;

}

 

 

Link to comment
Share on other sites

7 answers to this question

Recommended Posts


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

Replace

-	script	DailyQuestItemChanger	-1,{
	OnInit:
	Start:
	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;
	OnHour24:
	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;
	goto Start;
	end;

}

 

by

 

-	script	DailyQuestItemChanger	-1,{
OnInit:
Start:
OnHour24:
	for( set .@i, 0; .@i < 3; set .@i, .@i +1 ) {
		do
			set .@tmp[.@i], rand(701,1065);
		while( getiteminfo( .@tmp[.@i],0 ) == -1 );
	}
	set $QuestItem1, .@tmp[0];
	set $QuestItem1HM, rand(1,200);
	set $QuestItem2, .@tmp[1];
	set $QuestItem2HM, rand(1,150);
	set $QuestItem3, .@tmp[2];
	set $QuestItem3HM, rand(1,50);
	set $DailyQuestToday,0;
	
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  231
  • Reputation:   9
  • Joined:  12/16/11
  • Last Seen:  

How about in 3ceam code?

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

How about in 3ceam code?

I edited my previous post for 3ceam.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  231
  • Reputation:   9
  • Joined:  12/16/11
  • Last Seen:  

Im having this kind of error please help.

[Error]: buildin_countitem: Invalid item '120'.
[Debug]: Source (NPC): Daily Quest at prontera (136,171)
[Error]: buildin_countitem: Invalid item '53'.
[Debug]: Source (NPC): Daily Quest at prontera (136,171)
[Error]: buildin_countitem: Invalid item '49'.
[Debug]: Source (NPC): Daily Quest at prontera (136,171)
[Error]: buildin_countitem: Invalid item '120'.
[Debug]: Source (NPC): Daily Quest at prontera (136,171)
[Error]: buildin_countitem: Invalid item '53'.
[Debug]: Source (NPC): Daily Quest at prontera (136,171)
[Error]: buildin_countitem: Invalid item '49'.
[Debug]: Source (NPC): Daily Quest at prontera (136,171)
Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

Replace too

	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.";

by

	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.";

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  231
  • Reputation:   9
  • Joined:  12/16/11
  • Last Seen:  

Hello, Also how can I make only one player can finish the quest daily? and it will be available again after 24 hours? thanks!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...