jewalky

Untitled

Mar 24th, 2016
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.51 KB | None | 0 0
  1. #library "SEPAMMO"
  2. #include "zcommon.acs"
  3.  
  4. int SA_CurrentTID = 0;
  5. int SA_CurrentTIDOld = 0;
  6.  
  7. script "SA_Register" (void)
  8. {
  9.     SA_CurrentTIDOld = ActivatorTID();
  10.     SA_CurrentTID = UniqueTID();
  11.     Thing_ChangeTID(0, SA_CurrentTID);
  12. }
  13.  
  14. script "SA_Unregister" (void)
  15. {
  16.     Thing_ChangeTID(0, SA_CurrentTIDOld);
  17.     SA_CurrentTIDOld = 0;
  18.     SA_CurrentTID = 0;
  19. }
  20.  
  21. script "SA_Pickup" (void)
  22. {
  23.     printbold(s:"pickup!");
  24.  
  25.     int tid = SA_CurrentTID;
  26.     int playernum = PlayerNumber();
  27.  
  28.     bool pickedupalready;
  29.     if (playernum > 31)
  30.     {
  31.         pickedupalready = !!(GetUserVariable(tid, "user_players2") & (1<<(playernum-32)));
  32.     }
  33.     else
  34.     {
  35.         pickedupalready = !!(GetUserVariable(tid, "user_players1") & (1<<(playernum)));
  36.     }
  37.    
  38.     if (pickedupalready)
  39.         terminate;
  40.  
  41.     str classnametogive = "";
  42.     // I think strmid is 2.7.1. let's just do it manually for now.
  43.     str classname = GetActorClass(tid);
  44.     printbold(s:classname);
  45.     if (GetChar(classname, 0) != 'S' ||
  46.         GetChar(classname, 1) != 'A' ||
  47.         GetChar(classname, 2) != '_') terminate;
  48.  
  49.     for (int i = 3; i < strlen(classname); i++)
  50.         classnametogive = strparam(s:classnametogive, c:GetChar(classname, i));
  51.        
  52.     // remember that this player has picked up the item.
  53.     if (playernum > 31)
  54.     {
  55.         SetUserVariable(tid, "user_players2", GetUserVariable(tid, "user_players2") | (1<<(playernum-32)));
  56.     }
  57.     else
  58.     {
  59.         SetUserVariable(tid, "user_players1", GetUserVariable(tid, "user_players1") | (1<<(playernum)));
  60.     }
  61.  
  62.     // give the item.
  63.     //
  64.     print(s:"giving item to player ", d:playernum);
  65. }
Advertisement
Add Comment
Please, Sign In to add comment