/// <summary> /// Static function for using in all quests (for smaller code) /// changed: 01.10.05, need mod /// </summary> public static DialogStatus QDS( Mobile questOwner, Character c, BaseQuest bq ) { DialogStatus result = DialogStatus.ChatUnAvailable; if ( questOwner.Reputation( c ) > bq.MinReputation ) { if ( !c.QuestDone( bq ) ) // этот квест уже пройден { if ( !c.HaveQuest( bq ) ) // у чара нету этого квеста { if ( AllowedTo( bq, c ) ) // разрешено выдать, подходит ( расса, класс, скилл ) { if ( bq.PreviousQuest > 0 ) // этот квест из серии, необходимо закончить предыдущий { BaseQuest q = World.CreateQuestById( bq.PreviousQuest ); if ( q != null && c.QuestDone( q ) ) { result = DialogStatus.SingleQuestAvailable; //предыдущий закончен, этот можно получить } } else // квест одиночный или начальный для серии { result = DialogStatus.SingleQuestAvailable; } } } else // Character have this quest already { ActiveQuest aq = c.FindPlayerQuest( bq ); if ( aq.Completed ) // закончен квест, нужно наградить { result = aq.Repeatable ? DialogStatus.RepeatQuestCompleate : DialogStatus.SingleQuestCompleate; } else if ( !QuestForNPC( bq, (BaseNPC)questOwner ) ) // квест не для этого нпс? { result = DialogStatus.QuestUnCompleate; } } } } return result; }