本文整理汇总了C++中GetY函数的典型用法代码示例。如果您正苦于以下问题:C++ GetY函数的具体用法?C++ GetY怎么用?C++ GetY使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetY函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FxHomeCallTimer
func FxHomeCallTimer(object target, proplist fx, int time)
{
if(!master)
{
KillBall();
return -1;
}
if(GetEffect("Blocked", this))
{
ox=GetX();
oy=GetY();
return;
}
DrawParticleLine("Flash", 0, 0, ox-GetX(), oy-GetY(), 1, 0, 0, 15, hometrailparticles);
if(time%7 == 0)
{
for(var i = 0; i < 360; i+=5)
{
CreateParticle("Flash", Sin(i, 3), -Cos(i, 5), 0, 0, 10, hometrailparticles2, 2);
}
}
fx.x = master->GetX();
fx.y = master->GetY();
var angle = Angle(GetX(), GetY(), fx.x, fx.y, 10);
var txdir = Sin(angle, Speed + 12, 10);
var tydir = -Cos(angle, Speed + 12, 10);
SetXDir((GetXDir() + (txdir - GetXDir())/2));
SetYDir((GetYDir() + (tydir - GetYDir())/2));
CheckForEnemies(HomeCallSize);
ox=GetX();
oy=GetY();
var dst = Distance(GetX(), GetY(), fx.x, fx.y);
if(dst < 8)
{
AddShield(master);
Sound("Ball::ball_shield", false, 20);
var particles =
{
Prototype = Particles_Glimmer(),
R = pR,
G = pG,
B = pB,
Alpha = 255,
Size = PV_Linear(10, 0),
OnCollision = PC_Bounce(),
};
CreateParticle("StarSpark", 0, 0, PV_Random(-60,60), PV_Random(-60, 60), 25, particles, 5);
var particle =
{
Alpha = PV_Linear(255, 0),
Size = 50,
R = pR,
G = pG,
B = pB,
BlitMode = GFX_BLIT_Additive,
};
master->CreateParticle("StarSpark", 0, 0, 0, 0, 7, particle, 4);
FollowMaster();
return -1;
}
}
示例2: GetRight
Line Rectangle::GetRight() const {
auto p = this->_transform.GetPosition();
auto e = this->_half_extents;
return {{p.GetX() + e.GetX(), p.GetY() - e.GetY()}, {p.GetX() + e.GetX(), p.GetY() + e.GetY()}};
}
示例3: GetBottomRight
Vector2D Rectangle::GetBottomRight() const {
auto p = this->_transform.GetPosition();
auto e = this->_half_extents;
return {p.GetX() + e.GetX(), p.GetY() + e.GetY()};
}
示例4: wxLogInfo
void BackgroundDrawer::DrawYAxisVals(wxDC *dc, int tick_len, int line_width) {
double min = m_draw->GetDrawInfo()->GetMin();
double max = m_draw->GetDrawInfo()->GetMax();
double dif = max - min;
if (dif <= 0) {
wxLogInfo(_T("%s %f %f"), m_draw->GetDrawInfo()->GetName().c_str(), min, max);
assert(false);
}
//procedure for calculating distance between marks stolen from SzarpDraw2
double x = dif;
double step;
int i = 0;
if (x < 1)
for (;x < 1; x *=10, --i);
else
for (;(int)x / 10; x /=10, ++i);
if (x <= 1.5)
step = .1;
else if (x <= 3.)
step = .2;
else if (x <= 7.5)
step = .5;
else
step = 1.;
double acc = 1;
int prec = m_draw->GetDrawInfo()->GetPrec();
for (int p = prec; p > 0; --p)
acc /= 10;
double factor = (i > 0) ? 10 : .1;
for (;i; i -= i / abs(i))
step *= factor;
if (step < acc)
step = acc;
dc->SetPen(wxPen(GetTimeAxisCol(), line_width, wxSOLID));
int w, h;
GetSize(&w, &h);
h -= m_bottommargin + m_topmargin;
for (double val = max; (min - val) < acc; val -= step) {
//for (double val = min; (val - max) < acc; val += step) {
int y = GetY(val);
dc->DrawLine(m_leftmargin - tick_len, y, m_leftmargin, y);
wxString sval = m_draw->GetDrawInfo()->GetValueStr(val, _T("- -"));
int textw, texth;
dc->GetTextExtent(sval, &textw, &texth);
dc->DrawText(sval, m_leftmargin - textw - 1, y + line_width / 2 + 1 );
}
dc->SetPen(wxNullPen);
}
示例5: SetPosition
void Triangle::SetX(double x) {
SetPosition(x, GetY());
}
示例6: return
bool Game_Character::IsInPosition(int x, int y) const {
return ((GetX() == x) && (GetY() == y));
}
示例7: DrawBaseBuilding
void nobHarborBuilding::Draw(int x, int y)
{
// Gebäude an sich zeichnen
DrawBaseBuilding(x, y);
// Hafenfeuer zeichnen // TODO auch für nicht-römer machen
if (nation == NAT_ROMANS || nation == NAT_JAPANESE || nation == NAT_BABYLONIANS)
{
LOADER.GetNationImage(nation, 500 + 5 * GAMECLIENT.GetGlobalAnimation(8, 2, 1, GetObjId() + GetX() + GetY()))->Draw(x + FIRE_POS[nation].x, y + FIRE_POS[nation].y, 0, 0, 0, 0, 0, 0);
}
else if (nation == NAT_AFRICANS || nation == NAT_VIKINGS)
{
LOADER.GetMapPlayerImage(740 + GAMECLIENT.GetGlobalAnimation(8, 5, 2, GetObjId() + GetX() + GetY()))->Draw(x + FIRE_POS[nation].x, y + FIRE_POS[nation].y);
}
if (nation == NAT_ROMANS)
{
// Zusätzliches Feuer
LOADER.GetMapPlayerImage(740 + GAMECLIENT.GetGlobalAnimation(8, 5, 2, GetObjId() + GetX() + GetY()))->Draw(x + EXTRAFIRE_POS[nation].x, y + EXTRAFIRE_POS[nation].y);
}
// Läuft gerade eine Expedition?
if(expedition.active)
{
// Waren für die Expedition zeichnen
// Bretter
for(unsigned char i = 0; i < expedition.boards; ++i)
LOADER.GetMapImageN(2200 + GD_BOARDS)->Draw(x + BOARDS_POS[nation].x - 5, y + BOARDS_POS[nation].y - i * 4, 0, 0, 0, 0, 0, 0);
// Steine
for(unsigned char i = 0; i < expedition.stones; ++i)
LOADER.GetMapImageN(2200 + GD_STONES)->Draw(x + STONES_POS[nation].x + 8, y + STONES_POS[nation].y - i * 4, 0, 0, 0, 0, 0, 0);
// Und den Bauarbeiter, falls er schon da ist
if(expedition.builder)
{
unsigned id = GAMECLIENT.GetGlobalAnimation(1000, 7, 1, GetX() + GetY());
const int WALKING_DISTANCE = 30;
// Wegstrecke, die er von einem Punkt vom anderen schon gelaufen ist
int walking_distance = (id % 500) * WALKING_DISTANCE / 500;
// Id vom laufen
unsigned walking_id = (id / 32) % 8;
int right_point = x - 20 + BUILDER_POS[nation].x;
if(id < 500)
{
LOADER.bob_jobs_cache[nation][JOB_BUILDER][0][walking_id].draw(right_point - walking_distance, y + BUILDER_POS[nation].y, COLOR_WHITE, COLORS[gwg->GetPlayer(player).color]);
// LOADER.GetBobN("jobs")->Draw(23,0,false,walking_id,right_point-walking_distance,
// y+BUILDER_POS[nation].y,COLORS[gwg->GetPlayer(player).color]);
//DrawShadow(right_point-walking_distance,y,walking_id,0);
}
else
{
LOADER.bob_jobs_cache[nation][JOB_BUILDER][3][walking_id].draw(right_point - WALKING_DISTANCE + walking_distance, y + BUILDER_POS[nation].y, COLOR_WHITE, COLORS[gwg->GetPlayer(player).color]);
// LOADER.GetBobN("jobs")->Draw(23,3,false,walking_id,
// right_point-WALKING_DISTANCE+walking_distance,y+BUILDER_POS[nation].y,
// COLORS[gwg->GetPlayer(player).color]);
//DrawShadow(right_point-WALKING_DISTANCE+walking_distance,y,walking_id,0);
}
}
}
}
示例8: SuggestMove
void ribi::con3::ConnectThreeWidget::DoComputerMove() noexcept
{
const auto move = SuggestMove();
assert(CanDoMove(move->GetX(),move->GetY()));
DoMove(move->GetX(),move->GetY());
}
示例9: RenderObject
void RenderManager::RenderObject(const Shape& shape, bool filled, ALLEGRO_BITMAP* texture) {
//shape->Render(al_get_backbuffer(_display_context));
auto& verts = shape.GetVerticies();
std::vector<ALLEGRO_VERTEX> allegro_verts;
allegro_verts.reserve(verts.size());
for(const auto& v : verts) {
auto p = a2de::Math::ToScreenScale(v.GetPosition());
auto uv = v.GetUV();
auto c = v.GetColor();
allegro_verts.push_back(
std::move(ALLEGRO_VERTEX{
static_cast<float>(p.GetX()),
static_cast<float>(p.GetY()),
static_cast<float>(p.GetZ()),
static_cast<float>(uv.GetX()),
static_cast<float>(uv.GetY()),
c
}));
}
switch(shape.GetShapeType()) {
case Shape::ShapeType::Point: {
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_POINT_LIST);
break;
} case Shape::ShapeType::Line: {
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_LINE_LIST);
break;
} case Shape::ShapeType::Rectangle: {
filled ?
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_TRIANGLE_LIST)
:
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_LINE_LOOP);
break;
} case Shape::ShapeType::Circle: {
filled ?
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_TRIANGLE_FAN)
:
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_POINT_LIST);
break;
} case Shape::ShapeType::Ellipse: {
filled ?
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_TRIANGLE_FAN)
:
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_POINT_LIST);
break;
} case Shape::ShapeType::Triangle: {
filled ?
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_TRIANGLE_LIST)
:
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_LINE_LOOP);
break;
} case Shape::ShapeType::Arc: {
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_LINE_STRIP);
break;
} case Shape::ShapeType::Polygon: {
filled ?
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_TRIANGLE_FAN)
:
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_LINE_LOOP);
break;
} case Shape::ShapeType::Spline: {
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_LINE_STRIP);
break;
} case Shape::ShapeType::Sector: {
filled ?
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_TRIANGLE_FAN)
:
al_draw_prim(allegro_verts.data(), nullptr, texture, 0, allegro_verts.size(), ALLEGRO_PRIM_LINE_LOOP);
break;
} default: {
/* DO NOTHING: All cases handled */;
}
}
}
示例10: DrawBaseBuilding
/**
*
*
* @author OLiver
*/
void nobUsual::Draw(int x, int y)
{
// Gebäude an sich zeichnen
DrawBaseBuilding(x, y);
// Wenn Produktion gestoppos ist, Schild außen am Gebäude zeichnen zeichnen
if(disable_production_virtual)
LOADER.GetMapImageN(46)->Draw(x + BUILDING_SIGN_CONSTS[nation][type].x, y + BUILDING_SIGN_CONSTS[nation][type].y, 0, 0, 0, 0, 0, 0);
// Rauch zeichnen
// Raucht dieses Gebäude und ist es in Betrieb? (nur arbeitende Gebäude rauchen schließlich)
if(BUILDING_SMOKE_CONSTS[nation][type - 10].type && is_working)
{
// Dann Qualm zeichnen (damit Qualm nicht synchron ist, x- und y- Koordinate als Unterscheidung
LOADER.GetMapImageN(692 + BUILDING_SMOKE_CONSTS[nation][type - 10].type * 8 + GAMECLIENT.GetGlobalAnimation(8, 5, 2, (GetX() + GetY()) * 100))
->Draw(x + BUILDING_SMOKE_CONSTS[nation][type - 10].x, y + BUILDING_SMOKE_CONSTS[nation][type - 10].y, 0, 0, 0, 0, 0, 0, 0x99EEEEEE);
}
// TODO: zusätzliche Dinge wie Mühlenräder, Schweinchen etc bei bestimmten Gebäuden zeichnen
// Bei Mühle, wenn sie nicht arbeitet, immer Mühlenräder (nichtdrehend) zeichnen
if(type == BLD_MILL && !is_working)
{
// Flügel der Mühle
LOADER.GetNationImageN(nation, 250 + 5 * 49)->Draw(x, y, 0, 0, 0, 0, 0, 0);
// Schatten der Flügel
LOADER.GetNationImageN(nation, 250 + 5 * 49 + 1)->Draw(x, y, 0, 0, 0, 0, 0, 0, COLOR_SHADOW);
}
// Esel in den Kammer bei Eselzucht zeichnen
else if(type == BLD_DONKEYBREEDER)
{
// Für alle Völker jeweils
// X-Position der Esel
const int DONKEY_X[NAT_COUNT][3] = {{13, 26, 39}, {3, 16, 30}, {2, 15, 29}, {7, 18, 30}, {3, 16, 30}};
// Y-Position
const int DONKEY_Y[NAT_COUNT] = { -9, -17, -21, -17, -22};
// Animations-IDS des Esels
const unsigned char DONKEY_ANIMATION[] =
{ 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 6, 5, 4, 4, 5, 6, 5, 7, 6, 5, 4, 3, 2, 1, 0 };
// Die drei Esel zeichnen mithilfe von Globalanimation
// Anzahl hängt von Produktivität der Eselzucht ab:
// 0-29 - kein Esel
// 30-60 - 1 Esel
// 60-90 - 2 Esel
// 90-100 - 3 Esel
if(productivity >= 30) LOADER.GetMapImageN(2180 + DONKEY_ANIMATION[GAMECLIENT.GetGlobalAnimation(sizeof(DONKEY_ANIMATION), 5, 2, GetX() * (player + 2))])->Draw(x + DONKEY_X[nation][0], y + DONKEY_Y[nation]);
if(productivity >= 60) LOADER.GetMapImageN(2180 + DONKEY_ANIMATION[GAMECLIENT.GetGlobalAnimation(sizeof(DONKEY_ANIMATION), 5, 2, GetY())])->Draw(x + DONKEY_X[nation][1], y + DONKEY_Y[nation]);
if(productivity >= 90) LOADER.GetMapImageN(2180 + DONKEY_ANIMATION[GAMECLIENT.GetGlobalAnimation(sizeof(DONKEY_ANIMATION), 5, 2, GetX() + GetY() * (nation + 1))])->Draw(x + DONKEY_X[nation][2], y + DONKEY_Y[nation]);
}
// Bei Katapulthaus Katapult oben auf dem Dach zeichnen, falls er nicht "arbeitet"
else if(type == BLD_CATAPULT && !is_working)
{
LOADER.GetImageN("rom_bobs", 1776)->Draw(x - 7, y - 19, 0, 0, 0, 0, 0, 0, COLOR_WHITE, COLOR_WHITE);
if(worker)
if(worker->GetObjId() == 696956)
NormalFont->Draw(x, y, "hallo", 0);
}
// Bei Schweinefarm Schweinchen auf dem Hof zeichnen
else if(type == BLD_PIGFARM && this->HasWorker())
{
// Position der 5 Schweinchen für alle 4 Völker (1. ist das große Schwein)
const int PIG_POSITIONS[NAT_COUNT][5][2] =
{
// gr. S. 1.klS 2. klS usw
{ {3, -8}, {17, 3}, { -12, 4}, { -2, 10}, { -22, 11} }, // Afrikaner
{ { -16, 0}, { -37, 0}, { -32, 8}, { -16, 10}, { -22, 18} }, // Japaner
{ { -15, 0}, { -4, 9}, { -22, 10}, {2, 19}, { -15, 20} }, // Römer
{ {5, -5}, {25, -12}, { -7, 7}, { -23, 11}, { -10, 14} }, // Wikinger
{ { -16, 5}, { -37, 5}, { -32, -1}, { -16, 15}, { -27, 18} } // Babylonier
};
/// Großes Schwein zeichnen
LOADER.GetMapImageN(2160)->Draw(
x + PIG_POSITIONS[nation][0][0], y + PIG_POSITIONS[nation][0][1], 0, 0, 0, 0, 0, 0, COLOR_SHADOW);
LOADER.GetMapImageN(2100 + GAMECLIENT.GetGlobalAnimation(12, 3, 1, GetX() + GetY() + obj_id))->Draw(
x + PIG_POSITIONS[nation][0][0], y + PIG_POSITIONS[nation][0][1]);
// Die 4 kleinen Schweinchen, je nach Produktivität
for(unsigned i = 1; i < min<unsigned>(unsigned(productivity) / 20 + 1, 5); ++i)
{
//A random (really, dice-rolled by hand:) ) order of the four possible pig animations, with eating three times as much as the others ones
//To get random-looking, non synchronous, sweet little pigs
const unsigned char smallpig_animations[63] =
{
0, 0, 3, 2, 0, 0, 1, 3, 0, 3, 1, 3, 2, 0, 0, 1,
0, 0, 1, 3, 2, 0, 1, 1, 0, 0, 2, 1, 0, 1, 0, 2,
2, 0, 0, 2, 2, 0, 1, 0, 3, 1, 2, 0, 1, 2, 2, 0,
0, 0, 3, 0, 2, 0, 3, 0, 3, 0, 1, 1, 0, 3, 0
};
const unsigned short animpos = GAMECLIENT.GetGlobalAnimation(63 * 12, 63 * 4 - i * 5, 1, 183 * i + GetX() * obj_id + GetY() * i);
//.........这里部分代码省略.........
示例11: LOG
HRESULT ui::UIRadioButtonGroup::Render(graphics::D3DInteropHelper *pD3DInteropHelper,
ID2D1RenderTarget *pRenderTarget) {
for (size_t i = 0; i < GetNumberOfElements(); ++i) {
auto element = std::dynamic_pointer_cast<UIRadioButton>(GetElement(i));
D2D1_MATRIX_3X2_F origMatrix;
pRenderTarget->GetTransform(&origMatrix);
D2D1_MATRIX_3X2_F matrix = origMatrix * D2D1::Matrix3x2F::Translation(element->GetX(), element->GetY());
pRenderTarget->SetTransform(matrix);
HRESULT hr = element->Render(pD3DInteropHelper, pRenderTarget);
if (FAILED(hr)) {
LOG(SEVERITY_LEVEL_ERROR) << L"render a child element failed, index = " << i << L", hr = " << hr;
}
pRenderTarget->SetTransform(origMatrix);
}
return S_OK;
}
示例12: SetHP
//鳥居
int CBossMystia::Torii(){
SetHP(2000);
SetTime(30);
deffence = 0;
for( int i = 0; i < 60; ++i ) {
x += ( 420 - GetX() ) / 60;
y += ( GAME_CENTER_Y - GetY() ) / 60;
Suspend(1);
}
deffence = 1;
Suspend(30);
while( 1 ) {
for( int k = 0; k < 2; ++k){
//攻撃
CTamaNormal tama;
tama.x = GetX();
tama.y = GetY();
tama.type = 3;
tama.color = 1;
tama.v = 1;
CDanmakuSegment d( &tama);
d.v2 = 1.5;
d.v1 = 1.5;
d.a1 = -20;
d.a2 = -180+20;
d.Set( 4+4*GetDifficult() );
d.Fire();
g_pMaterial->sndFire.Play(0);
Suspend(40);
d.a1 = -40;
d.a2 = +60;
d.Set( 4+4*GetDifficult() );
d.Fire();
d.a1 = 180-60;
d.a2 = 180+40;
d.Set( 4+4*GetDifficult() );
d.Fire();
g_pMaterial->sndFire.Play(0);
Suspend(40);
d.a1 = -20;
d.a2 = -180+20;
d.Set( 4+4*GetDifficult() );
d.Fire();
g_pMaterial->sndFire.Play(0);
Suspend(120);
//移動
const int move_count = 30;
int xv,yv;
if( k ) {
xv = 400 - GetX();
yv = GAME_TOP + 120 - GetY();
}
else {
xv = 500 - GetX();
yv = GAME_BOTTOM - 120 - GetY();
}
for( int i = 0; i < move_count; i++ ) {
x += xv / move_count;
y += yv / move_count;
mt.Suspend(1);
}
mt.Suspend(120);
}
}
return 1;
}
示例13: CTalkMystia2
//.........这里部分代码省略.........
SetHP(1000);
SetTime(30);
fnb.SetFunction(this,&CBossMystiaBase::NormalAtack1);
mt.Start(&fnb,0x8000);
while( !IsEnd() ) mt3.Suspend();
mt.Stop();
//横符
SpellCard();
fn.SetFunction(this,&CBossMystia::Yoko);
mt.Start(&fn,0x8000);
while( !IsEnd() ) mt3.Suspend();
mt.Stop();
SpellEnd();
//通常攻撃
SetHP(1500);
SetTime(40);
fnb.SetFunction(this,&CBossMystiaBase::NormalAtack1);
mt.Start(&fnb,0x8000);
while( !IsEnd() ) mt3.Suspend();
mt.Stop();
//縦符
SpellCard();
fn.SetFunction(this,&CBossMystia::Tate);
mt.Start(&fn,0x8000);
while( !IsEnd() ) mt3.Suspend();
mt.Stop();
SpellEnd();
//通常攻撃
SetHP(2000);
SetTime(40);
fnb.SetFunction(this,&CBossMystiaBase::NormalAtack1);
mt.Start(&fnb,0x8000);
while( !IsEnd() ) mt3.Suspend();
mt.Stop();
//闇符
yami = 1;
yami_r = 120;
SpellCard();
fn.SetFunction(this,&CBossMystia::Yoko);
mt.Start(&fn,0x8000);
while( !IsEnd() ) mt3.Suspend();
mt.Stop();
SpellEnd();
//幕間
flag = 0;
deffence = 0;
mt.Stop();
mt3.Suspend(60);
//酉符
yami = 1;
yami_r = 60;
SpellCard();
fn.SetFunction(this,&CBossMystia::Tate);
mt.Start(&fn,0x8000);
while( !IsEnd() ) mt3.Suspend();
mt.Stop();
SpellEnd();
//幕間
flag = 0;
deffence = 0;
mt.Stop();
mt3.Suspend(60);
//半円
yami = 0;
SpellCard();
fn.SetFunction(this,&CBossMystia::HalfCircle);
mt.Start(&fn,0x8000);
while( !IsEnd() ) mt3.Suspend();
mt.Stop();
SpellEnd();
//エフェクト
mt.Stop();
flag = 0;
deffence = 0;
g_lEffect.Add( new CEffectBreak( GetX(), GetY() ));
g_pPlayer->Talk();
mt3.Suspend( 60 );
//画面外へ
x=1000;
//会話
pTalk = new CTalkMystia3();
pTalk->Start();
while( !pTalk->IsEnd() )
mt3.Suspend();
SAFE_DELETE(pTalk);
return 1;
}
示例14: Initialize
func Initialize()
{
SetAction("Travel");
SetRDir(10);
SetObjectLayer(nil);
//AddEffect("MoveTo", this, 1, 1, this);
ox=GetX();
oy=GetY();
rangedummy = CreateObject(Dummy, 0, 0, GetOwner());
rangedummy.Visibility = VIS_Owner;
rangedummy->SetAction("HangOnto", this);
var props =
{
R = 255,
G = 0,
B = 0,
Alpha = 40,
Size = 70,
BlitMode = GFX_BLIT_Additive,
Rotation = PV_Step(10, 0, 1),
Attach = ATTACH_Back | ATTACH_MoveRelative
};
rangedummy->CreateParticle("Shockwave2", 0, 0, 0, 0, 0, props, 1);
moveparticle =
{
Alpha = 100,
Size = AttackSize * 2,
R = pR,
G = pG,
B = pB,
Rotation = PV_Random(0,360),
BlitMode = GFX_BLIT_Additive,
};
moveparticle2 =
{
Size = PV_Linear(2,0),
BlitMode = GFX_BLIT_Additive,
R = pR,
G = pG,
B = pB,
Attach=ATTACH_Back,
};
movetrailparticles =
{
Size = PV_Linear(5,0),
BlitMode = GFX_BLIT_Additive,
R = pR,
G = pG,
B = pB,
Attach=ATTACH_Back,
};
followtrailparticles =
{
Size = PV_Linear(5,0),
BlitMode = GFX_BLIT_Additive,
R = 50,
G = 50,
B = 50,
Attach=ATTACH_Back,
};
hometrailparticles =
{
Size = PV_Linear(5,0),
BlitMode = GFX_BLIT_Additive,
R = 0,
G = 255,
B = 255,
Attach=ATTACH_Back,
};
hometrailparticles2 =
{
Size = PV_Linear(2,0),
BlitMode = GFX_BLIT_Additive,
R = 0,
G = 255,
B = 255,
Attach=ATTACH_Back,
};
}
示例15: TO_USER
/**
* @brief Executes the death process.
*
* @param pKiller The killer.
*/
void CNpc::OnDeathProcess(Unit *pKiller)
{
CUser * pUser = TO_USER(pKiller);
if (TO_NPC(this) != nullptr && pUser != nullptr)
{
if (pUser->isPlayer())
{
if (!m_bMonster)
{
switch (m_tNpcType)
{
case NPC_BIFROST_MONUMENT:
pUser->BifrostProcess(pUser);
break;
case NPC_PVP_MONUMENT:
PVPMonumentProcess(pUser);
break;
default:
break;
}
}
else if (m_bMonster) // Seed Quest
{
if (m_sSid == 700 || m_sSid == 750)
{
if (pUser->CheckExistEvent(STARTER_SEED_QUEST, 1))
pUser->SaveEvent(STARTER_SEED_QUEST, 2);
} else if (g_pMain->m_MonsterRespawnListArray.GetData(m_sSid) != nullptr) {
if (pUser->isPVPZone() || GetZoneID() == ZONE_JURAD_MOUNTAIN)
g_pMain->SpawnEventNpc(g_pMain->m_MonsterRespawnListArray.GetData(m_sSid)->sSid, true, GetZoneID(), GetX(), GetY(), GetZ(), g_pMain->m_MonsterRespawnListArray.GetData(m_sSid)->sCount);
} else if (m_tNpcType == NPC_CHAOS_STONE && pUser->isPVPZone()) {
ChaosStoneProcess(pUser,5);
}
}
}
}
}