Skripta koju koristim: Moja skripta
Detaljan opis problema: Napravio sam jednu respawn skriptu, ali imam problem sa njome sto respavnuje i vozila u kojima su igraci tj. i koja se koriste..Kako to da sredim, sta da dodam
Dio skripte:CMD:rtc(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] >=1)
{
SendClientMessageToAll(COLOR_YELLOW,"Admin je respawn-ovao vozila, mozete ih naci na mestu gde ste ih parkirali!");
for(new i = 0; i < MAX_VEHICLES; i++)
{
SetVehicleToRespawn(i);
}
}
return 1;
}
Neke slike/video za lakse dobivanje pomoci(neobavezno):
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(IsPlayerInVehicle(i,i))
{
RemovePlayerFromVehicle(i);
}
SetVehicleToRespawn(i);
}
dodas da igrace koji su u vozilo prvo izbaci i onda respawna sva.
Citat: C++ poslato Januar 06, 2014, 23:12:02 POSLE PODNE
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(IsPlayerInVehicle(i,i))
{
RemovePlayerFromVehicle(i);
}
SetVehicleToRespawn(i);
}
dodas da igrace koji su u vozilo prvo izbaci i onda respawna sva.
Pogresno si ga razumio on je mislio da NE respawna ona vozila u kojima ima neko..YCMD:rtc(playerid, params[], help)
{
#pragma unused help
#pragma unused params
if("PlayerInfo[playerid][pAdmin])) return 1;
for(new v; v != MAX_VEHICLES; ++v)
{
if(IsVehicleEmpty(v)) SetVehicleToRespawn(v);
}
return SendClientMessageToAll(COLOR_YELLOW, "Admin je respawn-ovao vozila, mozete ih naci na mestu gde ste ih parkirali!");
}
IsVehicleEmpty(veh)
{
foreach(Player, i)
{
if(IsPlayerInVehicle(i, veh))
break;
return false;
}
return true;
}
Nisi me razumeo C++, mislio sam na ono sto je rekao maCHine65535..Mada maCHine65535 probao sam skriptu koju si mi poslao i dalje se isto desava, respawna i kola u kojima su igraci
CMD:rac(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1340)
{
return 1;
}
SetTimer("RespawnVozila", 10000, 0);
return 1;
}
forward RespawnVozila();
public RespawnVozila()
{
new bool:uvozilu[MAX_VEHICLES] = 0;
for(new p; p <= MAX_PLAYERS; p++)
{
if( IsPlayerInAnyVehicle(p)) return uvozilu[MAX_VEHICLES] = 1;
}
for(new car; car <= MAX_VEHICLES; car++)
{
if(!uvozilu[car] ) SetVehicleToRespawn(car);
}
return 1;
}
Baca error, mada je u skripti definisano
\Desktop\Skripte\Mod 0\gamemodes\MojMod.pwn(3691) : error 032: array index out of bounds (variable "uvozilu")
\Desktop\Skripte\Mod 0\gamemodes\MojMod.pwn(3691) : warning 213: tag mismatch
Ovo je linija:
if( IsPlayerInAnyVehicle(p)) return uvozilu[MAX_VEHICLES] = 1;
Pogledaj, treba da loopas kroz sva vozila
stock IsVehicleEmpty(v)
{
for(new i = 0; i != MAX_PLAYERS; i++); // od pocetne vrijednosti 0, sve dok je i razlicito od 500, i ce se povecavati
{
if(!IsPlayerConnected(i)) continue; // ako igrac nije konektovan petlja se nastavlja preskacuci taj id
if(IsPlayerInVehicle(i, v) // ako je igrac u vozilu
{
break; // prekida petlju
return 0; // vraca vrijednost 0 (vozilo nije prazno)
}
}
return 1; // inace vraca vrijednost 1 (vozilo jest prazno)
}
CMD:rac(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1) return 1;
for(new v = 1; v < MAX_VEHICLES; v+1)
{
if(IsVehicleEmpty(v)) SetVehicleToRespawn(v);
}
return SendClientMessageToAll(-1, "Admin je respawnao sva nekoristena vozila!");
}
Baca error
C:\Users\Novica\Desktop\Mod 0\gamemodes\MojMod.pwn(2768) : error 036: empty statement
C:\Users\Novica\Desktop\Mod 0\gamemodes\MojMod.pwn(2770) : error 017: undefined symbol "i"
C:\Users\Novica\Desktop\Mod 0\gamemodes\MojMod.pwn(2770) : error 024: "break" or "continue" is out of context
C:\Users\Novica\Desktop\Mod 0\gamemodes\MojMod.pwn(2771) : error 017: undefined symbol "i"
C:\Users\Novica\Desktop\Mod 0\gamemodes\MojMod.pwn(2773) : error 024: "break" or "continue" is out of context
C:\Users\Novica\Desktop\Mod 0\gamemodes\MojMod.pwn(2774) : warning 225: unreachable code
U stock-u
stock IsVehicleEmpty(v)
{
for(new i = 0; i != MAX_PLAYERS; i++); // od pocetne vrijednosti 0, sve dok je i razlicito od 500, i ce se povecavati
{
if(!IsPlayerConnected(i)) continue; // ako igrac nije konektovan petlja se nastavlja preskacuci taj id
if(IsPlayerInVehicle(i, v) // ako je igrac u vozilu
{
break; // prekida petlju
return 0; // vraca vrijednost 0 (vozilo nije prazno)
}
}
return 1; // inace vraca vrijednost 1 (vozilo jest prazno)
}
stock IsVehicleEmpty(vehicleid)
{
foreach(Player, i)
{
if(IsPlayerInVehicle(i,vehicleid)) return 0;
}
return 1;
}
Ne radi komanda tj. nema akciju
I baca mi ovaj warning:
(3492) : warning 215: expression has no effect
[/color]
To je ovaj red:
for(new v = 1; v < MAX_VEHICLES; v+1)
{
v++ umesto v+1
Fenomenalno, konacno radi..Hvala, pritom procitaj poruku koju sam ti poslao