Skripta koju koristim:Svoju
Detaljan opis problema:Znaci ja hocu da stavim na posao kosac trave objekt da kad pregazi kosilicom on nestane i tako da treba sve te objekte pregazit i da bude umjesto ovih CP-ova
Dio skripte:
//-------------------------| Kosenje 1 |-------------------------//
pObject[playerid] = CreatePlayerObject(playerid, 822, 1950.7224, -1160.9788, 20.5583, 0, 0, 0);
if(PlayerToPoint(2.00, playerid, 1950.7224,-1160.9788,20.5583))// Kosenje - CP
{
DestroyPlayerObject(playerid, pObject[playerid]);
}
if(PlayerInfo[playerid][Kosenje] == 1)
{
new idvozila = GetPlayerVehicleID(playerid);
if(KosacTraveVozila(idvozila))
{
SetPlayerCheckpoint(playerid, 1922.5134,-1163.2823,22.1110,2.0);
}
}
}
if(PlayerToPoint(2.00, playerid, 1922.5134,-1163.2823,22.1110))// Kosenje - CP
{
if(PlayerInfo[playerid][Kosenje] == 1)
{
new idvozila = GetPlayerVehicleID(playerid);
if(KosacTraveVozila(idvozila))
{
SetPlayerCheckpoint(playerid, 1905.5430,-1171.5000,23.6665,2.0);
}
}
}
if(PlayerToPoint(2.00, playerid,1905.5430,-1171.5000,23.6665 ))// Kosenje - CP
{
if(PlayerInfo[playerid][Kosenje] == 1)
{
new idvozila = GetPlayerVehicleID(playerid);
if(KosacTraveVozila(idvozila))
{
SetPlayerCheckpoint(playerid,1890.1836,-1198.2316,20.5414 ,2.0);
}
}
}
Neke slike/video za lakse dobivanje pomoci(neobavezno):
//vrh skripte
new brojobjekata[MAX_PLAYERS][50]; //izboo sam broj
//napravi novu funkciju kojom ces kreirati ovo
brojobjekata[playerid][0] = //ovako kreiras 50 objekata, ja sam toliko naveo banalno, mozes i vise a i manje svakako
if(IsPlayerInRangeOfPoint(playerid, 5.0,//ovde proveris koordinate prvog objekata))
{
//ovde obrises objekat ( DestroyObject)
//ovde stavis varijablu igracu kojom ces svaki sledeci put proveravati da li je ima, sto ce potvrdjivati da je obrisao prethodni objekat i da moze obrisati i sledeci
}
Citat: David (Sabljak) A.k.A SABO(T) poslato Mart 11, 2014, 11:21:19 PRE PODNE
Ovo sta je Blakes dao, ali ima mana u tome, moras radit timer sa provjerom... a taj timer nije obavezan da koci skriptu
bolje napravis u checkopintovima ako stane da pobrise... al hajd
moze on u sustini kako hoce, ja sam mu dao ono sto je trazio :)
jel ja to trebam stavit tamo gdje je komanda /kosenje ili samo tu zamjenim sa ovim CP-ovima?
if(PlayerToPoint(5.00, playerid, 1940.54980, -1177.82813, 19.96798))// Kosenje - CP
{
DestroyObject(brojobjekata[0]);
}
if(PlayerInfo[playerid][Kosenje] == 1)
{
new idvozila = GetPlayerVehicleID(playerid);
if(KosacTraveVozila(idvozila))
{
SetPlayerCheckpoint(playerid, 1922.5134,-1163.2823,22.1110,2.0);
}
}
}
I kad napravio ovo pojave mi se errori i kazu da nesto playerid nevalja
brojobjekata[playerid][0] = CreateObject(826, 1940.54980, -1177.82813, 19.96798, 0.00000, 0.00000, 0.00000);
brojobjekata[playerid][1] = CreateObject(826, 1927.52332, -1186.21680, 19.96798, 0.00000, 0.00000, 0.00000);
brojobjekata[playerid][2] = CreateObject(826, 1925.05420, -1179.55298, 20.20800, 0.00000, 0.00000, 0.00000);
brojobjekata[playerid][3] = CreateObject(826, 1920.22302, -1174.89221, 21.20800, 0.00000, 0.00000, 0.00000);
I kada stavim DestroyObject onda mi baca ovaj error: error 035: argument type mismatch (argument 1)
BUMP
Napravio sam ovako al kad predjem preko njega nista senedesi
if(IsPlayerInRangeOfPoint(playerid, 5.0,1927.52332,-1186.21680,19.96798))// Kosenje - CP
{
if(PlayerInfo[playerid][Kosenje] == 1)
{
new idvozila = GetPlayerVehicleID(playerid);
if(KosacTraveVozila(idvozila))
{
DestroyObject(brojobjekata[1][playerid]);
return 1;
}
}
}
Nisam ja stavio nego sam zamjenio sa CP-ovima to je sve pod public OnPlayerEnterCheckpoint(playerid)
if(IsPlayerInRangeOfPoint(playerid, 5.0, 1927.52332, -1186.21680, 19.96798))// Kosenje - CP
{
if(PlayerInfo[playerid][Kosenje] == 1)
{
new idvozila = GetPlayerVehicleID(playerid);
if(KosacTraveVozila(idvozila))
{
DestroyDynamicObject(brojobjekata[1][playerid]);
return 1;
}
}
}
Tako sam stavio al opet nece da se makne objekat
Citat: David (Sabljak) A.k.A SABO(T) poslato Mart 14, 2014, 12:10:20 POSLE PODNE
i CreateDynamic?
probaj napisat neku poruku cisto da vidis ako funckija radi
if(KosacTraveVozila(idvozila))
{
DestroyDynamicObject(brojobjekata[1][playerid]);
//sendclientmessage
return 1;
}
Stavio sam nebaca mi poruku
Ovo je na pocetku kad izaberem kosenje 1
if(dialogid == KOSAC_TRAVE)
{
if(response)
{
if(listitem == 0) // Kosenje Linija - 1
{
PlayerInfo[playerid][Kosenje] = 1;
SendClientMessage(playerid, 0xFFC0CBAA,"Aktivirao si kosenje 1");
SendClientMessage(playerid, 0xB4B5B7FF,"Za ponistavanje koristi /ponisti");
if(IsPlayerInRangeOfPoint(playerid, 5.0, 1940.54980, -1177.82813, 19.96798))
{
DestroyDynamicObject(brojobjekata[0][playerid]);
SendClientMessage(playerid,COLOR_WHITE,"Nastavite kositi!");
return 1;
}
}
Ovo mi je pod DIALOG_RESPONSE
if(dialogid == KOSAC_TRAVE)
{
if(response)
{
if(listitem == 0) // Kosenje Linija - 1
{
PlayerInfo[playerid][Kosenje] = 1;
SendClientMessage(playerid, 0xFFC0CBAA,"Aktivirao si kosenje 1");
SendClientMessage(playerid, 0xB4B5B7FF,"Za ponistavanje koristi /ponisti");
if(IsPlayerInRangeOfPoint(playerid, 5.0,1940.54980,-1177.82813,19.96798))
{
DestroyDynamicObject(brojobjekata[0][playerid]);
SendClientMessage(playerid,COLOR_WHITE,"Nastavite kositi!");
return 1;
}
}
A ovo mi je pod OnPlayerEnterCheckpoint
if(PlayerInfo[playerid][Kosenje] > 0)
{
//-------------------------| Kosenje 1 |-------------------------//
if(IsPlayerInRangeOfPoint(playerid, 5.0, 1927.52332, -1186.21680, 19.96798))// Kosenje - CP
{
if(PlayerInfo[playerid][Kosenje] == 1)
{
new idvozila = GetPlayerVehicleID(playerid);
if(KosacTraveVozila(idvozila))
{
DestroyDynamicObject(brojobjekata[1][playerid]);
SendClientMessage(playerid,COLOR_WHITE,"Nastavite kositi!");
return 1;
}
}
}
BUMP
Moze pomoc?