Advertisement
Guest User

Untitled

a guest
Jul 11th, 2017
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Per 1.36 KB | None | 0 0
  1. //Luca Test script monster random-move
  2. void* x=0;
  3. void* y=0;
  4. void* spawn_x=0;
  5. void* spawn_y=0;
  6.  
  7. #define WALK_LIMIT 150
  8.  
  9. //KaSahto setzt die Events von selber..
  10. void onRandomWalk(void* monster)
  11. {
  12.     int* mob_x=get(monster,x);
  13.     int* mob_y=get(monster,y);
  14.  
  15.     int mob_spawn_x=*get(monster,spawn_x);
  16.     int mob_spawn_y=*get(monster,spawn_y); 
  17.  
  18.     char walk_x=rand();
  19.     char walk_y=rand();
  20.     int  walk_dist=rand()%25+25;
  21.     int dist=(int)walk_x*(int)walk_x+(int)walk_y*(int)walk_y+1; //+1 damit nie 0
  22.     walk_x=((int)walk_x*walk_dist)/dist;
  23.     walk_y=((int)walk_y*walk_dist)/dist;
  24.  
  25.     int new_x=*mob_x + walk_x;
  26.     int new_y=*mob_y + walk_y;
  27.    
  28.     if (((new_x-WALK_LIMIT) >  mob_spawn_x)||
  29.         ((new_x+WALK_LIMIT) <  mob_spawn_x))
  30.         walk_x=-walk_x;
  31.  
  32.     if (((new_y-WALK_LIMIT) >  mob_spawn_y)||
  33.         ((new_y+WALK_LIMIT) <  mob_spawn_y))
  34.         walk_y=-walk_y;
  35.  
  36.     *mob_x+=walk_x;
  37.     *mob_y+=walk_y;
  38.     sendMove(monster, walk_x, walk_y, false);
  39. }
  40.  
  41. const char* init(int state)
  42. {
  43.     //wird von jeden neuen script-instance aufgerufen
  44.     if ((x=getVariable("x")) == 0)
  45.         return "x wurde nicht gefunden";
  46.     if ((y=getVariable("y")) == 0)
  47.         return "y wurde nicht gefunden";
  48.     if ((x=getVariable("spawn_x")) == 0)
  49.         return "spawn_x wurde nicht gefunden";
  50.     if ((y=getVariable("spawn_y")) == 0)
  51.         return "spawn_y wurde nicht gefunden";
  52. }
  53.  
  54. void deinit()
  55. {
  56.     //wird aufgerufen wenn script entladet wird..
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement