Welcome, guest. You can be a Login или register
Author
Topic title
st1x51
Offline
Ленюсь
154 posts
Karma 8
Собственно имеется код куба,куб можно брать порталганом,в порталы кидать..но не в этом тема,нужно чтобы он нажимал на кнопку(когда куб кладешь на нее)американский программист уже с ума сходит,не знает что делать,может вы поможете?)
код куба:
/* Aperture Science Cube

Copyleft (<)2010.
No rights reserved.
DO distribute.

Push function inspired by Wazat's code from inside3d.com

!!experimental!!
*/

void() asscube_think =
{
self.nextthink = time;
};

void() asscube_push =
{
local vector vec, selforg, otherorg;
local float dist; dist = 2;

if (other.classname != "player") return;
if (other.absmin_z + 4 < self.absmax_z)
{
// getting origins this way allows for BSP entities to work too.
otherorg = 0.5*(other.absmin + other.absmax);
selforg = 0.5*(self.absmin + self.absmax);

// Don't move in the direction the player is facing. Instead, always move away from the player.
vec = normalize(selforg - otherorg); // dir from them toward me
vec = vectoangles(vec);
walkmove(vec_y, dist);
}
else // (touch on top)
{
other.flags = other.flags | FL_ONGROUND;
}
};


/*QUAKED ass_cube
Companion Cube (it's not solid, because it caused trouble. quake is not game of pushables...)
EDIT: the problem is elsewhere...
*/
void() ass_cube =
{
local entity new;
local vector newsize;

self.mangle = self.angles;
self.angles = '0 0 0';

precache_model ("progs/cube.bsp");
setmodel (self, "progs/cube.bsp");
setsize (self, '0 0 0', '32 32 32');

self.classname = "cube";
self.solid = SOLID_SLIDEBOX;
self.movetype = MOVETYPE_PUSH;
setorigin (self, self.origin);
self.oldorigin = self.origin;
self.touch = asscube_push;
self.nextthink = time + 0.1;
self.think = asscube_think;
};


то,что осталось сделать,помогите пожалуйста)
/***
1500 Megawatt Heavy Duty Super-Colliding Super Button
-----------------------------------------------------
- weighted by player, cube, sentry gun
Variable sized trigger. Triggers once, then
*/
void() ass_button =
{
InitTrigger ();

self.think = assbutton_think;





};

еще один код для куба

/*QUAKED ass_cube
Companion Cube
*/
void() asscube_think =
{
self.nextthink = time + 0.2;
if (self.flags & FL_ONGROUND)
{
self.velocity = '0 0 0';
}
self.flags = (self.flags | FL_ONGROUND) - FL_ONGROUND;
};

void() asscube_push =
{
local vector vec, selforg, otherorg;
local float dist; dist = 2;

if (other.classname != "player") return;
if (other.absmin_z + 4 < self.absmax_z)
{
// getting origins this way allows for BSP entities to work too.
otherorg = 0.5*(other.absmin + other.absmax);
selforg = 0.5*(self.absmin + self.absmax);

// Don't move in the direction the player is facing. Instead, always move away from the player.
vec = normalize(selforg - otherorg); // dir from them toward me
vec = vectoangles(vec);
walkmove(vec_y, dist);
}
else // (touch on top)
{
other.flags = other.flags | FL_ONGROUND;
}
};


void() ass_cube =
{
local entity new;
local vector newsize;

self.mangle = self.angles;
self.angles = '0 0 0';

precache_model ("progs/cube.bsp");
setmodel (self, "progs/cube.bsp");
setsize (self, '-16 -16 0', '16 16 32');

self.classname = "cube";
self.solid = SOLID_SLIDEBOX;
self.movetype = MOVETYPE_TOSS;
setorigin (self, self.origin);
self.oldorigin = self.origin;
self.gravity = 1;
self.touch = asscube_push;
self.nextthink = time + 0.1;
self.think = asscube_think;
};
Фигня всякая:
http://pspquake.blogspot.com/
http://st1x.nm.ru/
Текущий проект:
http://www.moddb.com/games/conscript
Eugeny
Offline
195 posts
Karma 10
в вольфе можно нажимать кнопки выстрелом, можно попытаться оттуда взять эту функцию и переделать под куб
st1x51
Offline
Ленюсь
154 posts
Karma 8
[quote author=Eugeny link=topic=714.msg16014#msg16014 date=1325324462]
в вольфе можно нажимать кнопки выстрелом, можно попытаться оттуда взять эту функцию и переделать под куб
[/quote]

в квейке тоже так можно,видимо это не прокатило..
Фигня всякая:
http://pspquake.blogspot.com/
http://st1x.nm.ru/
Текущий проект:
http://www.moddb.com/games/conscript
DOOMer
Offline
Хранитель и могильщик Врат
1564 posts
Karma 103
st1x51, судя по описанию в этой теме решение было найдено? Или я чего-то не так понял?
Вертексы должны образовывать конвексный браш
My Quake Maps

Core i5 4210U 1.7 Ghz, 8 Gb RAM, GeForce 840M
Calculate Linux 18.x [



сохранись перед дверью...два раза =)
st1x51
Offline
Ленюсь
154 posts
Karma 8
да,оно было найдено,извращенным способом)

Фигня всякая:
http://pspquake.blogspot.com/
http://st1x.nm.ru/
Текущий проект:
http://www.moddb.com/games/conscript
DOOMer
Offline
Хранитель и могильщик Врат
1564 posts
Karma 103
Ну так напиши его тут, чтобы у темы как бы было "логическое завершение" =)
Вертексы должны образовывать конвексный браш
My Quake Maps

Core i5 4210U 1.7 Ghz, 8 Gb RAM, GeForce 840M
Calculate Linux 18.x [



сохранись перед дверью...два раза =)
st1x51
Offline
Ленюсь
154 posts
Karma 8
сам спросил-сам ответил:)

void() button_touch =
{
if (other.classname != "cube" && (other.classname != "player"))
return;
self.enemy = other;
button_fire ();
};
Фигня всякая:
http://pspquake.blogspot.com/
http://st1x.nm.ru/
Текущий проект:
http://www.moddb.com/games/conscript