18.04.2009, 17:12
Soupz, I gave an attempt at creating a SWAT rope slide thing in single player, and I've overlooked it many times, yet it crashes my server:
As of right now, I have it to where it finds your state (driver) for testing purposes. So when you hit the "F" key, it applies an animation (somewhat like the sliding animation) and it sets a repeating timer which drops your current Z position 10 feet total. The timer seems perfectly fine, unless I'm missing something. It just likes to crash the server. Halpz
Код:
#include <a_samp> #define FILTERSCRIPT #define VEH_EXIT 16 #if defined FILTERSCRIPT new SlideNum[MAX_PLAYERS]; new Slider; public OnFilterScriptInit() { print("\n--------------------------------------"); print(" SWAT Heli "); print(" RRP SWAT Slide "); print(" By: Michael_Sandrino[Tanner] "); print("--------------------------------------\n"); return 1; } public OnFilterScriptExit() { return 1; } public OnPlayerConnect(playerid) { SlideNum[playerid] = 0; return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if((newkeys & VEH_EXIT) == (VEH_EXIT)) { new StateSlide = GetPlayerState(playerid); if(StateSlide == 2) { ApplyAnimation(playerid, "SWAT", "swt_wllpk_R_back", 4.0,0,1,1,1,0); SlideNum[playerid] = 1; Slider = SetTimerEx("Slide", 100, 1, "i"); return 1; } } return 0; } forward Slide(playerid); public Slide(playerid) { new Float:x, y, z; GetPlayerPos(playerid, x, y, z); if(SlideNum[playerid] == 1) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 2; return 1; } if(SlideNum[playerid] == 2) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 3; return 1; } if(SlideNum[playerid] == 3) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 4; return 1; } if(SlideNum[playerid] == 4) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 5; return 1; } if(SlideNum[playerid] == 5) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 6; return 1; } if(SlideNum[playerid] == 6) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 7; return 1; } if(SlideNum[playerid] == 7) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 8; return 1; } if(SlideNum[playerid] == 8) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 9; return 1; } if(SlideNum[playerid] == 9) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 10; return 1; } if(SlideNum[playerid] == 10) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 11; return 1; } if(SlideNum[playerid] == 11) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 12; return 1; } if(SlideNum[playerid] == 12) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 13; return 1; } if(SlideNum[playerid] == 13) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 14; return 1; } if(SlideNum[playerid] == 14) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 15; return 1; } if(SlideNum[playerid] == 15) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 16; return 1; } if(SlideNum[playerid] == 16) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 17; return 1; } if(SlideNum[playerid] == 17) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 18; return 1; } if(SlideNum[playerid] == 18) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 19; return 1; } if(SlideNum[playerid] == 19) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 20; return 1; } if(SlideNum[playerid] == 20) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 21; return 1; } if(SlideNum[playerid] == 21) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 22; return 1; } if(SlideNum[playerid] == 22) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 23; return 1; } if(SlideNum[playerid] == 23) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 24; return 1; } if(SlideNum[playerid] == 24) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 25; return 1; } if(SlideNum[playerid] == 25) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 26; return 1; } if(SlideNum[playerid] == 26) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 27; return 1; } if(SlideNum[playerid] == 27) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 28; return 1; } if(SlideNum[playerid] == 28) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 29; return 1; } if(SlideNum[playerid] == 29) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 30; return 1; } if(SlideNum[playerid] == 30) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 31; return 1; } if(SlideNum[playerid] == 31) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 32; return 1; } if(SlideNum[playerid] == 32) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 33; return 1; } if(SlideNum[playerid] == 33) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 34; return 1; } if(SlideNum[playerid] == 34) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 35; return 1; } if(SlideNum[playerid] == 35) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 36; return 1; } if(SlideNum[playerid] == 36) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 37; return 1; } if(SlideNum[playerid] == 37) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 38; return 1; } if(SlideNum[playerid] == 38) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 39; return 1; } if(SlideNum[playerid] == 39) { SetPlayerPos(playerid, x, y, z-0.25); SlideNum[playerid] = 40; return 1; } if(SlideNum[playerid] == 40) { SetPlayerPos(playerid, x, y, z-0.25); KillTimer(Slider); ClearAnimations(playerid); SlideNum[playerid] = 0; return 1; } return 1; } #endif