Skripta koju koristim: RG
Detaljan opis problema: Hteo sam napraviti posao lovca,ali sam samo napravio komandu lovi cisto da testiram pa bih posle dovrsio posao... Medjutim, kada ukucam komandu /lovi sve je u redu ali kada pogodim Srnu ne desava se nista...
Dio skripte: Komanda /lovi
CMD:lovi(playerid, params[])
{
if(hIgracUlogovan[playerid] == 0) return Error(playerid,"Moras se ulogovati da bi koristio komandu!");
if(IsPlayerInAnyVehicle(playerid)) return Error(playerid,"Ne mozes iz vozila!");
if(Lovi[playerid] == 1) return Error(playerid,"Vec lovis!");
new HighestPlayerId = GetPlayerPoolSize();
for(new i = 0; i <= HighestPlayerId; i++)
{
if(IsPlayerConnected(i))
{
if(hIgracUlogovan[playerid] == 1)
{
if(Lovi[i] == 1)
{
Error(playerid,"Neko vec lovi!");
return true;
}
}
}
}
INFO(playerid,"Zapoceli ste lov na srne, imate 2 minuta da nadjete i upucate srnu.");
Lovi[playerid] = 1;
GivePlayerWeaponEx(playerid, 33, 2);
KillTimer_H(lovitimer[playerid]);
lovitimer[playerid] = SetTimerEx("LoviCovek", 121000, false, "i", playerid);
DestroyObject(Srna[playerid]);
new rand = random(sizeof(DeerPositions));
Srna[playerid] = CreateObject(19315, DeerPositions[rand][0], DeerPositions[rand][1], DeerPositions[rand][2], 0, 0, 0);
return 1;
}
public LoviCovek
forward LoviCovek(playerid);
public LoviCovek(playerid)
{
KillTimer_H(lovitimer[playerid]);
if(Lovi[playerid] == 1)
{
ResetPlayerWeaponsEx(playerid);
Lovi[playerid] = 0;
DestroyObject(Srna[playerid]);
INFO(playerid,"Nazalost, niste na vreme uspeli da upucate srnu.");
}
return 1;
}
Deo skripte kada pogadja Srnu:
if(Lovi[playerid] > 0 && !IsPlayerInAnyVehicle(playerid))
{
if(GetPlayerWeapon(playerid) == 33)
{
if(oldkeys & KEY_RIGHT && newkeys & KEY_FIRE)
{
if(hZamrznut[playerid] == 1)
{
if(IsPlayerAiming(playerid, Srna[playerid]))
{
ResetPlayerWeaponsEx(playerid);
Lovi[playerid] = 0;
KillTimer_H(lovitimer[playerid]);
DestroyObject(Srna[playerid]);
new bonus = random(1000);
Plata(playerid, PosaoPlata[LovacPlata], bonus);
SacuvajIgraca(playerid);
INFO(playerid,"Upucali ste srnu.");
StopLoopingAnim(playerid);
}
}
}
}
}
IsPlayerAiming
IsPlayerAiming(playerid, aimid)
{
new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
GetPlayerPos(playerid, X1, Y1, Z1);
GetObjectPos(aimid, X2, Y2, Z2);
new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 500)
{
new Float:A;
GetPlayerFacingAngle(playerid, A);
X1 += (Distance * floatsin(-A, degrees));
Y1 += (Distance * floatcos(-A, degrees));
Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 0.5)
{
return true;
}
}
return false;
}
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Hvala unapred.
Koristi OnPlayerShootDynamicObject(playerid, weaponid, objectid, Float:x, Float:y, Float:z)
i koristi objectid Srna