02.08.2015, 09:05
Hi,
I created Progress bar. Let me tell you my Problem. I have created checkpoint and Add one vehicle ( cargobob ). I want that when i enter Cargobob and go for delivering it, the progress bar should increase as Far as i don't reach the checkpoint and it should decrease when i go far'away from the checkpoint.
BUT here i Managed some codes, These codes have a problem That when i enter cargobob and go for delivery, The progress bar don't increase nor decrease but when i enter the checkpoint it starts increasing.
I hope you got what i'm trying to say!
Here are the codes:
I created Progress bar. Let me tell you my Problem. I have created checkpoint and Add one vehicle ( cargobob ). I want that when i enter Cargobob and go for delivering it, the progress bar should increase as Far as i don't reach the checkpoint and it should decrease when i go far'away from the checkpoint.
BUT here i Managed some codes, These codes have a problem That when i enter cargobob and go for delivery, The progress bar don't increase nor decrease but when i enter the checkpoint it starts increasing.
I hope you got what i'm trying to say!
Here are the codes:
Код:
public OnPlayerStateChange(playerid, newstate, oldstate) { new vehicleid2; if(newstate == PLAYER_STATE_DRIVER) { vehicleid2 = GetPlayerVehicleID(playerid); if(vehicleid2 == OBJECTIVE_VEHICLE) ///WHEN PLAYER ENTERS CARGOBOB { //=================================================== PlayerTimer[ playerid ] = SetTimerEx("deliverupdate", 1000, true, "i", playerid ); PlayerDelieverValue[ playerid ] = 0; //=================================================== } } return 1; } public OnPlayerConnect(playerid) { //=======================================================================// Progress[ playerid ] = CreatePlayerProgressBar( playerid , 5.00, 432.00, 111.50, 9.50, -1048321, 100.000000 , BAR_DIRECTION_RIGHT ); Capturing[playerid] = CreatePlayerTextDraw( playerid , 81.600112, 433.066741 , "Deliver progress...0%" ); PlayerTextDrawLetterSize(playerid , Capturing[playerid] , 0.205199, 1.226666); PlayerTextDrawAlignment( playerid , Capturing[playerid] , 1 ); PlayerTextDrawColor( playerid , Capturing[playerid] , -1 ); PlayerTextDrawSetShadow( playerid , Capturing[playerid] , 0 ); PlayerTextDrawSetOutline( playerid , Capturing[playerid] , -1 ); PlayerTextDrawBackgroundColor( playerid , Capturing[playerid] , 255 ); PlayerTextDrawFont( playerid , Capturing[playerid] , 1 ); PlayerTextDrawSetProportional( playerid , Capturing[playerid] , 1 ); PlayerTextDrawSetShadow( playerid , Capturing[playerid] , 0 ); PlayerDelieverValue[ playerid ] = 0; //======================================= return 1; } public OnPlayerEnterCheckpoint(playerid) { new playervehicleid = GetPlayerVehicleID(playerid); new name[MAX_PLAYER_NAME], string[100]; GetPlayerName(playerid, name, sizeof(name)); if(ObjectiveReached) return 1; if(playervehicleid == OBJECTIVE_VEHICLE && gTeam[playerid] == TEAM_ATTACKERS) { format(string, sizeof(string), "{E1CC2B}» %s has Successfully delivered the Cargobob from Security Guards.", name); SendClientMessageToAll(-1, string); SendClientMessage(playerid,-1,"{7C7C7C}» You've Recieved 5 Points and $6,000 for delivering the Cargobob."); GivePlayerMoney(playerid, 6000); SetPlayerScore(playerid,GetPlayerScore(playerid)+5); ObjectiveReached = 1; SetTimerEx("NoExplode",500,false,"i", playerid); DestroyVehicle(OBJECTIVE_VEHICLE); } return 1; }
Код:
//==============================================================================// forward deliverupdate( playerid ); public deliverupdate( playerid ) { if( !IsPlayerInRangeOfPoint( playerid, 20.0, -290.0820,1873.8983,42.2891 )) //CHECKPOINT COORDINATES { //left the checkpoint KillTimer( PlayerTimer[ playerid ] ); return true; } new str[ 32 ]; PlayerDelieverValue[ playerid ] += 5; SetPlayerProgressBarValue( playerid, Progress[ playerid ] , PlayerDelieverValue[ playerid ] ); format( str, sizeof( str ) , "Deliver progress...%d%", PlayerDelieverValue[ playerid ] ); PlayerTextDrawSetString( playerid, Capturing[playerid], str ); ShowPlayerProgressBar( playerid, Progress[ playerid ] ); PlayerTextDrawShow( playerid, Capturing[ playerid ] ); if( PlayerDelieverValue[ playerid ] >= 100 ) { KillTimer( PlayerTimer[ playerid ] ); HidePlayerProgressBar( playerid, Progress[ playerid ] ); PlayerTextDrawHide( playerid, Capturing[ playerid ] ); //delivered. } return true; } //==============================================================================//