Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Maxwellâ„¢ poslato Oktobar 22, 2012, 18:37:11 POSLE PODNE

Naslov: [Pomoc] Freeze igraca
Poruka od: Maxwellâ„¢ poslato Oktobar 22, 2012, 18:37:11 POSLE PODNE
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! :)
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: Alaudin poslato Oktobar 22, 2012, 19:01:20 POSLE PODNE
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;
}
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: Maxwellâ„¢ poslato Oktobar 22, 2012, 19:15:08 POSLE PODNE
Ne pozivam nikakvim tajmerom :D 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?
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: Alaudin poslato Oktobar 22, 2012, 19:26:43 POSLE PODNE
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...
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: N1XTON poslato Oktobar 22, 2012, 19:29:51 POSLE PODNE
@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
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: Maxwellâ„¢ poslato Oktobar 22, 2012, 19:35:31 POSLE PODNE
@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.
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: N1XTON poslato Oktobar 22, 2012, 19:37:38 POSLE PODNE
vidi brt ovo           TogglePlayerControllable(playerid,0); tu imas gresku treba dvije zagrade tj vako           TogglePlayerControllable(playerid,0));
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: Maxwellâ„¢ poslato Oktobar 22, 2012, 19:40:02 POSLE PODNE
Citat: N1XTON.AMX poslato Oktobar 22, 2012, 19:37:38 POSLE PODNE
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:
Citat: Nitro poslato Oktobar 22, 2012, 19:35:31 POSLE PODNE
@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;
}

Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: Alaudin poslato Oktobar 22, 2012, 20:27:49 POSLE PODNE
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.

@Nitro
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.
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: Maxwellâ„¢ poslato Oktobar 22, 2012, 21:03:37 POSLE PODNE
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 :D
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: Alaudin poslato Oktobar 22, 2012, 21:18:33 POSLE PODNE
Citat: Nitro poslato Oktobar 22, 2012, 21:03:37 POSLE PODNE
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 :D

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.
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: rloveution poslato Oktobar 22, 2012, 21:58:52 POSLE PODNE
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 :)
Naslov: Odg: [Pomoc] Freeze igraca
Poruka od: Maxwellâ„¢ poslato Oktobar 23, 2012, 14:36:48 POSLE PODNE
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 :/