View file f_speak.dat

File size: 2.98Kb
if ($speak) {			//linkСказать
	if (($speak!=1 && substr($speak,0,5)!='user.' && substr($speak,0,4)!='npc.') || !isset($game["loc"][$player["loc"]][$speak])) msg("<p>Говорить можно только с игроками и NPC");
	if (substr($speak,0,5)=='user.') {$to=$game["loc"][$game["players"][$speak]][$speak]["title"]; $speak=1;}	// разговор с игроком, подставим его имя в поле в расширенном экране разговора
	if ($player["ghost"] && $speak!=1) msg("<p>Вы призрак и поэтому не можете ни с кем говорить, найдите лекаря или камень воскрешения");
	if ($speak==1) {
			eval(implode('',file("f_speak1.dat")));
		} else 		// проверим, не наш ли это npc
		if ($game["loc"][$player["loc"]][$speak]["owner"]==$login) {
			eval(implode('',file("f_speakowner.dat")));
		} else 		// проверим npc
		if (isset($game["loc"][$player["loc"]][$speak]["speak"])) {
			// $to содержит id предмета
			if ($id=='buy') eval(implode('',file("f_speakbuy.dat")));
			if ($id=='sell') eval(implode('',file("f_speaksell.dat")));
			if ($id=='tobank') eval(implode('',file("f_speaktobank.dat")));
			if ($id=='frombank') eval(implode('',file("f_speakfrombank.dat")));

			eval(implode('',file("f_speakall.dat")));	// загружаем все диалоги
			$dialog=$arr_speak[$game["loc"][$player["loc"]][$speak]["speak"]];

			if ($dialog) {
				if ($game["loc"][$player["loc"]][$speak]["attack"]==$login) msg("<p>Вы не можете разговаривать с персонажем, т.к. он вас атакует");
				unset($player["attack"]);		// сбрасываем, если мы атакуем
				if (!$id) $id="begin";	//FIX: если не указан id, то начнем с темы "begin"
				$dialog=split("\|",$dialog[$id]);;
				if ($dialog[0]=='magic') {			// добавляем магию
					eval(implode('',file("f_speakmagic.dat")));
					}
				if ($dialog[0]=='skill') {			// увеличиваем скилл
					eval(implode('',file("f_speakskillup.dat")));
					}	
								if ($dialog[0]=='gild') {                        // создаем гильдию
                    eval(implode('',file("f_speakgild.dat")));
                    }
                if ($dialog[0]=='exitg') {                        // покидаем гильдию
                    eval(implode('',file("f_speakgildexit.dat")));
               		}		
					if ($dialog[0]=='q1') {       //стартуем квест
                                        eval(implode('',file("f_speakqueststart.dat")));
                                        }
                                 if ($dialog[0]=='q2') {      //кончаем квест
                                        eval(implode('',file("f_speakqueststop.dat")));
                                        }					//обычный диалог
				$stmp="<p>".$dialog[0];
				for($i=2;$i<count($dialog);$i+=2) $stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=".$dialog[$i]."\">".$dialog[$i-1]."</a>";
				if (count($dialog)==1) $stmp.="<br/><a href=\"$PHP_SELF?sid=$sid\">[Конец диалога]</a>";
				$stmp=str_replace("<name>",$player["title"],$stmp);	// заменяем <name> на имя игрока
				msg($stmp,$game["loc"][$player["loc"]][$speak]["title"],1);
				}
			}
	}