Zoeken
Resultaten weergeven voor de tags 'spectate'.
1 resultaat gevonden
-
Ik heb het spectate systeem van Ladmin4v2 gebruikt voor mijn gamemode maar het spectate systeem werkt niet goed op mijn gamemode =/ ID 0 crasht de hele server als hij een andere persoon wilt spectaten. Edit: Ik heb mijn server met meer dan 4 mensen getest en nog steeds ID 0 crasht de hele server =/ Ik dacht om iets anders te proberen maar ik weet niet hoe dat moet. Wat ik wil doen is: EDIT: FIXED! //On Top #define isPlaying 1 #define isDead 2 static gTeam[MAX_PLAYERS]; //OnPlayerSpawn gTeam[playerid] = isPlaying; //OnPlayerDeath gTeam[playerid] = isDead; //En als die gaat spectaten dan wil ik dit veranderen: for(new x=PlayerInfo[playerid][specID]+1; x<=MAX_PLAYERS; x++) naar for(new x=isPlaying+1; x<=MAX_PLAYERS; x++) //Maar ik weet niet of ik daar IsPlaying moet schrijven of gTeam[x] == isPlaying of iets anders? script: //OnTop of script enum PlayerData { SpecID } new PlayerInfo[MAX_PLAYERS][PlayerData]; //somewhere in ur script stock StartSpectate(playerid, specplayerid) { for(new x=0; x<MAX_PLAYERS; x++) { if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][specID] == playerid) { AdvanceSpectate(x); } } SetPlayerInterior(playerid,GetPlayerInterior(specplayerid)); TogglePlayerSpectating(playerid, 1); if(IsPlayerInAnyVehicle(specplayerid)) { PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid)); } else { PlayerSpectatePlayer(playerid, specplayerid); } return 1; } stock StopSpectate(playerid) { TogglePlayerSpectating(playerid, 0); return 1; } stock AdvanceSpectate(playerid) { if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][specID] != INVALID_PLAYER_ID) { for(new x=PlayerInfo[playerid][specID]+1; x<=MAX_PLAYERS; x++) { if(x >= MAX_PLAYERS) x = 0; if(IsPlayerConnected(x) && x != playerid) { if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][specID] != INVALID_PLAYER_ID) { continue; } else { StartSpectate(playerid, x); break; } } } } return 1; } stock ReverseSpectate(playerid) { if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][specID] != INVALID_PLAYER_ID) { for(new x=PlayerInfo[playerid][specID]-1; x>=0; x--)) { if(x < 0) x = MAX_PLAYERS -1; if(IsPlayerConnected(x) && x != playerid) { if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][specID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3)) { continue; } else { StartSpectate(playerid, x); break; } } } } return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) { if(newkeys & KEY_HANDBRAKE)//Right Mouse { AdvanceSpectate(playerid); } if(newkeys & KEY_FIRE)//Left Mouse { ReverseSpectate(playerid); } } return 1; } //when player dies [OnPlayerDeath] for(new x=PlayerInfo[playerid][specID]+1; x<=MAX_PLAYERS; x++) { if(x == MAX_PLAYERS) x = 0; if(IsPlayerConnected(x) && x != playerid) { StartSpectate(playerid, x); break; } } Ik heb een race gamemode dus wanneer mensen dood gaan gaan ze op spectate mode en waneer de laatse persoon die overgebleven is heeft gewonnen of is ook dood dan de huidige map eindigd en de andere map loads. ID 0 crasht de hele server als hij op links / rechts muisbuttons drukt om van players te wisselen. maar als je ID 1 of hoger bent dan crasht het server niet. Ik hoop dat iemand mij kan helpen, Thanks!