SVN Builds
#11
Here's an example in cChicken.cpp


Code:
if( (rand() % 5) == 0 ) { cPickup* Pickup = new cPickup( (int)(m_Pos->x*32), (int)(m_Pos->y*32), (int)(m_Pos->z*32), cItem( E_ITEM_EGG, 1 ) ); Pickup->Initialize( GetWorld() ); } if( (rand() % 1) == 0 ) { cPickup* Pickup = new cPickup( (int)(m_Pos->x*32), (int)(m_Pos->y*32), (int)(m_Pos->z*32), cItem( E_ITEM_FEATHER, 1 ) ); Pickup->Initialize( GetWorld() ); }


20% chance to drop an egg and 100% chance to drop a feather. Both can happen at the same time. After you run Pickup->Initialize( GetWorld() ); you can create the object again.
Reply
Thanks given by:
#12
Weird..
When i do 2 times without the if 2 pickup i get a error.

Edit:
Code:
void cCavespider::KilledBy( cEntity* a_Killer ) { //0 to 1 spider eye - 1.9 pre2 cPickup* Pickup = new cPickup( (int)(m_Pos->x*32), (int)(m_Pos->y*32), (int)(m_Pos->z*32), cItem( E_ITEM_SPIDER_EYE, (rand() % 1) ) ); Pickup->Initialize( GetWorld() ); //0 to 2 string. cPickup* Pickup = new cPickup( (int)(m_Pos->x*32), (int)(m_Pos->y*32), (int)(m_Pos->z*32), cItem( E_ITEM_STRING, (rand() % 3) ) ); Pickup->Initialize( GetWorld() ); cMonster::KilledBy( a_Killer ); }
Like this i get a error also when i only do once pickup->init
Also not actually dropping the spider eye just a sample.
Reply
Thanks given by:
#13
(rand() % 3) ranges between 0 and 2, if you want a value between 1 and 2, use (rand()%2+1)

Also, you're declaring the same variable twice (illegal)
Reply
Thanks given by:
#14
Variable scope issues perhaps. Enclosing the individual cPickup* Pickup ensures there's no overlap.
Code:
void cCavespider::KilledBy( cEntity* a_Killer ) { { //0 to 1 spider eye - 1.9 pre2 cPickup* Pickup = new cPickup( (int)(m_Pos->x*32), (int)(m_Pos->y*32), (int)(m_Pos->z*32), cItem( E_ITEM_SPIDER_EYE, (rand() % 1) ) ); Pickup->Initialize( GetWorld() ); } { //0 to 2 string. cPickup* Pickup = new cPickup( (int)(m_Pos->x*32), (int)(m_Pos->y*32), (int)(m_Pos->z*32), cItem( E_ITEM_STRING, (rand() % 3) ) ); Pickup->Initialize( GetWorld() ); } cMonster::KilledBy( a_Killer ); }
Reply
Thanks given by:
#15
I'm compiling it now. It's been going for 10 minutes now. Not quite sure what to do after Squirrel is compiled though. lol
Reply
Thanks given by:
#16
I think there's a bug in the makefile that makes it loopTongue So I don't think it's gonna finish any time soon. Anyway, the squirrel library compiles, but try to compile SquirrelBindings.cpp in the /source folder and it should give you those errors
Reply
Thanks given by:
#17
After changing the makefile to include squirrel_3_0_1_stable/sqplus/, I'm getting these errors:


Code:
/usr/bin/g++ -msse4 -O2 -s source/cPluginManager.cpp -c -I. -Isource -Isquirrel_3_0_1_stable/ -Isquirrel_3_0_1_stable/include -Isource/md5 -IWebServer -Isource/packets -Itolua++-1.0.93/src/lib -Ilua-5.1.4/src -Izlib-1.2.5 -IiniFile -Itolua++-1.0.93/include -Ijsoncpp-src-0.5.0/include -Ijsoncpp-src-0.5.0/src/lib_json -o build/cPluginManager.o In file included from source/cPluginManager.cpp:16: squirrel_3_0_1_stable/sqplus/sqplus.h: In function âvoid SqPlus::createTableSetGetHandlers(SquirrelObject&)â: squirrel_3_0_1_stable/sqplus/sqplus.h:553: error: invalid conversion from âint (*)(SQVM*)â to âSQInteger (*)(SQVM*)â squirrel_3_0_1_stable/sqplus/sqplus.h:553: error: initializing argument 2 of âstatic SquirrelObject SquirrelVM::CreateFunction(SquirrelObject&, SQInteger (*)(SQVM*), const SQChar*, const SQChar*)â squirrel_3_0_1_stable/sqplus/sqplus.h:554: error: invalid conversion from âint (*)(SQVM*)â to âSQInteger (*)(SQVM*)â squirrel_3_0_1_stable/sqplus/sqplus.h:554: error: initializing argument 2 of âstatic SquirrelObject SquirrelVM::CreateFunction(SquirrelObject&, SQInteger (*)(SQVM*), const SQChar*, const SQChar*)â squirrel_3_0_1_stable/sqplus/sqplus.h: In function âvoid SqPlus::createInstanceSetGetHandlers(SquirrelObject&)â: squirrel_3_0_1_stable/sqplus/sqplus.h:584: error: invalid conversion from âint (*)(SQVM*)â to âSQInteger (*)(SQVM*)â squirrel_3_0_1_stable/sqplus/sqplus.h:584: error: initializing argument 2 of âstatic SquirrelObject SquirrelVM::CreateFunction(SquirrelObject&, SQInteger (*)(SQVM*), const SQChar*, const SQChar*)â squirrel_3_0_1_stable/sqplus/sqplus.h:585: error: invalid conversion from âint (*)(SQVM*)â to âSQInteger (*)(SQVM*)â squirrel_3_0_1_stable/sqplus/sqplus.h:585: error: initializing argument 2 of âstatic SquirrelObject SquirrelVM::CreateFunction(SquirrelObject&, SQInteger (*)(SQVM*), const SQChar*, const SQChar*)â In file included from squirrel_3_0_1_stable/sqplus/sqplus.h:886, from source/cPluginManager.cpp:16: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h: In function âchar SqPlus::Get(SqPlus::TypeWrapper<char>, SQVM*, int)â: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h:60: error: cannot convert âINT*â to âSQInteger*â for argument â3â to âSQRESULT sq_getinteger(SQVM*, SQInteger, SQInteger*)â squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h: In function âunsigned char SqPlus::Get(SqPlus::TypeWrapper<unsigned char>, SQVM*, int)â: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h:61: error: cannot convert âINT*â to âSQInteger*â for argument â3â to âSQRESULT sq_getinteger(SQVM*, SQInteger, SQInteger*)â squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h: In function âshort int SqPlus::Get(SqPlus::TypeWrapper<short int>, SQVM*, int)â: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h:62: error: cannot convert âINT*â to âSQInteger*â for argument â3â to âSQRESULT sq_getinteger(SQVM*, SQInteger, SQInteger*)â squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h: In function âshort unsigned int SqPlus::Get(SqPlus::TypeWrapper<short unsigned int>, SQVM*, int)â: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h:63: error: cannot convert âINT*â to âSQInteger*â for argument â3â to âSQRESULT sq_getinteger(SQVM*, SQInteger, SQInteger*)â squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h: In function âint SqPlus::Get(SqPlus::TypeWrapper<int>, SQVM*, int)â: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h:64: error: cannot convert âINT*â to âSQInteger*â for argument â3â to âSQRESULT sq_getinteger(SQVM*, SQInteger, SQInteger*)â squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h: In function âunsigned int SqPlus::Get(SqPlus::TypeWrapper<unsigned int>, SQVM*, int)â: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h:65: error: cannot convert âINT*â to âSQInteger*â for argument â3â to âSQRESULT sq_getinteger(SQVM*, SQInteger, SQInteger*)â squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h: In function âlong int SqPlus::Get(SqPlus::TypeWrapper<long int>, SQVM*, int)â: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h:66: error: cannot convert âINT*â to âSQInteger*â for argument â3â to âSQRESULT sq_getinteger(SQVM*, SQInteger, SQInteger*)â squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h: In function âlong unsigned int SqPlus::Get(SqPlus::TypeWrapper<long unsigned int>, SQVM*, int)â: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h:67: error: cannot convert âINT*â to âSQInteger*â for argument â3â to âSQRESULT sq_getinteger(SQVM*, SQInteger, SQInteger*)â squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h: In function âbool SqPlus::Get(SqPlus::TypeWrapper<bool>, SQVM*, int)â: squirrel_3_0_1_stable/sqplus/SqPlusFunctionCallImpl.h:80: error: cannot convert âINT*â to âSQInteger*â for argument â3â to âSQRESULT sq_getinteger(SQVM*, SQInteger, SQInteger*)â
Reply
Thanks given by:
#18
Funky â's everywhere, what's up with that
Reply
Thanks given by:
#19
Since this thread has pretty much derailed into discussing development of MCServer, I've moved it
Reply
Thanks given by:
#20
Weird this code should work right ?
Code:
void cCow::KilledBy( cEntity* a_Killer ) { //1 to 3 raw beef. int rRawBeef = rand() % 1 + 3; if (rRawBeef != 0) { cPickup* pRawBeef = new cPickup( (int)(m_Pos->x*32), (int)(m_Pos->y*32), (int)(m_Pos->z*32), cItem( E_ITEM_RAW_BEEF, rRawBeef ) ); pRawBeef->Initialize( GetWorld() ); } //0 to 2 leather. int rLeather = rand() % 3; if (rLeather != 0) { cPickup* pLeather = new cPickup( (int)(m_Pos->x*32), (int)(m_Pos->y*32), (int)(m_Pos->z*32), cItem( E_ITEM_LEATHER, rLeather ) ); pLeather->Initialize( GetWorld() ); } cMonster::KilledBy( a_Killer ); }
Still it crashes the client when i kill a cow.
Reply
Thanks given by:




Users browsing this thread: 1 Guest(s)