вопрос о редактировании .uc

DarkEmpire

誰もいない
Местный
Стальной Визионер
Неукротимое пламя
За заслуги перед форумом
За веру и верность форуму
Сообщения
609
Розыгрыши
0
Репутация
302
Реакции
430
Баллы
1 553
Мне нужно чтоб тут шло перечисление нескольких ID предметов, а не 1.
Как это правильно сделать?

Код:
function int GetSoulShotID(int weapGrade)
{
    switch (GetGradeByIndex(weapGrade))
    {
        case 'NOGRADE':
            return 1835;
        break;
        case 'D':
            return 1463;
        break;
        case 'C':
            return 1464;
        break;
        case 'B':
            return 1465;
        break;
        case 'A':
            return 1466;
        break;
        case 'S':
            return 1467;
        break;
    }
}
 

Вложения

  • 157795635312_kiss.jpg
    157795635312_kiss.jpg
    20,4 КБ · Просмотры: 33
В справочнике посмотрел, так сделать нельзя, потому что в Java методы не возвращает несколько значений.
Но можно вернуть массивом несколько значений.

А вообще, я бы на твоем месте посмотрел как сделано в сосками магическими, ведь там под каждый класс 2 варианта маг. сосок можно использовать, и просто по аналогии переделай.
 
Java:
function GetSoulShotID(int weapGrade, out int int1, out int int2, out string String)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 1835;

            String = "vash string";

            int2 = 123;

        break;

    }

}
Вообще-то можно возвратить несколько значений. Пример я написал, а дальше как надо модифицируйте.
 
интовая функция не сможет вернуть в себе более 1 значения по средствам return
если нужно больше - делайте аут аргументы,как показали выше,они будут возвращать выданные в них параметры


можно пойти ещё дальше и дабы не дописывать аргументы во всех местах, сделать так:
function GetSoulShotID(int weapGrade, optional out int int1, optional out int int2, optional out string String)

тогда выходные будут опциональными и функцию не нужно будет постоянно прописывать с этими аргументами
 
Последнее редактирование:
или так:
Java:
function array<int> VerniMneMouHernu(string paramDlyaHerni)
{
    local array<int> massivHerni;
    switch(paramDlyaHerni)
    {
        case "HRENOTEN1":
            massivHerni.Length = 2;
            massivHerni[0] = 1;
            massivHerni[1] = 2;
            break;
        case "HRENOTEN2":
            massivHerni.Length = 3;
            massivHerni[0] = 1;
            massivHerni[1] = 2;
            massivHerni[2] = 3;
            break;
    }
    return massivHerni;
}
 
попробовал сделать обычно и опционально, при компиляции ошибка на 505 строку.

Error, Bad or missing expression in '='
Compile aborted due to errors.
Java:
function FindAllShotsByWeapGrade(int weapGrade)
{
    local ItemID SoulShotID;
    local ItemID SpiritShotID;
    
    SoulShotID.ClassID = GetSoulShotID(weapGrade);
    SpiritShotID.ClassID = GetSpiritShotID(weapGrade);
    
    soulIndex = InvItem.FindItem( SoulShotID );
    spiritIndex = InvItem.FindItem( SpiritShotID );
}
157798929030_kiss.jpg
 
Последнее редактирование:
попробовал сделать обычно и опционально, при компиляции ошибка на 505 строку.

Error, Bad or missing expression in '='
Compile aborted due to errors.
Java:
function FindAllShotsByWeapGrade(int weapGrade)
{
    local ItemID SoulShotID;
    local ItemID SpiritShotID;
 
    SoulShotID.ClassID = GetSoulShotID(weapGrade);
    SpiritShotID.ClassID = GetSpiritShotID(weapGrade);
 
    soulIndex = InvItem.FindItem( SoulShotID );
    spiritIndex = InvItem.FindItem( SpiritShotID );
}
Посмотреть вложение 28684
GetSoulShotID и вторая точно интовые функции? может забыли обратно исправить,пока чёто тестили
 
и кстати, как я понимаю вы там автососки насилуете, хочу предупредить, что работать они будут крайне багованно,без допов со стороны сервера

физические ещё реально превести в более или менее нормальный вид, а вот маг уже будет постоянно проваливаться,пропускать и т.п.
 
default_npc, ну вот как я сделал, заметил что появились еще варны
AutoSS.uc(545) : Warning, GetSoulShotID: Missing return value
AutoSS.uc(463) : Warning, GetSpiritShotID: Missing return value

ну и в игре перестала работать эта функция вообще с любыми сосками, я явно что то делаю не так


Java:
function bool GetEquippedWeapon()
{
    if (RHand.GetItem(0, EquippedWeapon))
        return true;
    else
        return false;
}

// function int GetSpiritShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 3947;
        // break;
        // case 'D':
            // return 3948;
        // break;
        // case 'C':
            // return 3949;
        // break;
        // case 'B':
            // return 3950;
        // break;
        // case 'A':
            // return 3951;
        // break;
        // case 'S':
            // return 3952;
        // break;
    // }
// }

function int GetSpiritShotID(int weapGrade, optional out int int1, optional out int int2, optional out string String)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 3947;

            String = "NOGRADE";

        break;
        case 'D':

            int1 = 3948;

            String = "D";

        break;
        case 'C':

            int1 = 3949;

            String = "C";

        break;
        case 'B':

            int1 = 3950;

            String = "B";

        break;
        case 'A':

            int1 = 3951;

            String = "A";

        break;
        case 'S':

            int1 = 3952;

            String = "S";

            int2 = 22076;

        break;

    }

}

// function int GetSoulShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 1835;
        // break;
        // case 'D':
            // return 1463;
        // break;
        // case 'C':
            // return 1464;
        // break;
        // case 'B':
            // return 1465;
        // break;
        // case 'A':
            // return 1466;
        // break;
        // case 'S':
            // return 1467;
        // break;
    // }
// }

function int GetSoulShotID(int weapGrade, optional out int int1, optional out int int2, optional out string String)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 1835;

            String = "NOGRADE";

        break;
        case 'D':

            int1 = 1463;

            String = "D";

        break;
        case 'C':

            int1 = 1464;

            String = "C";

        break;
        case 'B':

            int1 = 1465;

            String = "B";

        break;
        case 'A':

            int1 = 1466;

            String = "A";

        break;
        case 'S':

            int1 = 1467;

            String = "S";

            int2 = 22086;

        break;

    }

}

function FindAllShotsByWeapGrade(int weapGrade)
{
    local ItemID SoulShotID;
    local ItemID SpiritShotID;
    
    SoulShotID.ClassID = GetSoulShotID(weapGrade);
    SpiritShotID.ClassID = GetSpiritShotID(weapGrade);
    
    soulIndex = InvItem.FindItem( SoulShotID );
    spiritIndex = InvItem.FindItem( SpiritShotID );
}

function name GetGradeByIndex(int weapIndex)
{
    switch (weapIndex)
    {
        case 0:
            return 'NOGRADE';
        break;
        case 1:
            return 'D';
        break;
        case 2:
            return 'C';
        break;
        case 3:
            return 'B';
        break;
        case 4:
            return 'A';
        break;
        case 5:
        case 6:
        case 7:
            return 'S';
        break;
    }
}
 
default_npc, ну вот как я сделал, заметил что появились еще варны
AutoSS.uc(545) : Warning, GetSoulShotID: Missing return value
AutoSS.uc(463) : Warning, GetSpiritShotID: Missing return value

ну и в игре перестала работать эта функция вообще с любыми сосками, я явно что то делаю не так


Java:
function bool GetEquippedWeapon()
{
    if (RHand.GetItem(0, EquippedWeapon))
        return true;
    else
        return false;
}

// function int GetSpiritShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 3947;
        // break;
        // case 'D':
            // return 3948;
        // break;
        // case 'C':
            // return 3949;
        // break;
        // case 'B':
            // return 3950;
        // break;
        // case 'A':
            // return 3951;
        // break;
        // case 'S':
            // return 3952;
        // break;
    // }
// }

function int GetSpiritShotID(int weapGrade, optional out int int1, optional out int int2, optional out string String)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 3947;

            String = "NOGRADE";

        break;
        case 'D':

            int1 = 3948;

            String = "D";

        break;
        case 'C':

            int1 = 3949;

            String = "C";

        break;
        case 'B':

            int1 = 3950;

            String = "B";

        break;
        case 'A':

            int1 = 3951;

            String = "A";

        break;
        case 'S':

            int1 = 3952;

            String = "S";

            int2 = 22076;

        break;

    }

}

// function int GetSoulShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 1835;
        // break;
        // case 'D':
            // return 1463;
        // break;
        // case 'C':
            // return 1464;
        // break;
        // case 'B':
            // return 1465;
        // break;
        // case 'A':
            // return 1466;
        // break;
        // case 'S':
            // return 1467;
        // break;
    // }
// }

function int GetSoulShotID(int weapGrade, optional out int int1, optional out int int2, optional out string String)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 1835;

            String = "NOGRADE";

        break;
        case 'D':

            int1 = 1463;

            String = "D";

        break;
        case 'C':

            int1 = 1464;

            String = "C";

        break;
        case 'B':

            int1 = 1465;

            String = "B";

        break;
        case 'A':

            int1 = 1466;

            String = "A";

        break;
        case 'S':

            int1 = 1467;

            String = "S";

            int2 = 22086;

        break;

    }

}

function FindAllShotsByWeapGrade(int weapGrade)
{
    local ItemID SoulShotID;
    local ItemID SpiritShotID;
   
    SoulShotID.ClassID = GetSoulShotID(weapGrade);
    SpiritShotID.ClassID = GetSpiritShotID(weapGrade);
   
    soulIndex = InvItem.FindItem( SoulShotID );
    spiritIndex = InvItem.FindItem( SpiritShotID );
}

function name GetGradeByIndex(int weapIndex)
{
    switch (weapIndex)
    {
        case 0:
            return 'NOGRADE';
        break;
        case 1:
            return 'D';
        break;
        case 2:
            return 'C';
        break;
        case 3:
            return 'B';
        break;
        case 4:
            return 'A';
        break;
        case 5:
        case 6:
        case 7:
            return 'S';
        break;
    }
}
могу ошибаться, но вроде бы не стоит вот так делать: optional out string String

судя по всему компил не понимает, что за стринг стринг ему надо вернуть, попробуйте переименовать в string1, например
 
в плане так? все равно не работает) 157799139230_kiss.jpg

и кстати, как я понимаю вы там автососки насилуете, хочу предупредить, что работать они будут крайне багованно,без допов со стороны сервера

физические ещё реально превести в более или менее нормальный вид, а вот маг уже будет постоянно проваливаться,пропускать и т.п.
ну не знаю щас проверил на максимальном касте, затупов не было, с физ тоже все ок, единственная проблема что все реализовано под один тип сосок, а их много
 
попробовал сделать обычно и опционально, при компиляции ошибка на 505 строку.

Error, Bad or missing expression in '='
Compile aborted due to errors.
Java:
function FindAllShotsByWeapGrade(int weapGrade)
{
    local ItemID SoulShotID;
    local ItemID SpiritShotID;
  
    SoulShotID.ClassID = GetSoulShotID(weapGrade);
    SpiritShotID.ClassID = GetSpiritShotID(weapGrade);
  
    soulIndex = InvItem.FindItem( SoulShotID );
    spirit
А вы где возвращаете ваши значения в коде?
Во первых уберите с названия функции int.
Ну наконец ваши данные приходит сразу с функции.

GetSoulShotID(weapGrade, SoulShotID.ClassID, тут ваш стринг);
 
в плане так? все равно не работает) 28674-5850098aef3a19a5d2bdfc85dfdd850a.jpg
ах ну да,вы же перебросили возврат с ретурна в параметры

теперь у вас данная функция просто функция,а значения берутся с опциональных параметров

вы закидываете веапгрейд,а обратно вам выплёвывает параметры,согласно веапгрейду

C#:
local int int1, int2;
local string string1;

GetSpiritShotID(weapGrade, int1, int2, string1);

ну и далее вы используете эти параметры
ну и соотв. нужно во всём коде поправить места,где эта функция выполняет как интовая и вместо возврата с инт-функции,возвращать параметры с аргументов и использовать их
 
Во первых уберите с названия функции int.
отсюда? убрал
Java:
function GetSoulShotID(int weapGrade, optional out int int1, optional out int int2, optional out string String)




Ну наконец ваши данные приходит сразу с функции.

GetSoulShotID(weapGrade, SoulShotID.ClassID, тут ваш стринг);

Так
Java:
function FindAllShotsByWeapGrade(int weapGrade)
{
    local ItemID SoulShotID;
    local ItemID SpiritShotID;
   
    GetSoulShotID(weapGrade, SoulShotID.ClassID, Autoss);
    GetSpiritShotID(weapGrade, SpiritShotID.ClassID, Autoss);
   
    soulIndex = InvItem.FindItem( SoulShotID );
    spiritIndex = InvItem.FindItem( SpiritShotID );
}

ошибка при компиляции (552) : Error, Call to 'GetSoulShotID': Bad expression or missing ')'
 
Java:
function FindAllShotsByWeapGrade(int weapGrade)
{
    local ItemID SoulShotID;
    local ItemID SpiritShotID;
   
//  SoulShotID.ClassID = GetSoulShotID(weapGrade);
//    ClassID - приходиь ниже-не нужно заполнять несколько раз.
   
   
    GetSoulShotID(weapGrade, SoulShotID.ClassID, тут приходит 2 int, тут приходит ваша строка);
    GetSpiritShotID(weapGrade, SpiritShotID.ClassID, тут приходит 2 int, тут приходит ваша строка);
   
    soulIndex = InvItem.FindItem( SoulShotID );
    spiritIndex = InvItem.FindItem( SpiritShotID );
}
Вот ваш код. Вместо моих коментов свои поставьте значения.
Если к примеру нет 2 значения или оно пока не нужно, то пропускаете его так.
Java:
GetSoulShotID(weapGrade, SoulShotID.ClassID, , тут приходит ваша строка);

ОФФТОП. Всетаки пришлось включать компьютер- с телефона муть получается. Еще и сам редактирует мои слова и предложения.
 
если идти таким путем - зачем делать разные функции? расширь количество опциональных аргументов и сделай сразу присвоение айди маг сосок в той же функции, по теме - если делаешь не для себя то лучше откажись от такой реализации, т.к. все-равно будут косяки с маг шотами, как бы ты их не насиловал - работать они нормально не будут, хоть какой таймер ставь
 
BadStealth, попробовал сделать так, Error, Call to 'GetSoulShotID': Bad expression or missing ')'
Java:
function bool GetEquippedWeapon()
{
    if (RHand.GetItem(0, EquippedWeapon))
        return true;
    else
        return false;
}

// function int GetSpiritShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 3947;
        // break;
        // case 'D':
            // return 3948;
        // break;
        // case 'C':
            // return 3949;
        // break;
        // case 'B':
            // return 3950;
        // break;
        // case 'A':
            // return 3951;
        // break;
        // case 'S':
            // return 3952;
        // break;
    // }
// }

function GetSpiritShotID(int weapGrade, optional out int int1, optional out int int2, optional out string string1)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 3947;

            string1 = "Atss";

        break;
        case 'D':

            int1 = 3948;

            string1 = "Atss";

        break;
        case 'C':

            int1 = 3949;

            string1 = "Atss";

        break;
        case 'B':

            int1 = 3950;

            string1 = "Atss";

        break;
        case 'A':

            int1 = 3951;

            string1 = "Atss";

        break;
        case 'S':

            int1 = 3952;

            string1 = "Atss";

            int2 = 22076;

        break;

    }

}

// function int GetSoulShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 1835;
        // break;
        // case 'D':
            // return 1463;
        // break;
        // case 'C':
            // return 1464;
        // break;
        // case 'B':
            // return 1465;
        // break;
        // case 'A':
            // return 1466;
        // break;
        // case 'S':
            // return 1467;
        // break;
    // }
// }

function GetSoulShotID(int weapGrade, optional out int int1, optional out int int2, optional out string string1)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 1835;

            string1 = "Atss";

        break;
        case 'D':

            int1 = 1463;

            string1 = "Atss";

        break;
        case 'C':

            int1 = 1464;

            string1 = "Atss";

        break;
        case 'B':

            int1 = 1465;

            string1 = "Atss";

        break;
        case 'A':

            int1 = 1466;

            string1 = "Atss";

        break;
        case 'S':

            int1 = 1467;

            string1 = "Atss";

            int2 = 22086;

        break;

    }

}

function FindAllShotsByWeapGrade(int weapGrade)
{
    local ItemID SoulShotID;
    local ItemID SpiritShotID;
    
    GetSoulShotID(weapGrade, SoulShotID.ClassID, Atss);
    GetSpiritShotID(weapGrade, SpiritShotID.ClassID, Atss);
    
    soulIndex = InvItem.FindItem( SoulShotID );
    spiritIndex = InvItem.FindItem( SpiritShotID );
}

function name GetGradeByIndex(int weapIndex)
{
    switch (weapIndex)
    {
        case 0:
            return 'NOGRADE';
        break;
        case 1:
            return 'D';
        break;
        case 2:
            return 'C';
        break;
        case 3:
            return 'B';
        break;
        case 4:
            return 'A';
        break;
        case 5:
        case 6:
        case 7:
            return 'S';
        break;
    }
}


default_npc, попробовал сделать так, Error, Call to 'FindItem': type mismatch in parameter 1
Java:
function bool GetEquippedWeapon()
{
    if (RHand.GetItem(0, EquippedWeapon))
        return true;
    else
        return false;
}

// function int GetSpiritShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 3947;
        // break;
        // case 'D':
            // return 3948;
        // break;
        // case 'C':
            // return 3949;
        // break;
        // case 'B':
            // return 3950;
        // break;
        // case 'A':
            // return 3951;
        // break;
        // case 'S':
            // return 3952;
        // break;
    // }
// }

function GetSpiritShotID(int weapGrade, optional out int int1, optional out int int2, optional out string string1)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 3947;

            string1 = "Atss";

        break;
        case 'D':

            int1 = 3948;

            string1 = "Atss";

        break;
        case 'C':

            int1 = 3949;

            string1 = "Atss";

        break;
        case 'B':

            int1 = 3950;

            string1 = "Atss";

        break;
        case 'A':

            int1 = 3951;

            string1 = "Atss";

        break;
        case 'S':

            int1 = 3952;

            string1 = "Atss";

            int2 = 22076;

        break;

    }

}

// function int GetSoulShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 1835;
        // break;
        // case 'D':
            // return 1463;
        // break;
        // case 'C':
            // return 1464;
        // break;
        // case 'B':
            // return 1465;
        // break;
        // case 'A':
            // return 1466;
        // break;
        // case 'S':
            // return 1467;
        // break;
    // }
// }

function GetSoulShotID(int weapGrade, optional out int int1, optional out int int2, optional out string string1)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 1835;

            string1 = "Atss";

        break;
        case 'D':

            int1 = 1463;

            string1 = "Atss";

        break;
        case 'C':

            int1 = 1464;

            string1 = "Atss";

        break;
        case 'B':

            int1 = 1465;

            string1 = "Atss";

        break;
        case 'A':

            int1 = 1466;

            string1 = "Atss";

        break;
        case 'S':

            int1 = 1467;

            string1 = "Atss";

            int2 = 22086;

        break;

    }

}

function FindAllShotsByWeapGrade(int weapGrade)
{
    local int int1, int2;
    local string string1;
   
    GetSoulShotID(weapGrade, int1, int2, string1);
    GetSpiritShotID(weapGrade, int1, int2, string1);
   
    soulIndex = InvItem.FindItem(int1, int2);
    spiritIndex = InvItem.FindItem(int1, int2);
}

function name GetGradeByIndex(int weapIndex)
{
    switch (weapIndex)
    {
        case 0:
            return 'NOGRADE';
        break;
        case 1:
            return 'D';
        break;
        case 2:
            return 'C';
        break;
        case 3:
            return 'B';
        break;
        case 4:
            return 'A';
        break;
        case 5:
        case 6:
        case 7:
            return 'S';
        break;
    }
}
 
default_npc, попробовал сделать так, Error, Call to 'FindItem': type mismatch in parameter 1
undefined
FindItem нужно указывать только итем ид
C#:
native final function int FindItem( ItemID scID );

интовую переменную в .ClassID, а уже после сам итем ИД в финдитем
 
BadStealth, попробовал сделать так, Error, Call to 'GetSoulShotID': Bad expression or missing ')'
Java:
function bool GetEquippedWeapon()
{
    if (RHand.GetItem(0, EquippedWeapon))
        return true;
    else
        return false;
}

// function int GetSpiritShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 3947;
        // break;
        // case 'D':
            // return 3948;
        // break;
        // case 'C':
            // return 3949;
        // break;
        // case 'B':
            // return 3950;
        // break;
        // case 'A':
            // return 3951;
        // break;
        // case 'S':
            // return 3952;
        // break;
    // }
// }

function GetSpiritShotID(int weapGrade, optional out int int1, optional out int int2, optional out string string1)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 3947;

            string1 = "Atss";

        break;
        case 'D':

            int1 = 3948;

            string1 = "Atss";

        break;
        case 'C':

            int1 = 3949;

            string1 = "Atss";

        break;
        case 'B':

            int1 = 3950;

            string1 = "Atss";

        break;
        case 'A':

            int1 = 3951;

            string1 = "Atss";

        break;
        case 'S':

            int1 = 3952;

            string1 = "Atss";

            int2 = 22076;

        break;

    }

}

// function int GetSoulShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 1835;
        // break;
        // case 'D':
            // return 1463;
        // break;
        // case 'C':
            // return 1464;
        // break;
        // case 'B':
            // return 1465;
        // break;
        // case 'A':
            // return 1466;
        // break;
        // case 'S':
            // return 1467;
        // break;
    // }
// }

function GetSoulShotID(int weapGrade, optional out int int1, optional out int int2, optional out string string1)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 1835;

            string1 = "Atss";

        break;
        case 'D':

            int1 = 1463;

            string1 = "Atss";

        break;
        case 'C':

            int1 = 1464;

            string1 = "Atss";

        break;
        case 'B':

            int1 = 1465;

            string1 = "Atss";

        break;
        case 'A':

            int1 = 1466;

            string1 = "Atss";

        break;
        case 'S':

            int1 = 1467;

            string1 = "Atss";

            int2 = 22086;

        break;

    }

}

function FindAllShotsByWeapGrade(int weapGrade)
{
    local int int1, int2;
    local string string1;
   
    GetSoulShotID(weapGrade, SoulShotID.ClassID, Atss);
    GetSpiritShotID(weapGrade, SpiritShotID.ClassID, Atss);
   
    soulIndex = InvItem.FindItem( SoulShotID );
    spiritIndex = InvItem.FindItem( SpiritShotID );
}

function name GetGradeByIndex(int weapIndex)
{
    switch (weapIndex)
    {
        case 0:
            return 'NOGRADE';
        break;
        case 1:
            return 'D';
        break;
        case 2:
            return 'C';
        break;
        case 3:
            return 'B';
        break;
        case 4:
            return 'A';
        break;
        case 5:
        case 6:
        case 7:
            return 'S';
        break;
    }
}


default_npc, попробовал сделать так, Error, Call to 'FindItem': type mismatch in parameter 1
Java:
function bool GetEquippedWeapon()
{
    if (RHand.GetItem(0, EquippedWeapon))
        return true;
    else
        return false;
}

// function int GetSpiritShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 3947;
        // break;
        // case 'D':
            // return 3948;
        // break;
        // case 'C':
            // return 3949;
        // break;
        // case 'B':
            // return 3950;
        // break;
        // case 'A':
            // return 3951;
        // break;
        // case 'S':
            // return 3952;
        // break;
    // }
// }

function GetSpiritShotID(int weapGrade, optional out int int1, optional out int int2, optional out string string1)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 3947;

            string1 = "Atss";

        break;
        case 'D':

            int1 = 3948;

            string1 = "Atss";

        break;
        case 'C':

            int1 = 3949;

            string1 = "Atss";

        break;
        case 'B':

            int1 = 3950;

            string1 = "Atss";

        break;
        case 'A':

            int1 = 3951;

            string1 = "Atss";

        break;
        case 'S':

            int1 = 3952;

            string1 = "Atss";

            int2 = 22076;

        break;

    }

}

// function int GetSoulShotID(int weapGrade)
// {
    // switch (GetGradeByIndex(weapGrade))
    // {
        // case 'NOGRADE':
            // return 1835;
        // break;
        // case 'D':
            // return 1463;
        // break;
        // case 'C':
            // return 1464;
        // break;
        // case 'B':
            // return 1465;
        // break;
        // case 'A':
            // return 1466;
        // break;
        // case 'S':
            // return 1467;
        // break;
    // }
// }

function GetSoulShotID(int weapGrade, optional out int int1, optional out int int2, optional out string string1)

{

    switch (GetGradeByIndex(weapGrade))

    {

        case 'NOGRADE':

            int1 = 1835;

            string1 = "Atss";

        break;
        case 'D':

            int1 = 1463;

            string1 = "Atss";

        break;
        case 'C':

            int1 = 1464;

            string1 = "Atss";

        break;
        case 'B':

            int1 = 1465;

            string1 = "Atss";

        break;
        case 'A':

            int1 = 1466;

            string1 = "Atss";

        break;
        case 'S':

            int1 = 1467;

            string1 = "Atss";

            int2 = 22086;

        break;

    }

}

function FindAllShotsByWeapGrade(int weapGrade)
{
    local int int1, int2;
    local string string1;
   
    GetSoulShotID(weapGrade, int1, int2, string1);
    GetSpiritShotID(weapGrade, int1, int2, string1);
   
    soulIndex = InvItem.FindItem(int1, int2);
    spiritIndex = InvItem.FindItem(int1, int2);
}

function name GetGradeByIndex(int weapIndex)
{
    switch (weapIndex)
    {
        case 0:
            return 'NOGRADE';
        break;
        case 1:
            return 'D';
        break;
        case 2:
            return 'C';
        break;
        case 3:
            return 'B';
        break;
        case 4:
            return 'A';
        break;
        case 5:
        case 6:
        case 7:
            return 'S';
        break;
    }
}
а посмотреть в какой строке тебе компилятор ошибку пишет и исправить ее религия не позволяет? тебе дали практически готовые варианты, чуть доработать и будет работать так как тебе нужно
 
FindItem нужно указывать итем ид
C#:
native final function int FindItem( ItemID scID );

интовую переменную в .ClassID, а уже после сам итем ИД в финдитем
забей, автор походу дела хочет чтобы за него все сделали, даже не удосужится посмотреть какие аргументы принимает та или иная функция, вангую скорое появление "конкурента" :loltt0:
 
Назад
Сверху Снизу