Zaključano

[Pomoc] Freeze igraca

pre 13 godina
635
pregleda
13
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
Nitro
Godfather
pre 13 godina
Skripta koju koristim:
- TechLand Xperia

Detaljan opis problema:
- Posto kada udjem u tuning garazu i pritisnem enter kako bih se vratio iz menija PaintJobs(ili bilo kog drugog) u glavni meni, izbacuje igraca iz auta, hteo sam da napravim freeze u garazi, ali nastao je problem.

Kod ostalih forwarda sam dodao:
forward TuniraAuto(playerid);


Onda sam dole sam stavio:

public TuniraAuto(playerid)
{
if(PlayerToPoint(30.0,playerid,616.7864,-74.8150,997.8036)
TogglePlayerControllable(playerid,0);
return 1;
}


Dobijam error 001, expected token ")" but found "-identifier-", na liniji TogglePlayerControllable(playerid,0);
Nije mi jasno sta nije u redu tu.
Eh sad, ne znam koliko je dobro raditi na ovaj nacin i uopste da li je ovo ispravno, pa ako postoji bolji molim vas pomozite. 🙂
Hvala!

Dio skripte:
- Ima gore, ako treba jos nesto recite...

Neke slike/video za lakse dobivanje pomoci(neobavezno): /

Hvala puno jos jednom! 🙂
alaudin
Wheel Man
pre 13 godina
Pretpostavljam da ovaj public pozivas sa nekim tajmerom, sve ovisi cime pozivas funkciju.

Evo ja bi ovako to napisao.
forward TuniraAuto(playerid);
public TuniraAuto(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, 7864,-74.8150,997.8036))
{
TogglePlayerControllable(playerid,0);
}
return 1;
}
Nitro
Godfather
pre 13 godina
Ne pozivam nikakvim tajmerom 😄 Bas sam pocetnik jbg, slabo znam o tome...
Da stavim onda SetTimer("TuniraAuto",1000,false); pod ongamemodeinit ili na neko drugo mesto?
Ili postoji neki drugi nacin za freeze igraca dok je u garazi?
alaudin
Wheel Man
pre 13 godina
Nevalja "trositi" ponavljajuce tajmere na gluposti.
U tvom slucaju mozes napraviti kada igrac stisne tipku enter da ga freeza, ili da ga vrati u auto..

Mada, ne razumijem zasto bi to radio, zna se nekad desit da u tuning garazi igrac izadje iz auta, al to je nekad.
Moj ti je savjet, ako si pocetnik da te modove obrises, jer su puni bugova..
Lagano otvoris NEW na pawnu i udri, uci malo pomalo.
Nauci za sta koji callback sluzi, varijable, tajmere, spremanje podataka, itd...
[EX:RP]N1XTON
Underboss
pre 13 godina
@Alaudin pricas gluposti

public TuniraAuto(playerid)
{
if(PlayerToPoint(30.0,playerid,616.7864,-74.8150,997.8036)
TogglePlayerControllable(playerid,0));//ovdje si imao gresku
return 1;
}
samo si jos jednu zagradu trebao dodati
Nitro
Godfather
pre 13 godina
@Alaudin
Treba mi bas ovakav mod, ucim po tome, jebi ga...
A ako bih probao ovako, da li bi radilo?

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16)
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, 616.7864,-74.8150,997.8036))
{
TogglePlayerControllable(playerid,0);
}
}
return 1;
}


@N1XTON.AMX
- Pogresio sam ja, nije greska na tom mestu, greska je na liniji
  if(PlayerToPoint(30.0,playerid,616.7864,-74.8150,997.8036)
  treba biti ovako:
  if(PlayerToPoint(30.0,playerid,616.7864,-74.8150,997.8036))
  To sam shvatio, ali svejedno nece raditi ako tako napravim.
[EX:RP]N1XTON
Underboss
pre 13 godina
vidi brt ovo  TogglePlayerControllable(playerid,0); tu imas gresku treba dvije zagrade tj vako  TogglePlayerControllable(playerid,0));
Nitro
Godfather
pre 13 godina
N1XTON.AMX wrote on October 22, 2012, 5:37 pm:
vidi brt ovo  TogglePlayerControllable(playerid,0); tu imas gresku treba dvije zagrade tj vako  TogglePlayerControllable(playerid,0));


Pogledaj brate, vidis da ne treba 2 zagrade:
http://wiki.sa-mp.com/wiki/Function:TogglePlayerControllable
Nije to problem, ja sam pogresio liniju, nije mi uopste izbacivalo error na liniji TogglePlayerControllable nego na ovoj prvoj, izvinjavam se, pogresio sam, necu da se raspravljam kada taj nacin svejedno ne radi. 😉

Ovo mi treba sada:
Nitro wrote on October 22, 2012, 5:35 pm:
@Alaudin
Treba mi bas ovakav mod, ucim po tome, jebi ga...
A ako bih probao ovako, da li bi radilo?

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16)
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, 616.7864,-74.8150,997.8036))
{
TogglePlayerControllable(playerid,0);
}
}
return 1;
}
alaudin
Wheel Man
pre 13 godina
Nixton brate da ti dam savjet..
Prije nego nekoga ispravis dobro se uvijeri da su tvoje tvrdnje 100 % tacne..
Ja sam gore covjeku dao bolji nacin koda, i pokusavam da covjeku pomognem.

@Maxwellâ„¢
Brate probaj na taj nacin kako si i krenuo, tako sam i ja zamislio.
Kada stisne enter ide provjera ako je na toj poziciji neka ga freeza.
Bolje je to nego timer ponavljajuci koji bi ti uzimao puno resursa i stvarao lag.
Nitro
Godfather
pre 13 godina
Ne radi to, probao sam, izbaci ga iz vozila i tek onda ga freeza :S

Sastavljao sam nesto ovako, mada ne znam da li bi radilo, sta mislis?

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16)
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, x, y, z))
new vehicleidgarage;
            vehicleidgarage = GetPlayerVehicleID(playerid);
            ToggleplayerControllable(playerid, 0);
            PutPlayerInVehicle(playerid, vehicleidgarage, 0);
  }
return 1;
}


Pitam te ovde za misljenje, a ne testiram jer skripta ima 77k linija koda a meni treba 20ak minuta da to compile, slab komp jbg, pa prvo da vidim mozda znas da li je ispravno, ako ne znas onda cu ga test 😄
alaudin
Wheel Man
pre 13 godina
Nitro wrote on October 22, 2012, 7:03 pm:
Ne radi to, probao sam, izbaci ga iz vozila i tek onda ga freeza :S

Sastavljao sam nesto ovako, mada ne znam da li bi radilo, sta mislis?

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16)
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, x, y, z))
new vehicleidgarage;
            vehicleidgarage = GetPlayerVehicleID(playerid);
            ToggleplayerControllable(playerid, 0);
            PutPlayerInVehicle(playerid, vehicleidgarage, 0);
  }
return 1;
}


Pitam te ovde za misljenje, a ne testiram jer skripta ima 77k linija koda a meni treba 20ak minuta da to compile, slab komp jbg, pa prvo da vidim mozda znas da li je ispravno, ako ne znas onda cu ga test 😄

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16)
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, x, y, z))
                {
    new vehicleidgarage;
                vehicleidgarage = GetPlayerVehicleID(playerid);
                PutPlayerInVehicle(playerid, vehicleidgarage, 0);
                    ToggleplayerControllable(playerid, 0);
                }
  }
return 1;
}


Jbg probaj, testiraj, gledajuci ovo izgleda ok, sad sta se moze desit testirajuci boga pitaj.
McZap
Made Man
pre 13 godina
pokusaj sa
public OnEnterExitModShop(playerid, enterexit, interiorid)
{
    if(enterexit == 1)
    {
      ToggleplayerControllable(playerid, 0);
    }
    if(enterexit == 0)
    {
      ToggleplayerControllable(playerid, 1);
    }
    return 1;
}

pogledaj imas li negdje ovaj callback OnEnterExitModShop , ako nemas samo stavi ovo na dno skripte ako imas ubaci ove provjere i to je to 🙂
Nitro
Godfather
pre 13 godina
Ne radi, ima li neko neku drugu ideju? 🙂

Ni ovo:

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16)
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, x, y, z))
                {
    new vehicleidgarage;
                vehicleidgarage = GetPlayerVehicleID(playerid);
                PutPlayerInVehicle(playerid, vehicleidgarage, 0);
                    TogglePlayerControllable(playerid, 0);
                }
  }
return 1;
}


Ni ovo:

forward OnEnterExitModShop(playerid, enterexit, interiorid)
public OnEnterExitModShop(playerid, enterexit, interiorid)
{
    if(enterexit == 1)
    {
      TogglePlayerControllable(playerid, 0);
    }
    if(enterexit == 0)
    {
      TogglePlayerControllable(playerid, 1);
    }
    return 1;
}


Nema errora, ali idalje izbacuje iz auta :/

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava