#26 Re: Вопросы по скриптингу » Один вопрос » 08-10-2010 15:59

Да, я не заметил, что ты перезалил, спасибо)

___

Блин, либо я нуб (что более вероятно crazy), либо... либо я еще больший нуб. Санчез, расскажи, пожалуйста, подробно мне, жалкому хеллоуворлдщику, последовательность своих действий? blush
Насколько я понял, ты работаешь в VS2010, ибо моя студия кричит, что файл более нового формата.
Попробовал скомпилировать абсолютно такой же проект (твои .cpp и .def) в 2008 - в игре ноль реакции, а с твоей готовой дллкой всё прекрасно работает (за исключением одного варнинга в чате сампа)

PS: даже ассемблерный код в архиве есть, ммм, вкусняшка))

#28 Re: Вопросы по скриптингу » Один вопрос » 08-10-2010 14:35

LEX wrote:

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

Сори, my fault grin

0A8C: write_memory 6601887 size 4 value -1869574000 virtual_protect 1

Опкод 0A8C записывает определенное значение в определенную ячейку памяти. Первый параметр - адрес ячейки, второй - число байт, передаваемых в ячейку, третий - само значение, которое нужно записать. Насчет виртуал протект я мало чего знаю, вроде бы это 1 это автоматическая очистка стека, а 0 - ручная.. Если что, поправьте.

И всё таки, Sanchez, не мог бы ты мне скинуть исходники своей дллки?

#29 Re: Вопросы по скриптингу » Один вопрос » 08-10-2010 12:06

Опкод 01B9 просто устанавливает текущее оружие. Модель, возможно, не видна, потому что дб с калашникова\м4 не предусмотрена игрой.

#30 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 20:17

Модели загружаются в память командой model.load(#модель), выгружаются - model.destroy(#модель)
Оружие можно поменять опкодом
01B9: set_actor $player_actor armed_weapon_to <номер оружия>

#31 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 19:18

...А где смотреть?
___
И можешь кинуть исходники?

#32 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 18:35

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

#33 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 18:13

Там стоит __cdecl (/Gd), поставил pop 2, ничего не изменилось, скрипт всё так же не загружает библиотеку.

#34 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 17:55

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

#35 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 17:53

Всё так же не работает( Ничего не понимаю
Добавил .def, сделал все, как ты сказал, но все так же не загружает библиотеку.
Скрипт свой оставил без изменений, все таки тоже самое.

#36 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 17:44

@Sanchez
Хм, у меня с написанием длл пока что мало опыта... куда надо совать .def-файл? (работаю в VS2008)

#37 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 17:34

Ошибка на стадии проверки на загруженность.

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

thread 'dlltest'
0AA2: 0@ = load_library "CLEO\mydll.dll" // IF and SET
0AA4: 1@ = get_proc_address "plus" library 0@ // IF and SET
:dll1
wait 0
if and
0AA2: 0@ = load_library "CLEO\mydll.dll" // IF and SET
0AA4: 1@ = get_proc_address "plus" library 0@ // IF and SET
then
4@ = 1
else
4@ = 0
end
0AF1: write_int 4@ to_ini_file "cleo\mydll.ini" section "mydll" key "loaded"
if and
4@ == 1
0AB0: 16
0AB0: 85
jf @dll1
0AA7: call_function 1@ num_params 2 pop 0 4 7 3@
//0AF1: write_int 3@ to_ini_file "cleo\mydll.ini" section "mydll" key "plus"
wait 50000
jump @dll1

#38 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 17:20

Спасибо, сейчас попробую

#39 Re: Вопросы по скриптингу » Один вопрос » 07-10-2010 12:15

Добрый день, скриптеры-программисты, нужна ваша помощь!
Написал я простенькую дллку для тестов, и пытаюсь вызвать её единственную функцию из клео-скрипта.
Код дллки:

Заголовочный:

namespace testfuncs {
	class testfuncs {
	public:
		static __declspec(dllexport) int plus(int a, int b);
	};
}

Исходник:

#include "testfuncs.h"
#include <stdexcept>
using namespace std;
namespace testfuncs {
	int testfuncs::plus(int a, int b) {
		return a + b; }
}

Скрипт:

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

thread 'dlltest'
0AA2: 0@ = load_library "CLEO\mydll.dll" // IF and SET
0AA4: 1@ = get_proc_address "plus" library 0@ // IF and SET
:dll1
wait 0
if and
0AB0: 16 //шифт
0AB0: 85 //u
jf @dll1
0AA7: call_function 1@ num_params 2 pop 2 4 7 3@
0AF1: write_int 3@ to_ini_file "cleo\mydll.ini" section "mydll" key "plus"
wait 50000
jump @dll1

После нажатия кнопок игра вылетает.
PS: тестирую скрипты я в сампе, это может быть причиной вылета? (Сингл у меня почему-то не работает)
PPS: в сб режим форматирования - "Как есть", так что проблема не в этом

Помогите! crazy

#40 Re: Вопросы по скриптингу » Один вопрос » 28-01-2010 18:07

У меня вопрос: можно ли и если да, то как, проверить, имеется ли машина с определенной моделью в определенном радиусе от игрока? И если имеется, то получить ее хендл (Например есть ли в радиусе 50.0 от игрока #RHINO)

#41 Re: Модификации » [CLEO] Anime Style!! » 28-01-2010 17:39

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

#42 Модификации » [CLEO] Anime Style!! » 27-01-2010 21:07

Wire
Replies: 2

Возможно, баян grin

На сервере SAMP, где я играю, имеется интересный Pawno-скрипт, который позволяет за определенное количество денег подорвать себя - я решил "портировать" его на синглплеер и добавить пару функций.

Вообщем, по нажатию Z + LMB игрок взрывается, а потом в течении нескольких секунд горит и способен поджигать прохожих прикосновением. Также в течении этого времени игроку невозможно причинить ущерб.

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

thread 'boom'

:ast1
wait 0
if and
0AB0: key_pressed 90
00E1: player 0 pressed_key 17
jf @ast1
00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@ 
0226: 0@ = actor $PLAYER_ACTOR health
02AB: set_actor $PLAYER_ACTOR immunities BP 1 FP 1 EP 1 CP 1 MP 1
0948: create_explosion_at 1@ 2@ 3@ type 10 camera_shake 2.0
0223: set_actor $PLAYER_ACTOR health_to 0@
0326: 5@ = create_actor $PLAYER_ACTOR fire
jump @ast2

:ast2
wait 0
if and
0973: fire 5@ exists
06FF: any_ped_near_actor $PLAYER_ACTOR in_range 3.0
jf @ast3
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 6@ closest_ped_to 7@
0326: 4@ = create_actor 7@ fire
if
actor.Dead(7@)
jf @ast2
02D1: remove_fire 4@
jump @ast2

:ast3
wait 100
8@ += 1
0326: 5@ = create_actor $PLAYER_ACTOR fire
if
8@ >= 100
jf @ast2
02D1: remove_fire 5@
02AB: set_actor $PLAYER_ACTOR immunities BP 0 FP 0 EP 0 CP 0 MP 0
8@ = 0
wait 2000
jump @ast1

Enjoy!

#43 Re: Вопросы по скриптингу » Вопросы по опкодам » 08-01-2010 12:12

хмм, наткнулся на проблему, вообщем как убрать модель, приаттаченную опкодом 070A?
пробовал и дестрой и деатач - неработает

#45 Re: Вопросы по скриптингу » Один вопрос » 06-01-2010 13:47

народ, кто-то знает, где посмотреть номер добавленной (своей) модели, или как добавить новый ид? и возможно ли использовать свою модель в скрипте, не меняя внешние файлы?

#46 Re: Работа с памятью, EXE » "Белимитный город" » 05-12-2009 20:16

Хм, а ведь точно. Значит, карту этим методом можно расширить, только вот как быть с радаром? Я не разбираюсь в редактировании памяти игры, но должна же быть строчка, отвечающая за размер карты (той что в меню)? Кстати когда-то была идея сделать карту штата, как в игре "Мафия" (жмешь кнопку и перед тобой появляется карта)

#47 Re: Работа с памятью, EXE » "Белимитный город" » 04-12-2009 14:03

Быть может, можно создать новый город тупо огромным интерьером? И загружать игрока в него, например, телепортом из старых координат в новые, относительно интерьера.

З.Ы. Я не знаю, существуют ли лоды в интерьерах)) Ведь если нет, то фпс будет страдать страшно, столько обьектов загружать одновременно.

#49 Re: Вопросы по скриптингу » Вопросы по опкодам » 30-11-2009 16:34

не могли бы вы сказать, где взять список и номера костей для опкода 09A0: ?
(09A0: actor $PLAYER_ACTOR attach_object 26@ with_offset 0.0 0.0 0.0 on_bone 5 16 perform_animation "NULL" IFP_file "NULL" time -1
)

Board footer

Powered by FluxBB