Page 1 of 2
					
				Нужна помощь со скриптом.
				Posted: 06.12.2011 13:46
				by Stels
				Ребят, есть скрипт, где персонаж выбирает нпц по ID и выберает определенную строчку в контекстном меню нпц типа buy, sell
Проблема вот в чем: я перещел на другой сервер, а там нпц постоянно заного спавнятся и стоит лишь настроить скрипт, как уже появляется новы нпц...
можно ли каким-нибудь образом сделать, что бы он выбирал нужного нпц не по id а по приписке в имени? к примеру, Tinker
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 13:47
				by MuDaCk
				можно.
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 13:47
				by Stels
				а каким образом? 

 
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 13:51
				by MuDaCk
				гетнейм и БМсёрч)
{Player Title}
function GetCharTitle: String; // Получения тайтла с папердола своего чара, возвращает приписку и весь остальной текст, длиной до 60 байт 
Пример:
Код:
Addtosystemjournal(GetCharTitle);
Результат::
2:27:37 [KopUshKa_15]: KopUshKa, Legendary Miner
Для любых других НПЦ, у которых есть папердол: 
при коннекте берется имя неписи, пишется в свойство, которое видно через закладку World и которое можно взять через GetName. 
Если нужен тайтл с папердолла - значит шлете UseObject на непись, и ставите цикл типа 
Код:
S:=GetName($xxxxxxxx); 
while GetName($xxxxxxxx) = S do wait(xxx)'; 
цикл для того, чтобы дождаться когда придет пакет папердолла на непись. Когда он приходит - title пишется поверх старого имени в свойства, и берете его так же через GetName. 
Соответственно кусок получения папердолла будет выглядеть как-то так: 
Код:
S:=GetName($xxxxxxxx); 
UseObject($xxxxxxxx); 
while GetName($xxxxxxxx) = S do wait(xxx)'; 
S:=GetName($xxxxxxxx);
 
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 13:57
				by Stels
				Это все хорошо, но в команду S:=GetName($xxxxxxxx) нужно вписать ID, а мне нужно чтобы он по типу находил нпц и сам перебирал их имена, до тех пор пока не наткнется на нужного.
Спасибо за эту подсказку - с этим куском ясно, осталось, что бы по типу находил нпц, как это можно реализовать?
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:00
				by MuDaCk
				также как ты по типу находишь предмет в бекпаке 
 
только надо делать двойное условие - чтобы кол-во найденых Ид было больше 0 и чтобы имя было с припиской нужной)
 
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:07
				by Stels
				Спасибо большое!
А на каком он растоянии ищет? и можно ли вручную указать это растояние?
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:09
				by MuDaCk
				Stels wrote:Спасибо большое!
А на каком он растоянии ищет? и можно ли вручную указать это растояние?
Code: Select all
FindDistance := 2; 
FindVertical := 3;
значения подставь свои)))
 
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:13
				by Stels
				Большое спасибо. сейчас попробуй подправить свой скрипт и если не выйдет обращусь снова))
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:21
				by Stels
				MuDaCk wrote:также как ты по типу находишь предмет в бекпаке 
 
только надо делать двойное условие - чтобы кол-во найденых Ид было больше 0 и чтобы имя было с припиской нужной)
 
такс, а если у нпц может быть два типа?
это нужно просто два раза искать тип? сначала один и если не нашел то второй?
 
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:39
				by Stels
				findtype(typeVendore, ground)
По этой команде ругается на typeVendore, здесь нужно оставить имено это слово? 

)) или указать тип вручную? Хотя он ругается и на то и на то 

 
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:42
				by MuDaCk
				свой тип конечно же 

 
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:48
				by Stels
				MuDaCk wrote:свой тип конечно же 

 
Я с этого и начал, но он мне выдает следующее: Type mismatch и показывает на конец строки перед точкой с запятой =\
 
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:53
				by CFA
				GetName больше так не работает. Вместо него надо использовать функцию GetTitle(id : Cardinal) : String
			 
			
					
				Re: Нужна помощь со скриптом.
				Posted: 06.12.2011 14:55
				by Stels
				CFA wrote:GetName больше так не работает. Вместо него надо использовать функцию GetTitle(id : Cardinal) : String
Спасибо, помогло, а то только хотел написать, что он зависает на строчке с циклом 

)))