Witajcie!
Naprawdę sporo godzin spędziłem, żeby to rozwiązać i prawdopodobnie to jest rozwiązanie!
Aby usunąć crashe należy:
- Krok 1: Usunąć w piłce Cypisia usuwanie piłki przy życzeniu.
Otwieramy jail_ball.sma i usuwamy z .sma:
public OnLastPrisonerShowWish(id)
{
if(g_CreateBall)
{
if(pev_valid(g_ball))
remove_entity(g_ball);
}
}
Kompilujemy i wgrywamy na serwer.
- Krok 2: Podmień funkcję w jail_api_jailbreak.sma (patrz poradnik niżej).
To:
public RoundRestart()
{
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "RoundRestart");
#endif
usuwanie_ustawien = true;
}
public RoundEnd()
{
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "RoundEnd");
#endif
end_usun = true;
czas_bronie = false;
}
public PreRoundStart()
{
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "PreRoundStart pre");
#endif
UsuwanieWydarzen();
if(usuwanie_ustawien)
{
jail_day = 0;
usuwanie_ustawien = false;
}
else
jail_day++;
if(jail_day)
{
gTimeStart = get_systime();
ForwardDayStartPre(jail_day%7);
}
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "PreRoundStart post");
#endif
}
UsuwanieWydarzen()
{
//end_usun = true;
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "UsuwanieWydarzen pre");
#endif
szInfo = "";
szInfoPosz = "";
szPoszukiwani = "";
ostatni_wiezien = 0;
prowadzacy = 0;
obsluga_dala = false;
pokaz_raz = false;
czas_bronie = false;
zabawa_wybrana = false;
zyczenie_wybrane = false
mode_gracza[WALKA] = false;
mode_gracza[MIKRO] = (get_pcvar_num(pCvarMikro) == 1? true: false);
mode_gracza[FF_TT] = false;
mode_gracza[TT_GOD] = false;
mode_gracza[CT_GOD] = false;
mode_gracza[CT_NIE_MOZE_TT] = false;
mode_gracza[TT_NIE_MOZE_CT] = false
if(task_exists(ID_DZWIEK_POSZ))
remove_task(ID_DZWIEK_POSZ);
if(task_exists(ID_LOS_PROWADZACY))
remove_task(ID_LOS_PROWADZACY);
if(task_exists(ID_CZAS))
remove_task(ID_CZAS);
if(task_exists(ID_FREZZ))
remove_task(ID_FREZZ);
if(task_exists(ID_SPEED_FZ))
remove_task(ID_SPEED_FZ);
for(new i=0; i<sizeof dane_dnia; i++)
dane_dnia[i] = 0;
for(new i=1; i<=MAX; i++)
{
array_graczy[WSZYSCY][i] = 0;
array_graczy[ZYWI][i] = 0;
user_speed[i] = 0.0;
pojedynek[i] = false;
bronie_menu[i][0] = false;
bronie_menu[i][1] = false;
if(ustaw_freeday[i])
{
ustaw_freeday[i] = false;
free_day[i] = true;
}
else
free_day[i] = false;
if(ustaw_duszka[i])
{
ustaw_duszka[i] = false;
user_duszek[i] = true;
}
else
user_duszek[i] = false;
}
ilosc_graczy[WSZYSCY] = 0;
ilosc_graczy[ZYWI] = 0;
new iRet;
ExecuteForward(fRemoveData, iRet, id_zabawa);
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "UsuwanieWydarzen post");
#endif
}
public PostRoundStart()
{
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "PostRoundStart pre");
#endif
end_usun = false;
set_task(60.0, "koniec_czasu", ID_CZAS);
if(!jail_day)
{
gTimeStart = get_systime()-g_FreezeTime;
ForwardDayStartPre(jail_day%7);
}
if(!prowadzacy && !dane_dnia[1])
set_task(15.0, "LosujProwadzacego", ID_LOS_PROWADZACY);
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "PostRoundStart post");
#endif
}
ForwardDayStartPre(zabawa)
{
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "ForwardDayStartPre pre");
#endif
new iRet, is_frezz = g_FreezeTime-(get_systime()-gTimeStart);
ExecuteForward(fDayStartPre, iRet, zabawa, PrepareArray(szInfo, 256, 1), PrepareArray(szInfoPosz, 512, 1), PrepareArray(dane_dnia, 10, 1), g_RoundTime+min(is_frezz, 0));
id_zabawa = zabawa;
new dane[1]
dane[0] = zabawa;
if(is_frezz)
set_task(is_frezz+0.1, "ForwardDayStartPost", ID_FREZZ, dane, 1);
else
ForwardDayStartPost(dane);
#if defined DEBUG
log_to_file("jail_api_jailbreak.log", "ForwardDayStartPre post");
#endif
}
Zamień na:
public RoundRestart()
{
usuwanie_ustawien = true;
end_usun = true;
UsuwanieWydarzen();
}
public RoundEnd()
{
end_usun = true;
czas_bronie = false;
UsuwanieWydarzen();
}
public PreRoundStart()
{
end_usun = true;
szInfo = "";
szInfoPosz = "";
szPoszukiwani = "";
ostatni_wiezien = 0;
prowadzacy = 0;
obsluga_dala = false;
pokaz_raz = false;
czas_bronie = false;
zabawa_wybrana = false;
zyczenie_wybrane = false;
mode_gracza[WALKA] = false;
mode_gracza[MIKRO] = bool:get_pcvar_num(pCvarMikro);
mode_gracza[FF_TT] = false;
mode_gracza[TT_GOD] = false;
mode_gracza[CT_GOD] = false;
mode_gracza[CT_NIE_MOZE_TT] = false;
mode_gracza[TT_NIE_MOZE_CT] = false
if(task_exists(ID_DZWIEK_POSZ))
remove_task(ID_DZWIEK_POSZ);
if(task_exists(ID_LOS_PROWADZACY))
remove_task(ID_LOS_PROWADZACY);
if(task_exists(ID_CZAS))
remove_task(ID_CZAS);
if(task_exists(ID_FREZZ))
remove_task(ID_FREZZ);
if(task_exists(ID_SPEED_FZ))
remove_task(ID_SPEED_FZ);
if(task_exists(2761234, 1))
remove_task(2761234, 1);
for(new i=0; i<=10; i++)
dane_dnia[i] = 0;
if(usuwanie_ustawien)
{
jail_day = 0;
usuwanie_ustawien = false;
}
else
jail_day++;
if(jail_day)
{
gTimeStart = get_systime();
ForwardDayStartPre(jail_day%7);
}
}
UsuwanieWydarzen()
{
for(new i=1; i<=32; i++)
{
if(is_user_connected(i))
cs_reset_user_model(i);
pojedynek[i] = false;
user_speed[i] = 0.0;
array_graczy[WSZYSCY][i] = 0;
array_graczy[ZYWI][i] = 0;
pojedynek[i] = false;
bronie_menu[i][0] = false;
bronie_menu[i][1] = false;
if(ustaw_freeday[i])
{
ustaw_freeday[i] = false;
free_day[i] = true;
}
else
free_day[i] = false;
if(ustaw_duszka[i])
{
ustaw_duszka[i] = false;
user_duszek[i] = true;
}
else
user_duszek[i] = false;
}
ilosc_graczy[WSZYSCY] = 0;
ilosc_graczy[ZYWI] = 0;
new Return_F
if(fRemoveData)
ExecuteForward(fRemoveData, Return_F, id_zabawa);
}
public PostRoundStart()
{
end_usun = false;
set_task(60.0, "koniec_czasu", ID_CZAS);
if(!jail_day)
{
gTimeStart = get_systime()-g_FreezeTime;
ForwardDayStartPre(jail_day%7);
}
if(!prowadzacy && !dane_dnia[1])
set_task(15.0, "LosujProwadzacego", ID_LOS_PROWADZACY);
}
ForwardDayStartPre(zabawa)
{
new iRet
new is_frezz = g_FreezeTime-(get_systime()-gTimeStart);
new czas = g_RoundTime+min(is_frezz, 0);
ExecuteForward(fDayStartPre, iRet, zabawa, PrepareArray(szInfo, 256, 1), PrepareArray(szInfoPosz, 512, 1), PrepareArray(dane_dnia, 10, 1), czas);
id_zabawa = zabawa;
new dane[1]
dane[0] = zabawa;
if(is_frezz)
set_task(is_frezz+0.1, "ForwardDayStartPost", ID_FREZZ, dane, 1);
else
ForwardDayStartPost(dane);
}
Zapisujemy, kompilujemy i wgrywamy na serwer!
Użytkownik HubertTM edytował ten post 19.10.2013 08:14


Dodatki SourceMod















