Jump to content


Photo

Интересный скрипт миссии "BusMod" by rooft0p, разбор полётов.

скрипт миссии

  • Please log in to reply
99 replies to this topic

#81 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 01 July 2015 - 23:42

Да, тоже к этому пришёл ;-)

GTA4.Net ScriptHook v1.7.1.7b by HazardX, в файле nScripting.h:

// Use Tasks like this:
//u32 pTask;
//OpenSequenceTask(&pTask);				// begin sequence
//TaskGoStraightToCoord(0, x, y, z, 2, 45000);		// add task to sequence, in a sequence, use 0 as ped
//CloseSequenceTask(pTask);				// end sequence
//TaskPerformSequence(ped, pTask);			// execute sequence
//ClearSequenceTask(pTask);				// clear sequence

Днём попробую исправить код, а то сплю уже -_-


Edited by vorotkov, 01 July 2015 - 23:43.


#82 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 22 October 2015 - 07:35

Тыркаясь с нативками, подошел к тому, что нужно работать непосредственно с данными игры в ОЗУ.

Буду благодарен, если кто-нибудь объяснит как это можно осуществить на практике, начиная с азов,

а в идеале даже напишет статейку-мануал для GTA IV ;-)

(как найти идентификатор программы в памяти, как найти адрес нужного параметра, как читать/записывать данные (напр. как найти ID транспортного средства)).

Как всегда, синтаксис VB.Net приветствуется, ну а вообще, хоть какую бы практическую информацию получить ;-)



#83 НикИТОС

НикИТОС

    Активный участник

  • Пользователи
  • PipPipPip
  • 127 posts
  • Пол:Мужчина


Posted 22 October 2015 - 15:03

Тыркаясь с нативками, подошел к тому, что нужно работать непосредственно с данными игры в ОЗУ.
Буду благодарен, если кто-нибудь объяснит как это можно осуществить на практике, начиная с азов,
а в идеале даже напишет статейку-мануал для GTA IV ;-)
(как найти идентификатор программы в памяти, как найти адрес нужного параметра, как читать/записывать данные (напр. как найти ID транспортного средства)).
Как всегда, синтаксис VB.Net приветствуется, ну а вообще, хоть какую бы практическую информацию получить ;-)

Для начала просто накидаю материалов и посоветую потренироваться, поделав трейнеры для старых игр. Также будь готов работать с IDA, ибо все лакомые адреса там.
С синтаксисом VB.Net и помощью с конкретными проблемами будут траблы, ибо примеров на VB.Net почти нет, обычно такие штуки делают на C/C++/Delphi 

Случайно найденный канал на YouTube, о качестве говорить не могу
Хелп по ArtMoney, с которой обычно начинают новички
Пишем trainer для игры
Низкопробная классика
В этом номере есть статья Касперски о хакинге Дума
Если заинтересует, скину дополненную версию с диска-приложения

Ну и гуглится всё это легко, куча статей, на самом деле.
Что касается конкретно IV, доступных примеров с открытыми исходниками не знаю. Легче общие принципы прощупать на примере SA: кода много, асишки легко дизассемблируются. Очень советую в этом плане GTABuilder.Ru и этот урок.

Edited by НикИТОС, 27 October 2015 - 14:46.


#84 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 03 November 2015 - 16:58

Большое спасибо НикИТОС!

Шарики за ролики заходят от объёма новой информации ;-)

Канал на Ютубе в первой ссылке интересный.

По VB.NET, если кому вдруг интересно будет, нашел полезную статью. Читать с непривычки сложно, но с N-ного перепрочтения понять можно ;-)

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

Т.к. идей скриптов для GTA IV у меня много, а использовать в них я стараюсь нативные вызовы (в некоторых встроенных в нетхук функциях присутствуют неточности по используемым параметрам + можно более гибко настраивать функции под свои нужды), то создалась ситуация, когда во многих скриптах используются одни и те же функции.

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

Вот в этом собственно и вопрос - как создать свою внешнюю библиотеку (в идеале не запирая её в DLL, а подгружая непосредственно открытым кодом - нетхук позволяет загружать файлы в исходниках) и использовать в скрипте функции из этой библиотеки (данный метод реализован во всех модах от JulioNIB, где отдельным файлом присутствует библиотека функций JulioNIB.Scripts.net.dll, но и через НетРефлектор я не разобрался как это воплотить в жизнь).

Было бы здорово получить пример на C# или VB.NET.

 

Поискав в Интернете информацию, пробовал так:

Создал файл GTAIV.vb

Imports System
Imports System.Windows.Forms
Imports GTA

Public Class GTAIV_lib
    Inherits Script

    Public Function TestFunc() As Boolean
	    Return True
    End Function
End Class

2-й файл test1.vb (использующий библиотеку):

Imports System
Imports System.Windows.Forms
Imports GTA
Imports GTAIV_lib

Public Class Test1
    Inherits Script

    Private Sub Main_KeyDown(ByVal sender As Object, ByVal e As GTA.KeyEventArgs) Handles MyBase.KeyDown
       If e.Key = Keys.Scroll Then
            Game.DisplayText("TEST: " & GTAIV_lib.TestFunc(), 1000)
       End If
    End Sub
End Class

При загрузке 2-й файл даёт ошибку, говоря о том, что он не смог импортировать библиотеку GTAIV_lib.


Edited by vorotkov, 03 November 2015 - 21:06.


#85 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 03 November 2015 - 17:24

Данные об ошибке в игре выдаёт следующие:

 

Loading dynamic scriptfile 'scripts\GTAIV.vb' ...

  ... foundscript 'scripts\GTAIV_lib'!

Loading dynamic scriptfile 'scripts\test1.vb'

2 Errors in script 'C:\GAMES\GTA IV\scripts\test1.vb':

  in Line 4:  Пространство имен или тип, указанные в разделе Imports "GTAIV_lib", не содержат публичных членов или не могут быть найдены. Убедитесь, что пространство имен или тип определены и содержат хотя бы один публичный член. Убедитесь, что импортированное имя элемента не использует псевдонимы.

  in Line 11:  "GTAIV_lib" не объявлен. Может быть недоступен из-за своего уровня защиты.

 

P.S. Пробовал ещё добавить Shared -  Public Shared Function TestFunc() As Boolean, но результат тот же.

 

Если забить всё в один файл, напр. test3.vb, то всё работает:

Imports System
Imports System.Windows.Forms
Imports GTA

Public Class GTAIV_lib
    Public Function TestFunc() As Boolean
	    Return True
    End Function
End Class

Public Class Test1
    Inherits Script

    Private Sub Main_KeyDown(ByVal sender As Object, ByVal e As GTA.KeyEventArgs) Handles MyBase.KeyDown
       If e.Key = Keys.Scroll Then
	    Dim tst As New GTAIV_lib()
            Game.DisplayText("TEST: " & tst.TestFunc(), 1000)
       End If
    End Sub
End Class

Edited by vorotkov, 03 November 2015 - 18:50.


#86 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 04 November 2015 - 19:49

Сдаётся мне, что НетХук использует какое-то своё имя корневого пространства имён и поэтому мои подстановки в Imports он уже не воспринимает... Т.е. во 2-м файле test1.vb (использующем библиотеку) возможно нужно указывать Imports <имя корневого пространства имён НетХука>.<имя своего пространства имён>


Edited by vorotkov, 04 November 2015 - 20:33.


#87 НикИТОС

НикИТОС

    Активный участник

  • Пользователи
  • PipPipPip
  • 127 posts
  • Пол:Мужчина


Posted 05 November 2015 - 10:23

Подожди. Не пойму, зачем тебе код вне длл. Есть же исходники хука. Там сможешь и неточности с параметрами поправить, и свои функции добавить. Зачем их с модом тащить, если можно в заголовочных файлах прописать? А компилятор уж сам всё как надо в длл упихает.



#88 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 05 November 2015 - 10:58

Подожди. Не пойму, зачем тебе код вне длл. Есть же исходники хука. Там сможешь и неточности с параметрами поправить, и свои функции добавить. Зачем их с модом тащить, если можно в заголовочных файлах прописать? А компилятор уж сам всё как надо в длл упихает.

 

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

Но, хочется же универсальности решения.

Минусы модификации хука:

1. При изменении хука создаётся вероятность (хоть и довольно небольшая), что некоторые моды иных авторов не смогут корректно работать

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

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

 

P.S. Если я тебя не корректно понял и ты не про модификацию хука, а про создание внешней DLL вместо использования в папке SCRIPTS файлов-исходников, то тут у меня тоже не получилось осуществить взаимодействие двух dll - при вызове функции ругается, что не найден файл библиотеки, хотя он есть.

Опишу подробно:

 

Файл 1 (библиотека): C:\GAMES\GTAIV_A.net.dll

 

Имя проекта:                           GTAIV_A     (просто имя в Visual Studio)

Свойства проекта\Приложение:

Имя сборки:                            GTAIV_A.net (т.е. название конечного файла будет GTAIV_A.net.dll)

Корневое пространство имён:  <не указано>

Целевая платформа:                .NET Framework 4

Тип приложения:                     Библиотека классов

Свойства проекта\Ссылки:

   ScriptHookDotNet

   System

   System.Core

   System.Data

   System.Data.SetExtensions

   System.Windows.Forms

   System.Xml

   System.Xml.Linq

 

Содержание проекта:

Class1.vb

Imports System
Imports System.Windows.Forms
Imports GTA

Public Class GTAIV_1

    Public Function TestFunc1() As Boolean
	    Return True
    End Function

    Public Shared Function TestFunc2() As Boolean
	    Return False
    End Function

End Class

Файл 2 (использующий внешнюю библиотеку): C:\GAMES\GTAIV_B.net.dll

 

Имя проекта:                           GTAIV_B     (просто имя в Visual Studio)

Свойства проекта\Приложение:

Имя сборки:                            GTAIV_B.net (т.е. название конечного файла будет GTAIV_B.net.dll)

Корневое пространство имён:  <не указано>

Целевая платформа:                .NET Framework 4

Тип приложения:                     Библиотека классов

Свойства проекта\Ссылки:

   GTAIV_A

   ScriptHookDotNet

   System

   System.Core

   System.Data

   System.Data.SetExtensions

   System.Windows.Forms

   System.Xml

   System.Xml.Linq

 

Содержание проекта:

Class2.vb

Imports System
Imports System.IO
Imports System.Windows.Forms
Imports GTA

Public Class GTAIV_2
    Inherits Script

    'Private lib1 As New GTAIV_1

    Public Sub New()
        Wait(1000)
        GTA.Game.Console.Print("<<< === It works! === >>>")
    End Sub

    Private Sub Main_KeyDown(ByVal sender As Object, ByVal e As GTA.KeyEventArgs) Handles MyBase.KeyDown
       If e.Key = Keys.Scroll Then
	        Dim lib1 As New GTAIV_1
            Game.DisplayText("TEST: " & lib1.TestFunc1(), 1000)
            'Game.DisplayText("TEST: " & lib1.TestFunc2(), 1000)
       End If
    End Sub
End Class

Скрин ошибки в игре при нажатии на ScrollLock


Edited by vorotkov, 05 November 2015 - 12:29.


#89 НикИТОС

НикИТОС

    Активный участник

  • Пользователи
  • PipPipPip
  • 127 posts
  • Пол:Мужчина


Posted 05 November 2015 - 11:43

2-й файл test1.vb (использующий библиотеку):

Imports System
Imports System.Windows.Forms
Imports GTA
Imports GTAIV_lib

Public Class Test1
    Inherits Script

    Private Sub Main_KeyDown(ByVal sender As Object, ByVal e As GTA.KeyEventArgs) Handles MyBase.KeyDown
       If e.Key = Keys.Scroll Then
            Game.DisplayText("TEST: " & GTAIV_lib.TestFunc(), 1000)
       End If
    End Sub
End Class
При загрузке 2-й файл даёт ошибку, говоря о том, что он не смог импортировать библиотеку GTAIV_lib.


Если честно, не очень понимаю, зачем тут Imports GTAIV_lib. Ты ведь всего лишь класс создаёшь, а не пространство имён. Без этой строки самый первый вариант с двумя файлами пробовал?

Edited by НикИТОС, 05 November 2015 - 12:09.


#90 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 05 November 2015 - 12:39

...

Если честно, не очень понимаю, зачем тут Imports GTAIV_lib. Ты ведь всего лишь класс создаёшь, а не пространство имён. Без этой строки самый первый вариант с двумя файлами пробовал?

 

Это была первая проба, действительно не корректная, посмотри предыдущий пост, там уже по другому. Пробовал с DLL создавать внешнее Win-приложение, там связка DLL-EXE работает, а ГТА не хочет.



#91 НикИТОС

НикИТОС

    Активный участник

  • Пользователи
  • PipPipPip
  • 127 posts
  • Пол:Мужчина


Posted 05 November 2015 - 12:44

P.S. Если я тебя не корректно понял и ты не про модификацию хука, а про создание внешней DLL вместо использования в папке SCRIPTS файлов-исходников, то тут у меня тоже не получилось осуществить взаимодействие двух dll - при вызове функции ругается, что не найден файл библиотеки, хотя он есть.

Всё правильно, я про модификацию хука. Раз не устраивает, давай рассмотрим твои варианты.

Это была первая проба, действительно не корректная, посмотри предыдущий пост, там уже по другому. Пробовал с DLL создавать внешнее Win-приложение, там связка DLL-EXE работает, а ГТА не хочет.

Таки советую попробовать поработать с сорцами, если хук их читает. Это легче, правильнее и повлечёт за собой меньше проблем. Если ты конечно из принципа не хочешь распространять DLL, дабы не палить код.

#92 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 05 November 2015 - 14:38

Таки советую попробовать поработать с сорцами, если хук их читает. Это легче, правильнее и повлечёт за собой меньше проблем. Если ты конечно из принципа не хочешь распространять DLL, дабы не палить код.

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

Пока новые идеи о том, как связать два файла закончились...



#93 НикИТОС

НикИТОС

    Активный участник

  • Пользователи
  • PipPipPip
  • 127 posts
  • Пол:Мужчина


Posted 05 November 2015 - 18:09

Так что с таким вариантом?
 

Создал файл GTAIV.vb

Imports System
Imports System.Windows.Forms
Imports GTA

Public Class GTAIV_lib
    Inherits Script

    Public Function TestFunc() As Boolean
	    Return True
    End Function
End Class
2-й файл test1.vb (использующий библиотеку):
Imports System
Imports System.Windows.Forms
Imports GTA

Public Class Test1
    Inherits Script

    Private Sub Main_KeyDown(ByVal sender As Object, ByVal e As GTA.KeyEventArgs) Handles MyBase.KeyDown
       If e.Key = Keys.Scroll Then
            Game.DisplayText("TEST: " & GTAIV_lib.TestFunc(), 1000)
       End If
    End Sub
End Class

Я просто тоже поискал в Интернете и увидел, что VB-файлы одного проекта не требуют дополнительно их связывать.

Также попробуй во втором файле объявить экземпляр класса GTAIV_lib (Dim mylib as New GTAIV_lib) и обратиться к функции-члену класса через него (mylib.TestFunc()).

#94 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 07 November 2015 - 11:53

Я просто тоже поискал в Интернете и увидел, что VB-файлы одного проекта не требуют дополнительно их связывать.

Также попробуй во втором файле объявить экземпляр класса GTAIV_lib (Dim mylib as New GTAIV_lib) и обратиться к функции-члену класса через него (mylib.TestFunc()).

 

Пробовал, не работает:

P.S. Если я тебя не корректно понял и ты не про модификацию хука, а про создание внешней DLL вместо использования в папке SCRIPTS файлов-исходников, то тут у меня тоже не получилось осуществить взаимодействие двух dll - при вызове функции ругается, что не найден файл библиотеки, хотя он есть.

Опишу подробно:

 

Файл 1 (библиотека): C:\GAMES\GTAIV_A.net.dll

 

Имя проекта:                           GTAIV_A     (просто имя в Visual Studio)

Свойства проекта\Приложение:

Имя сборки:                            GTAIV_A.net (т.е. название конечного файла будет GTAIV_A.net.dll)

Корневое пространство имён:  <не указано>

Целевая платформа:                .NET Framework 4

Тип приложения:                     Библиотека классов

Свойства проекта\Ссылки:

   ScriptHookDotNet

   System

   System.Core

   System.Data

   System.Data.SetExtensions

   System.Windows.Forms

   System.Xml

   System.Xml.Linq

 

Содержание проекта:

Class1.vb

Imports System
Imports System.Windows.Forms
Imports GTA

Public Class GTAIV_1

    Public Function TestFunc1() As Boolean
	    Return True
    End Function

    Public Shared Function TestFunc2() As Boolean
	    Return False
    End Function

End Class

Файл 2 (использующий внешнюю библиотеку): C:\GAMES\GTAIV_B.net.dll

 

Имя проекта:                           GTAIV_B     (просто имя в Visual Studio)

Свойства проекта\Приложение:

Имя сборки:                            GTAIV_B.net (т.е. название конечного файла будет GTAIV_B.net.dll)

Корневое пространство имён:  <не указано>

Целевая платформа:                .NET Framework 4

Тип приложения:                     Библиотека классов

Свойства проекта\Ссылки:

   GTAIV_A

   ScriptHookDotNet

   System

   System.Core

   System.Data

   System.Data.SetExtensions

   System.Windows.Forms

   System.Xml

   System.Xml.Linq

 

Содержание проекта:

Class2.vb

Imports System
Imports System.IO
Imports System.Windows.Forms
Imports GTA

Public Class GTAIV_2
    Inherits Script

    'Private lib1 As New GTAIV_1

    Public Sub New()
        Wait(1000)
        GTA.Game.Console.Print("<<< === It works! === >>>")
    End Sub

    Private Sub Main_KeyDown(ByVal sender As Object, ByVal e As GTA.KeyEventArgs) Handles MyBase.KeyDown
       If e.Key = Keys.Scroll Then
	        Dim lib1 As New GTAIV_1
            Game.DisplayText("TEST: " & lib1.TestFunc1(), 1000)
            'Game.DisplayText("TEST: " & lib1.TestFunc2(), 1000)
       End If
    End Sub
End Class

Скрин ошибки в игре при нажатии на ScrollLock

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



#95 НикИТОС

НикИТОС

    Активный участник

  • Пользователи
  • PipPipPip
  • 127 posts
  • Пол:Мужчина


Posted 10 November 2015 - 15:31

Смотри, я нашёл в архиве с хуком пример ScriptCommunicationExample.vb. Пробовал так же, только со скриптами в разных файлах?



#96 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 10 November 2015 - 17:36

Я, кстати, автора скриптов указанных мной выше (с обменом информации между файлами) спросил, он тоже сказал про передачу команд:

- How to use one global variable/function in 2 different files (scripts)?

JulioNIB:

- Sorry man, never did this, i commonly use SendCommand in GTA IV for scritps intercomunication

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

 

Спасибо НикИТОС, мне как раз не хватало примеров, а то в коде от рефлектора переизбыток информации, не усваиваю пока ;-)


Edited by vorotkov, 10 November 2015 - 17:45.


#97 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 11 December 2015 - 08:12

Попробовал собрать ScriptHookDotNet и тут пошла всяка хрень:

1>------ Сборка начата: проект: ScriptHookDotNet, Конфигурация: Debug Win32 ------
1>  AnimationSet.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>  Blip.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>Blip.cpp(164): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(176): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(181): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(186): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(195): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(204): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(215): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(220): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(229): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(234): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(239): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Blip.cpp(244): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK_RELAXED"
1>  Camera.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>Camera.cpp(55): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(66): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(74): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(83): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(94): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(107): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(116): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(124): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(132): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(133): warning C4003: не хватает фактических параметров для макроопределения "OBJECT_NON_EXISTING_CHECK"
1>Camera.cpp(137): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(138): warning C4003: не хватает фактических параметров для макроопределения "OBJECT_NON_EXISTING_CHECK"
1>Camera.cpp(142): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(143): warning C4003: не хватает фактических параметров для макроопределения "OBJECT_NON_EXISTING_CHECK"
1>Camera.cpp(147): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(148): warning C4003: не хватает фактических параметров для макроопределения "OBJECT_NON_EXISTING_CHECK"
1>Camera.cpp(152): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(157): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>Camera.cpp(169): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK_RELAXED"
1>Camera.cpp(177): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK_RELAXED"
1>  Checkpoint.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>Checkpoint.cpp(37): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
1>  Console.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\Graphics.h(26): warning C4005: DrawText: изменение макроопределения
1>          c:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx9core.h(368): см. предыдущее определение "DrawText"
1>Console.cpp(84): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
1>  ConsoleCommands.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>  ContentCache.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>  D3D_Device.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>  DecisionMaker.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>DecisionMaker.cpp(87): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(88): warning C4003: не хватает фактических параметров для макроопределения "OBJECT_NON_EXISTING_CHECK"
1>DecisionMaker.cpp(110): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(126): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(143): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(147): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(151): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(155): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(159): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(163): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(167): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(171): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(175): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(179): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(183): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(187): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>DecisionMaker.cpp(191): warning C4003: не хватает фактических параметров для макроопределения "NON_EXISTING_CHECK"
1>  EventArgs.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\Graphics.h(26): warning C4005: DrawText: изменение макроопределения
1>          c:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx9core.h(368): см. предыдущее определение "DrawText"
1>  Font.cpp
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\enums.h(373): warning C4369: Unknown: значение счетчика "4294967295" не может быть представлено как "int", значение - "-1"
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\interfaces.h(55): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\bHandleObject.h(64): error C2337: Dynamic: атрибут не найден
1>c:\users\user1\documents\visual studio 2013\projects\scripthookdotnet\Graphics.h(26): warning C4005: DrawText: изменение макроопределения
1>          c:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx9core.h(368): см. предыдущее определение "DrawText"
1>  Game.cpp
1>Отменена задача.
1>Отменена задача.
Сборка была отменена.

Полный нуб в этом, объясните мои ошибки пж-та )

 

Используемый софт:

MS Windows 7 (x64)

MS Visual Studio 2013

DirectX Software Development Kit

Sourcecode of the GTA4 .Net ScriptHook by HazardX


Edited by vorotkov, 13 December 2015 - 01:03.


#98 НикИТОС

НикИТОС

    Активный участник

  • Пользователи
  • PipPipPip
  • 127 posts
  • Пол:Мужчина


Posted 14 December 2015 - 00:10

Ну, этот лог сам по себе ничего не даёт, надо смотреть конкретные куски кода, на которые ругается компилятор.

 

Также советую обратить внимание на раздел Requirements файла readme.txt из архива с исходниками. Хотя я сомневаюсь, что при использовании того, что там указано, пропадёт хотя бы половина ошибок.



#99 vorotkov

vorotkov

    Активный участник

  • Пользователи
  • PipPipPip
  • 63 posts

Posted 29 April 2016 - 14:20

Разбираясь с камерами, нашёл в файле SCOCL Scripts\iv\taxi.txt одну интересную функцию: SET_PTFX_CAM_INSIDE_VEHICLE.
Она имеет тип Boolean и при значении True, позволяет сидя внутри транспортного видеть повреждения на стеклянных поверхностях вне нашего т/с (например, следы от пуль на стёклах других автомобилей) + становятся отчётливо видны цвета сигналов дорожных светофоров и сигналы на светофорах для пешеходов.
Напомню, стандартно в игре, через текстуры стекла видно повреждения на обычных поверхностях расположенных за этим стеклом, но не видно повреждений на другом стекле, расположенном за этим. На дорожных светофорах стандартно можно только еле-еле различить зелёный сигнал, красного вообще не видно. На светофорах для пешеходов сигналы вообще не отображаются. [Скриншоты для понимания разницы]
Из минусов - функция активна только до смены камеры (вида), поэтому прокрутив от вида изнутри т/с на внешний и обратно требуется её заново активировать.
Возможно, эта функция будет полезна тем, кто размещает камеру внутри автомобиля, для получения более реалистичной картины окружающего мира изнутри транспортного средства.



#100 НикИТОС

НикИТОС

    Активный участник

  • Пользователи
  • PipPipPip
  • 127 posts
  • Пол:Мужчина


Posted 30 April 2016 - 14:29

Разбираясь с камерами, нашёл в файле SCOCL Scripts\iv\taxi.txt одну интересную функцию: SET_PTFX_CAM_INSIDE_VEHICLE.
Она имеет тип Boolean и при значении True, позволяет сидя внутри транспортного видеть повреждения на стеклянных поверхностях вне нашего т/с (например, следы от пуль на стёклах других автомобилей) + становятся отчётливо видны цвета сигналов дорожных светофоров и сигналы на светофорах для пешеходов.
Напомню, стандартно в игре, через текстуры стекла видно повреждения на обычных поверхностях расположенных за этим стеклом, но не видно повреждений на другом стекле, расположенном за этим. На дорожных светофорах стандартно можно только еле-еле различить зелёный сигнал, красного вообще не видно. На светофорах для пешеходов сигналы вообще не отображаются. [Скриншоты для понимания разницы]
Из минусов - функция активна только до смены камеры (вида), поэтому прокрутив от вида изнутри т/с на внешний и обратно требуется её заново активировать.
Возможно, эта функция будет полезна тем, кто размещает камеру внутри автомобиля, для получения более реалистичной картины окружающего мира изнутри транспортного средства.

Такие вещи пихай лучше в вики. Здесь их никто не найдёт.






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users