Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- npc script wolfie
- {
- void run()
- {
- int clks[3];
- eweapon bite = Screen->CreateEWeapon(EW_SCRIPT1);
- bite->DrawYOffset = -32768;
- clks[1] = Rand(120,210);
- clks[2] = 60;
- while(1)
- {
- if( (--clks[1]) < 1 )
- {
- clks[1] = Rand(120,210);
- //slow down
- do
- {
- --this->Step;
- nmes::transform2x1(this,clks);
- bite->DeadState = WDS_ALIVE;
- Waitframe();
- } while(this->Step > 0);
- //change dir
- this->Dir = Rand(4);
- nmes::transform2x1(this,clks);
- //speed up
- do
- {
- ++this->Step;
- nmes::transform2x1(this,clks);
- bite->DeadState = WDS_ALIVE;
- Waitframe();
- }
- while (this->Step < Game->LoadNPCData(this->ID)->Step);
- }
- nmes::transform2x1(this,clks);
- //this->HaltingWalk({this->Rate, this->Homing, 0, this->Haltrate, Game->LoadNPCData(this->ID)->Random});
- //this->ConstantWalk({this->Rate, this->Homing, this->Hunger});
- bite->DeadState = WDS_ALIVE;
- Waitframe();
- }
- }
- }
- namespace nmes
- {
- void transformbite(npc n, eweapon e)
- {
- bite->X = n->X-n->HitXOffset;
- bite->Y = n->Y-n->HitYOffset;
- }
- void transform2x1(npc n, int clk)
- {
- ++clk[0];
- int f4 = Floor(clk[0]/(n->ASpeed/4));
- if( f4 >= 4 ) { f4 = 0; clk[0] = 0;}
- switch(n->Dir)
- {
- case DIR_DOWN:
- n->Tile = (Game->LoadNPCData(n->ID)->Tile) + 4 + f4;
- n->OriginalTile = n->Tile;
- n->HitXOffset = 0;
- n->HitYOffset = -16;
- n->DrawXOffset = 0;
- n->DrawYOffset = -16;
- n->TileWidth = 1;
- n->TileHeight = 2;
- n->HitWidth = 16;
- n->HitHeight = 32;
- break;
- case DIR_RIGHT:
- n->Tile = (Game->LoadNPCData(n->ID)->Tile) + 60 + (f4 * 2);
- n->OriginalTile = n->Tile;
- n->HitXOffset = -16;
- n->HitYOffset = 0;
- n->DrawXOffset = -16;
- n->DrawYOffset = 0;
- n->TileWidth = 2;
- n->TileHeight = 1;
- n->HitWidth = 32;
- n->HitHeight = 16;
- break;
- case DIR_LEFT:
- n->Tile = (Game->LoadNPCData(n->ID)->Tile) + 40 + (f4 *2);
- n->OriginalTile = n->Tile;
- n->TileWidth = 2;
- n->TileHeight = 1;
- n->HitWidth = 32;
- n->HitHeight = 16;
- n->HitXOffset = 0;
- n->HitYOffset = 0;
- n->DrawXOffset = 0;
- n->DrawYOffset = 0;
- break;
- case DIR_UP:
- n->Tile = (Game->LoadNPCData(n->ID)->Tile) + f4;
- n->OriginalTile = n->Tile;
- n->TileWidth = 1;
- n->TileHeight = 2;
- n->HitWidth = 16;
- n->HitHeight = 32;
- n->HitXOffset = 0;
- n->HitYOffset = 0;
- n->DrawXOffset = 0;
- n->DrawYOffset = 0;
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement