А еще такой вопрос - обязательно такой сложный скрипт писать на проверку надетого предмета у игрока или можно воспользоваться стандартным условием? Я просто скрипт у Айва посмотрела и жутко впечатлилась. Ключевое слово - жутко.
Шад, я жеж делал УНИВЕРСАЛЬНЫЙ скрипт один на все. Плюс, я хотел что бы тебе было ПРОСТО его использовать. Если бы я знал, что ты буш его ковырять, то сделал бы вместо этого:
Neverwinter Script
// ------------- Проверка на уникальный предмет одетый -----------------
// находим одетое на игроке и определяем это
object oItemNesk = GetItemInSlot(INVENTORY_SLOT_NECK, oPC);
object oItemRingR = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC);
object oItemRingL = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC);
// Смотрим свойства триггера и ищем, помечен ли таг нужной вещи
string sNesk = GetLocalString(oSelf, "INVENTORY_SLOT_NECK"); // Амулет
string sItemRingR = GetLocalString(oSelf, "INVENTORY_SLOT_RIGHTRING"); // Кольцо
string sItemRingL = GetLocalString(oSelf, "INVENTORY_SLOT_LEFTRING"); // Кольцо
// Если у нас помечено, что таг амулета не пустой
if (sNesk != "")
{ // таг надетого амулета не сходятся или он вообще не надет то возврат скрипта
if (GetTag(oItemNesk)!= sNesk || oItemNesk == OBJECT_INVALID)
{
SendMessageToPC(oPC, "<cу >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>");
if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть
{
if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK"))
{
SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE);
DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH)));
DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1)));
}
}
return;
}
}
if (sItemRingR != "")
{
if (GetTag(oItemRingR)!= sItemRingR || oItemRingR == OBJECT_INVALID)
{
SendMessageToPC(oPC, "<cу >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>");
if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть
{
if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK"))
{
SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE);
DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH)));
DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1)));
}
}
return;
}
}
if (sItemRingL != "")
{
if (GetTag(oItemRingL)!= sItemRingL || oItemRingL == OBJECT_INVALID)
{
SendMessageToPC(oPC, "<cу >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>");
if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть
{
if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK"))
{
SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE);
DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH)));
DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1)));
}
}
return;
}
}
// ------------- Проверка на уникальный предмет одетый -----------------
// находим одетое на игроке и определяем это
object oItemNesk = GetItemInSlot(INVENTORY_SLOT_NECK, oPC);
object oItemRingR = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC);
object oItemRingL = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC);
// Смотрим свойства триггера и ищем, помечен ли таг нужной вещи
string sNesk = GetLocalString(oSelf, "INVENTORY_SLOT_NECK"); // Амулет
string sItemRingR = GetLocalString(oSelf, "INVENTORY_SLOT_RIGHTRING"); // Кольцо
string sItemRingL = GetLocalString(oSelf, "INVENTORY_SLOT_LEFTRING"); // Кольцо
// Если у нас помечено, что таг амулета не пустой
if (sNesk != "")
{ // таг надетого амулета не сходятся или он вообще не надет то возврат скрипта
if (GetTag(oItemNesk)!= sNesk || oItemNesk == OBJECT_INVALID)
{
SendMessageToPC(oPC, "<cу >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>");
if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть
{
if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK"))
{
SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE);
DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH)));
DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1)));
}
}
return;
}
}
if (sItemRingR != "")
{
if (GetTag(oItemRingR)!= sItemRingR || oItemRingR == OBJECT_INVALID)
{
SendMessageToPC(oPC, "<cу >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>");
if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть
{
if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK"))
{
SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE);
DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH)));
DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1)));
}
}
return;
}
}
if (sItemRingL != "")
{
if (GetTag(oItemRingL)!= sItemRingL || oItemRingL == OBJECT_INVALID)
{
SendMessageToPC(oPC, "<cу >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>");
if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть
{
if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK"))
{
SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE);
DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH)));
DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1)));
}
}
return;
}
}
// ------------- Проверка на уникальный предмет одетый -----------------
ВОТ ЭТО:
Neverwinter Script
if GetTag(GetItemInSlot(oPC, INVENTORY_SLOT_NECK)) != "Branzuletko")
return;
return;