-
+166
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
int32 chance;
if (SkillValue <= 115)
{
chance = 100;
}
else if (SkillValue > 115 && SkillValue <= 150)
{
chance = 50;
}
else if (SkillValue > 150 && SkillValue <= 170)
{
chance = 33,33;
}
else if (SkillValue > 170 && SkillValue <= 190)
{
chance = 25;
}
else if (SkillValue > 190 && SkillValue <= 215)
{
chance = 20;
}
else if (SkillValue > 215 && SkillValue <= 235)
{
chance = 16,67;
}
else if (SkillValue > 235 && SkillValue <= 260)
{
chance = 14,29;
}
else if (SkillValue > 260 && SkillValue <= 280)
{
chance = 12,5;
}
else if (SkillValue > 280 && SkillValue <= 325)
{
chance = 11,11;
}
else if (SkillValue > 325 && SkillValue <= 365)
{
chance = 10;
}
else if (SkillValue > 365 && SkillValue <= 450)
{
chance = 9,09;
}
else if (SkillValue > 450 && SkillValue <= 500)
{
chance = 11,11;
}
else if (SkillValue > 500)
{
chance = 10;
}
Формулы? Нет, не слышал.
chaoswithin,
27 Августа 2011
-
+163
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
/* allocate memory for the extended format buffer */
extFormat = new char [ strlen( format ) +
strlen( "\n" ) +
1 ];
if ( (char*)0 != extFormat )
{
/* extend format info */
sprintf ( extFormat, "%s", format );
strcat ( extFormat, "\n" );
}
из реализации логгера. просто нет слов.
Dummy00001,
26 Августа 2011
-
+147
- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
void Character::getWalkScreenDirection(SPVector& dst) {
float stick_y = 0.0f, stick_x = 0.0f;
/*if(isPadMove())*/ {
stick_y = getOffsetLY();
stick_x = getOffsetLX();
}/*else*/{
//stick_y = angleAC_DIRECTION[animator.animation.getDirection()][0];
//stick_x = angleAC_DIRECTION[animator.animation.getDirection()][1];
/*
if(stick_y == 0 && stick_x == 0){
animator.animation.set(AC_DIRECTION_NONE); // stop walking
animator.animation.set(AC_MOVEMENT_IDLE);
animator.animation.update();
}*/ }
dst.asg(0,0,0);
/* if(animator.animation.getDirection() == AC_DIRECTION_NONE){
//CameraCore* camera = game.get_camera();
camera = game.get_camera();
cam_up = camera->up();
SPVector up_tmp = camera->up();
SPVector look = camera->look();
SPVector look_tmp = camera->look();
cam_right = up_tmp.cross(look_tmp);
return;
} */
SPPosition current;
model.getRootPose(current);
bool isRun = this->isRun();
if(animator.getTarget()){
if(animator.getTarget()->get_run(current, isRun)){ // run stance can overwrite depend from target
state(CharacterFlags_MODE_SWAPRUN, true);
state(CharacterFlags_MODE_RUN,isRun);
}
}
CameraCore* camera_compare = game.get_camera();
SPVector cam_compare_pos = camera_compare->pos();
if(cam_compare_pos != cam_pos) {
if(first_time) {
cam_time = game.time.system.current_value(1);
cam_time /= 1000;
first_time = false;
first_stick_x = stick_x; //premiere fois : on rйcup la position du stick en x et y
first_stick_y = stick_y;
}
double move_time = game.time.system.current_value(1);
move_time /= 1000;
if(move_time - cam_time < delta_time) {
//stick_y = first_stick_y;
//stick_x = first_stick_x;
/*if(dst.len() != 0)
{
//animator.animation.set(AC_DIRECTION_FORWARD); // for the animation
animator.animation.enable(true);
animator.animation.set(isRun?AC_MOVEMENT_RUN:AC_MOVEMENT_WALK);
dst.norm();
model.setDirection(dst); // facing the direction
}
return;*/
}
}
if(stick_y==0 && stick_x==0) initializeCameraAxis();
SPVector new_direction;
new_direction.asg(stick_x, 0, stick_y);
if(new_direction.len() != 0) new_direction.norm();
if(direction_reference.len() != 0) direction_reference.norm();
float scalar_product = new_direction.dot(direction_reference);
if(fabs(scalar_product) <= delta) {
direction_reference.asg(new_direction);
initializeCameraAxis();
}
if(cam_compare_pos == cam_pos || (cam_compare_pos != cam_pos && fabs(scalar_product) <= delta)) {
first_time = true;
SPVector up = cam_up;
SPVector right = cam_right;
up.y = 0;
right.y = 0;
// CameraCore* camera_2 = game.get_camera(); //rйtablissement d'une camйra inversйe
// SPPosition pos_test = camera_2->sview();
// SPVector vec_test = pos_test.c;
SPVector vec_test = cam_pos;
SPVector vec_stock;
vec_stock.asg(69.8761444,2.45131993,117.599548);
if(vec_test.equal(vec_stock,0.0000001f)) {
up.x = - up.x;
up.z = - up.z;
}
////////////////
if(up.len() != 0) up.norm();
if(right.len() != 0) right.norm();
up *= stick_y;
right *= stick_x;
dst = up; // update destination vector
dst += right; // i.e. dst = up + right
if(dst.len() != 0) {
//animator.animation.set(AC_DIRECTION_FORWARD); // for the animation
animator.animation.enable(true);
animator.animation.set(isRun?AC_MOVEMENT_RUN:AC_MOVEMENT_WALK);
dst.norm();
model.setDirection(dst); // facing the direction
}
Такой код в нашем движке.
ЗЫ. Код немного ужат, так как не помещался в 100 строк.
MAGnit,
26 Августа 2011
-
+159
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
Obj = 0;
while (dsmodel1.tellg () < LEN)
{
dsmodel1.read ( (char*)&ID, 2);
dsmodel1.read ( (char*)&length, 4);
switch (ID)
{
case 0x4d4d: break;
case 0xb000: break;
case 0xb002: break;
case 0xb010:
char ch;
do
{
dsmodel1.read ( (char*)&ch, 1);
}while (ch != '\0' && !dsmodel1.eof ());
dsmodel1.ignore (4);
dsmodel1.read ( (char*)&father_id [Obj], 2); // айди родительского объекта в иерархии
break;
case 0xb013:
dsmodel1.read ( (char*)&(pivot [Obj].x), 4); //координаты точки, вокруг которой будет вращаться объект
dsmodel1.read ( (char*)&(pivot [Obj].y), 4);
dsmodel1.read ( (char*)&(pivot [Obj].z), 4);
break;
case 0xb020: // это поле описывает перенос объекта
dsmodel1.ignore (10);
number_of_keys [Obj] = new DWORD;
dsmodel1.read ( (char*)&(number_of_keys [Obj][0]), 4); //сколько кадров анимации будет у объекта
key_number [Obj] = new DWORD [number_of_keys [Obj][0]];
frameTran [Obj] = new D3DXVECTOR3 [number_of_keys [Obj][0]];
how_much_to_ignore = 0;
accel_flags = 0;
for (i = 0; i < number_of_keys [Obj][0]; i++)
{
dsmodel1.read ( (char*)&(key_number [Obj][i]), 4);
dsmodel1.read ( (char*)&(accel_flags), 2); //это флаги сплайнов, в этом примере всегда = 0
if (accel_flags && (1 << 15)) how_much_to_ignore++;
if (accel_flags && (1 << 14)) how_much_to_ignore++;
if (accel_flags && (1 << 13)) how_much_to_ignore++;
//...
dsmodel1.read ( (char*)&(frameRot [Obj][i].y), 4); // как я понял он должен быть помещен в точку pivot (она считывалась выше в поле 0хb013)
//...
case 0xb030:
dsmodel1.read ( (char*)&(hierarchy_id [Obj]), 2); // номер объекта в иерархии, в нашем примере = номеру объекта по порядку считывания
Полный код:
http://www.gamedev.ru/code/forum/?id=151570
CPPGovno,
26 Августа 2011
-
+164
- 1
- 2
- 3
FrmCabinetFound *frm = new FrmCabinetFound(index.data(Qt::UserRole).toInt());
((QMdiArea*)this->parent()->parent()->parent())->addSubWindow(frm);
frm->show();
des-1008d,
25 Августа 2011
-
+167
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
char *sLoop = new char[4];
_itoa(i, sLoop, 10);
string strField = fp1 + sLoop + fp2;
char *str = new char[255];
for (int i=0; i<=sizeof(strField); i++)
str[i] = strField[i];
_bstr_t impFieldName(str);
// думаю, очевдно, что delete нигде не было. ;)
Говногость,
25 Августа 2011
-
+144
- 1
- 2
- 3
- 4
class GameDevTroll:public Troll{};
GameDevTroll TarasB;
TarasB.throwIn( Url("Какие проблемы в данных отрывках кода? (5 стр)") );
http://www.gamedev.ru/flame/forum/?id=150336&page=5#m65
TarasB:
>Крестоламеры такие крестоламеры.
CPPGovno,
24 Августа 2011
-
+148
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
void init()
{
letters.push_back("q");
letters.push_back("w");
letters.push_back("e");
letters.push_back("r");
letters.push_back("t");
letters.push_back("y");
letters.push_back("u");
letters.push_back("i");
letters.push_back("o");
letters.push_back("p");
letters.push_back("a");
letters.push_back("s");
letters.push_back("d");
letters.push_back("f");
letters.push_back("g");
letters.push_back("h");
letters.push_back("j");
letters.push_back("k");
letters.push_back("l");
letters.push_back("z");
letters.push_back("x");
letters.push_back("c");
letters.push_back("v");
letters.push_back("b");
letters.push_back("n");
letters.push_back("m");
letters.push_back("0");
letters.push_back("1");
letters.push_back("2");
letters.push_back("3");
letters.push_back("4");
letters.push_back("5");
letters.push_back("6");
letters.push_back("7");
letters.push_back("8");
letters.push_back("9");
}
пусть кому-то станет стыдно!
Lure Of Chaos,
24 Августа 2011
-
+161
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
int b;
int c();
template<class u, class v>
struct IsSameType
{
enum {r=0};
};
template<class u>
struct IsSameType<u,u>
{
enum {r=1};
};
//...
cout<<IsSameType<decltype(b),decltype(c())>::r<<endl;
cout<<IsSameType<decltype(b),decltype((b))>::r<<endl;
cout<<IsSameType<decltype(c()),decltype((b))>::r<<endl;
Сегодня увидим новую плюшку, что нам подарил новый стандарт С++0х.
1)Что на экране получим после выполнения данной программы?
2)Какие реально decltype возвращает типы в данных случаях?
Желательно ответить на оба вопроса, не компилируя. ^_^
Говногость,
21 Августа 2011
-
+146
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
// file.h
template <class T>
void gg (T i)
{
a = i;
}
// file1.cpp
#include "file.h"
static int a;
...
gg (a);
// file2.cpp
static int a;
...
gg (a);
// компилюем, линкуем - где напёрсточек^W^W в какое a стучится gg<int>?
>Мне тут некоторые граждане, на пару с некоторыми компиляторами и стандартом наперевес, пытались неубедительно доказывать, что-де такого не позволяет ODR, но пояснить свою мысль в математически непротиворечивой форме что-то не получилось. А между тем, не грех было бы взять пример с презренного пхп и заставить программизда все глобальные переменные, используемые в какой-либо функции, специфицировать в ней явным образом.
CPPGovno,
21 Августа 2011