Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2014-09-17, 16:36


Zon3







Wiek: 32
Na forum: 4280 dni
Posty: 66

Piwa: 4

Respekt: 50

Ostrzeżeń: 100%
Witam. Mam skrypt systemu wypadk?w ale wypadek dzia?a tylko w niekt?rych pojazdach, np. w truckach ju? nie dzia?a. W osob?wce uderz? z pr?dko?ci? 90 km/h i jest wypadek a truckiem z pr?dko?ci? 110 km/h i nie ma wypadku ;/ Prosz? o szybk? pomoc. Oto skrypt:
Kod:


#include a_samp.inc

#define WYPADEK_OnPlayerUpdate //usu? te linijk? je?eli nie chcesz korzysta? z OnPlayerUpdate.
//#define WYPADEK_TIMER (1000) //czas w timerze. Nic nie zmienia je?eli korzystasz z OnPlayerUpdate.
#define WYPADEK_PASAZER //usu? te linijke je?eli nie chcesz, aby pasa?erowie r?wnie? byli ranni podczas wypadku.
#define WYPADEK_HP (150) //ile pojazd ma straci? HP, aby by?o to uznane za wypadek.
#define DIALOG_INFO (9999) //ID Dialogu, kt?ry nie ma nic przypisane w OnDialogResponse.

new Float:PlayerVehicleLastHealth[MAX_PLAYERS];
new PlayerLastVehicle[MAX_PLAYERS];

#if !defined WYPADEK_OnPlayerUpdate
public OnFilterScriptInit()
{
SetTimer("CheckPlayersCrash", WYPADEK_TIMER, true);
return 1;
}
#endif

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
GetVehicleHealth(vehicleid, PlayerVehicleLastHealth[playerid]);
return 1;
}


#if !defined WYPADEK_OnPlayerUpdate
forward CheckPlayersCrash();
public CheckPlayersCrash()
{
static Float:vhp;

for(new i = GetMaxPlayers(); i > -1; --i)
{
#if defined WYPADEK_PASAZER
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
#else
if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER)
#endif
{
GetVehicleHealth(GetPlayerVehicleID(i), vhp);
if(vhp + WYPADEK_HP < PlayerVehicleLastHealth[i] && GetPlayerVehicleID(i) == PlayerLastVehicle[i])
{
TogglePlayerControllable(i, false);
ShowPlayerDialog(i, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "{FF0000}Wypadek!", "{FFFFFF}Dozna?e? urazu podczas wypadku. Poczekaj a? dojdziesz do siebie.", "OK", "");
#if defined _fadescreen_included
SetPVarInt(i, "FadeScreenCrash", ShowPlayerFadeScreenToBlank(i, 30, 255, 0, 0, 255));
#else
SetTimerEx("CrashPlayerOff", 15000, 0, "d", i);
#endif
}
PlayerVehicleLastHealth[i] = vhp;
PlayerLastVehicle[i] = GetPlayerVehicleID(i);
}
}
return 1;
}
#else
public OnPlayerUpdate(playerid)
{
static Float:vhp;

#if defined WYPADEK_PASAZER
if(IsPlayerInAnyVehicle(playerid))
#else
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
#endif
{
GetVehicleHealth(GetPlayerVehicleID(playerid), vhp);
if(vhp + WYPADEK_HP < PlayerVehicleLastHealth[playerid] && GetPlayerVehicleID(playerid) == PlayerLastVehicle[playerid])
{
TogglePlayerControllable(playerid, false);
ShowPlayerDialog(playerid, DIALOG_INFO, DIALOG_STYLE_MSGBOX, "{FF0000}Wypadek!", "{FFFFFF}Dozna?e? urazu podczas wypadku. Poczekaj a? dojdziesz do siebie.", "OK", "");
#if defined _fadescreen_included
SetPVarInt(playerid, "FadeScreenCrash", ShowPlayerFadeScreenToBlank(playerid, 30, 255, 0, 0, 255));
#else
SetTimerEx("CrashPlayerOff", 15000, 0, "d", playerid);
#endif
}
PlayerVehicleLastHealth[playerid] = vhp;
PlayerLastVehicle[playerid] = GetPlayerVehicleID(playerid);
}
return 1;
}
#endif


#if !defined _fadescreen_included
forward CrashPlayerOff(playerid);
public CrashPlayerOff(playerid)
{
TogglePlayerControllable(playerid, true);
return 1;
}
#else
public OnPlayerFadeScreenEnd(playerid, fadeid)
{
if(fadeid == GetPVarInt(playerid, "FadeScreenCrash"))
{
TogglePlayerControllable(playerid, true);
return 1;
}
return 1;
}
#endif

Prosz? o szybk? pomoc. Z g?ry dzi?kuj?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-09-18, 14:52


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

Kod:

#define WYPADEK_HP (150)


Zmie? se na

Kod:

#define WYPADEK_HP (100)


Postaw piwo autorowi tego posta
 

 
Tagi: system :: wypadków
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [INNE] System wypadków Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku