Сделал два квеста Sub ScriptedNPC(Index, Script)
Select Case Script
Case 0
Call PlayerMsg(Index, "This scripted NPC has no apparent use.", WHITE)
Exit Sub
Case 1
If GetPlayerLevel(Index) >= 1 then ' Если уровень персонажа больше или равен еденице, то.
If GetVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1") = vbNullString Then
Call PlayerMsg(Index, "Привет, помоги мне распугать цыплят на огороде и собрать 5 баклажанов", YELLOW) ' Call - обязательная вещь для вызова того или иного скрипта. Yellow - цвет текста в чате (желтый)
Call PutVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1", 1) 'Создаём в папке Quests файл игрока, в котором отмечаются стадии квеста. Сейчас эта стадия - 1. General - то, что написано в квадратных скобках (программное имя квеста). Quest1 - программная отметка квеста. 1 - стадия квеста.'
Else if GetVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1") = 1 Then
If CanTake(Index, 1, 5) then' Внимание: цифры могут отличаться от ваших, смотрите: 2 - это номер предмета. 8 - это количество предметов. CanTake - есть ли у вас этот предмет в данном количестве.
Call PlayerMsg(Index, "Ну спасибки тебе выручил ^_^", YELLOW)
Call TakeItem(Index, 1, 5) ' Забирает вещи. Скрипт похож на CanTake. 2 - номер предмета. 8 - количество предметов, которые нужно забрать.
Call SetPlayerExp(Index, GetPlayerExp(Index) + 6) ' 10 - количество опыта.
Call PlayerLevelUp(Index)
Call GiveCurrency(Index, 3, 1) ' Выдаёт деньги или тот предмет, что помечен под Currency. 1 - номер предмета, 100 - количество.
Call GiveItem(Index, 2, 1) ' Выдаёт деньги или тот предмет, что помечен под Currency. 1 - номер предмета, 100 - количество.
Call SendStats(Index)
Call PutVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1", 2)
end if
end if
End if
End if
Exit Sub
Case Else
Call PlayerMsg(Index, "Скрипт не найден. Обратитесь пожалуйста к администрации для решения возникшей проблемы.", WHITE)
Exit Sub
End Select
End Sub
'а вот второй квест нивкакую не видит =(((
Case 2
If GetPlayerLevel(Index) >= 1 then ' Если уровень персонажа больше или равен еденице, то.
If GetVar("Scripts\Quests1\" & GetPlayerName(Index) & ".ini", "General", "Quest2") = vbNullString Then
Call PlayerMsg(Index, "Ты ищешь учителя? Я смогу научить тебя если ты принесешь мне отчет Марии", YELLOW) ' Call - обязательная вещь для вызова того или иного скрипта. Yellow - цвет текста в чате (желтый)
Call PutVar("Scripts\Quests1\" & GetPlayerName(Index) & ".ini", "General", "Quest2", 1) 'Создаём в папке Quests файл игрока, в котором отмечаются стадии квеста. Сейчас эта стадия - 1. General - то, что написано в квадратных скобках (программное имя квеста). Quest1 - программная отметка квеста. 1 - стадия квеста.'
Else if GetVar("Scripts\Quests1\" & GetPlayerName(Index) & ".ini", "General", "Quest2") = 1 Then
If CanTake(Index, 4, 1) then' Внимание: цифры могут отличаться от ваших, смотрите: 2 - это номер предмета. 8 - это количество предметов. CanTake - есть ли у вас этот предмет в данном количестве.
Call PlayerMsg(Index, "Ну спасибки тебе выручил ^_^", YELLOW)
Call TakeItem(Index, 4, 1) ' Забирает вещи. Скрипт похож на CanTake. 2 - номер предмета. 8 - количество предметов, которые нужно забрать.
Call SetPlayerExp(Index, GetPlayerExp(Index) + 3) ' 10 - количество опыта.
Call PlayerLevelUp(Index)
Call PutVar("Scripts\Quests1\" & GetPlayerName(Index) & ".ini", "General", "Quest2", 2)
end if
end if
End if
End if
Exit Sub
Case Else
Call PlayerMsg(Index, "Скрипт не найден. Обратитесь пожалуйста к администрации для решения возникшей проблемы.", WHITE)
Exit Sub
End Select
End Sub
Первый квест спокойно делается
второй неберется пишет мол нету квеста и все тут
оба НПЦ настроены правильно
обе папки под квест есть
как решить мою проблему?