Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Нужна помощь со скриптом.

тут можно задать вопрос по скриптингу
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Нужна помощь со скриптом.

Post by Stels »

Ребят, есть скрипт, где персонаж выбирает нпц по ID и выберает определенную строчку в контекстном меню нпц типа buy, sell
Проблема вот в чем: я перещел на другой сервер, а там нпц постоянно заного спавнятся и стоит лишь настроить скрипт, как уже появляется новы нпц...
можно ли каким-нибудь образом сделать, что бы он выбирал нужного нпц не по id а по приписке в имени? к примеру, Tinker
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

можно.
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

а каким образом? :)
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post 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);
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

Это все хорошо, но в команду S:=GetName($xxxxxxxx) нужно вписать ID, а мне нужно чтобы он по типу находил нпц и сам перебирал их имена, до тех пор пока не наткнется на нужного.

Спасибо за эту подсказку - с этим куском ясно, осталось, что бы по типу находил нпц, как это можно реализовать?
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

также как ты по типу находишь предмет в бекпаке :wink:

Code: Select all

findtype(typeVendore, ground);
только надо делать двойное условие - чтобы кол-во найденых Ид было больше 0 и чтобы имя было с припиской нужной)
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

Спасибо большое!
А на каком он растоянии ищет? и можно ли вручную указать это растояние?
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

Stels wrote:Спасибо большое!
А на каком он растоянии ищет? и можно ли вручную указать это растояние?

Code: Select all

FindDistance := 2; 
FindVertical := 3;
значения подставь свои)))
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

Большое спасибо. сейчас попробуй подправить свой скрипт и если не выйдет обращусь снова))
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

MuDaCk wrote:также как ты по типу находишь предмет в бекпаке :wink:

Code: Select all

findtype(typeVendore, ground);
только надо делать двойное условие - чтобы кол-во найденых Ид было больше 0 и чтобы имя было с припиской нужной)

такс, а если у нпц может быть два типа?
это нужно просто два раза искать тип? сначала один и если не нашел то второй?
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

findtype(typeVendore, ground)

По этой команде ругается на typeVendore, здесь нужно оставить имено это слово? :))) или указать тип вручную? Хотя он ругается и на то и на то :)
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Нужна помощь со скриптом.

Post by MuDaCk »

свой тип конечно же :lol:
My name is Игорёшка Image
Пишу скрипты за едуImage
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

MuDaCk wrote:свой тип конечно же :lol:
Я с этого и начал, но он мне выдает следующее: Type mismatch и показывает на конец строки перед точкой с запятой =\
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Нужна помощь со скриптом.

Post by CFA »

GetName больше так не работает. Вместо него надо использовать функцию GetTitle(id : Cardinal) : String
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Нужна помощь со скриптом.

Post by Stels »

CFA wrote:GetName больше так не работает. Вместо него надо использовать функцию GetTitle(id : Cardinal) : String
Спасибо, помогло, а то только хотел написать, что он зависает на строчке с циклом :))))
Post Reply