Advertisement
DManstrator

Trollstein mit variabeler Brennzeit

Aug 4th, 2013
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. /*-- Trollstein --*/
  2.  
  3. #strict 2
  4.  
  5. local pThrower;
  6. static iTime;
  7.  
  8. func Initialize() {
  9.  
  10. return(1);
  11. }
  12.  
  13. protected func Departure(object thrower) {
  14. if(thrower->~IsClonk())
  15. pThrower = thrower;
  16. }
  17.  
  18. protected func Hit() {
  19. var iEvent = Random(5);
  20. CastParticles("TrollParticle", RandomX(5,10), 10, 0, 0, 60, 80, RGB(255,255,255), RGB(255,255,255));
  21. if(pThrower){
  22. if(!iEvent) {
  23. AddEffect("LimitedFire", pThrower, 101, 1, 0, TSTN, iTime);
  24. RemoveObject();
  25. return;
  26. }
  27. if(iEvent == 2) {
  28. CastObjects(FLNT, 10, 500, GetX(pThrower)-GetX(), GetY(pThrower)-20-GetY());
  29. RemoveObject();
  30. return;
  31. }
  32. if(iEvent == 3) {
  33. Schedule(Format("Message(\"Ich bin zu doof, um den Trollstein richtig einzusetzen. :/\", Object(%d))", ObjectNumber(pThrower)), 5, 50, pThrower);
  34. RemoveObject();
  35. return;
  36. }
  37. }
  38. if(iEvent == 1) {
  39. CreateObject(WIPF); //Keine echte Verwandlung, Betrug!!1!
  40. RemoveObject();
  41. return;
  42. }
  43. Explode(RandomX(10,15));
  44. }
  45.  
  46. public func FxLimitedFireStart(object pTarget, int iEffectNumber, int iTemp, int iFireTime) {
  47. if(!iTemp) {
  48. EffectVar(0, pTarget, iEffectNumber) = iFireTime;
  49. Incinerate(pTarget);
  50. }
  51. }
  52.  
  53. public func FxLimitedFireTimer(object pTarget, int iEffectNumber, int iEffectTime) {
  54. if(iEffectTime > EffectVar(0, pTarget, iEffectNumber)) return -1;
  55. return 0;
  56. }
  57.  
  58. public func FxLimitedFireStop(object pTarget, int iEffectNumber, int iReason, bool fTemp) {
  59. if(!fTemp)
  60. Extinguish(pTarget);
  61. }
  62.  
  63. global func BurnTime()
  64. {
  65. CreateMenu(, GetCrew(), GetCrew(), , , , 3, 1);
  66. AddMenuItem("{{PLUS}} 1 Sekunde länger", "++iTime&&BurnTime()", , GetCrew());
  67. AddMenuItem(Format("{{EFLN}} %d Sekunden Brand", iTime), Format("CloseMenu() && Log(\"Gebt Acht, der Trollstein versetzt euch für %d Sekunden in Brand!\")",iTime) , , GetCrew());
  68. AddMenuItem("{{MNUS}} 1 Sekunde weniger", "iTime--&&BurnTime())", , GetCrew());
  69. return 1;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement