Skripta koju koristim: Od 0 radim
Detaljan opis problema: Hocu da kada vatrogasac sa weapon id 42 gasi pozar ( objekat 18688 ) da se unisti taj objekat
Dio skripte: if(hittype == BULLET_HIT_TYPE_OBJECT)
{
if(IsValidObject(hitid))
{
if(weaponid == 42)
{
if(hitid == VatraObject[0])
{
VatraObject[0] -= 1;
if(VatraObject[0] == 0)
{
DestroyObject(VatraObject[0]);
SendJobMessage(playerid, "Ugasili ste pozar i dobili platu 100$");
PlayerInfo[playerid][xPlatniRacun] += 100;
UpdatePlataTD(playerid);
}
}
else if(hitid == VatraObject[1])
{
VatraObject[1] -= 1;
if(VatraObject[1] == 0)
{
DestroyObject(VatraObject[1]);
SendJobMessage(playerid, "Ugasili ste pozar i dobili platu 100$");
PlayerInfo[playerid][xPlatniRacun] += 100;
UpdatePlataTD(playerid);
}
}
else if(hitid == VatraObject[2])
{
VatraObject[2] -= 1;
if(VatraObject[2] == 0)
{
DestroyObject(VatraObject[2]);
SendJobMessage(playerid, "Ugasili ste pozar i dobili platu 100$");
PlayerInfo[playerid][xPlatniRacun] += 100;
UpdatePlataTD(playerid);
}
}
else if(hitid == VatraObject[3])
{
VatraObject[3] -= 1;
if(VatraObject[3] == 0)
{
DestroyObject(VatraObject[3]);
SendJobMessage(playerid, "Ugasili ste pozar i dobili platu 100$");
PlayerInfo[playerid][xPlatniRacun] += 100;
UpdatePlataTD(playerid);
}
}
else if(hitid == VatraObject[4])
{
VatraObject[4] -= 1;
if(VatraObject[4] == 0)
{
DestroyObject(VatraObject[4]);
SendJobMessage(playerid, "Ugasili ste pozar i dobili platu 100$");
PlayerInfo[playerid][xPlatniRacun] += 100;
UpdatePlataTD(playerid);
}
}
else if(hitid == VatraObject[5])
{
VatraObject[5] -= 1;
if(VatraObject[5] == 0)
{
DestroyObject(VatraObject[5]);
SendJobMessage(playerid, "Ugasili ste pozar i dobili platu 100$");
PlayerInfo[playerid][xPlatniRacun] += 100;
UpdatePlataTD(playerid);
}
}
if(hitid == VatraObject[6])
{
VatraObject[6] -= 1;
if(VatraObject[6] == 0)
{
DestroyObject(VatraObject[6]);
SendJobMessage(playerid, "Ugasili ste pozar i dobili platu 100$");
PlayerInfo[playerid][xPlatniRacun] += 100;
UpdatePlataTD(playerid);
}
}
else if(hitid == VatraObject[7])
{
VatraObject[7] -= 1;
if(VatraObject[7] == 0)
{
DestroyObject(VatraObject[7]);
SendJobMessage(playerid, "Ugasili ste pozar i dobili platu 100$");
PlayerInfo[playerid][xPlatniRacun] += 100;
UpdatePlataTD(playerid);
}
}
}
}
}
Neke slike/video za lakse dobivanje pomoci(neobavezno): //
VatraObject jel dynamic ili obican?
I da, ovaj kod je pod publicom OnPlayerWeaponShot
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
Da li mi mozes objasniti na sta si mislio pod "preko vektora registrovat aim na objekat.."
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
i da, da li bi moglo samo if(GetPlayerWeapon(playerid) == 42) umesto weaponid == 42?
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 14:46:05 POSLE PODNE
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
Da li mi mozes objasniti na sta si mislio pod "preko vektora registrovat aim na objekat.."
[pawn]stock IsPlayerAimingObj(playerid, objid) {
new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
GetPlayerPos(playerid, X1, Y1, Z1); //IgraÄ
GetObjectPos(objid, X2, Y2, Z2); //Objekat
new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2)); //Distanca 1
if(Distance < 100) {
new Float:englbro;
GetPlayerFacingAngle(playerid, englbro);
X1 += (Distance * floatsin(-englbro, degrees));
Y1 += (Distance * floatcos(-englbro, degrees));
Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 4.0) { //Naštimaj sebi distancu
return true;
}
}
return false;
}[/pawn]
Ta je funkcija u mom gamemodu, Disaronno, na poslu Vatrogasca, pa eto ti sebi prilagodi, inaÄe ne dajem funkcije, ali tu smo da pomognemo je li... ;D
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 14:48:00 POSLE PODNE
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
i da, da li bi moglo samo if(GetPlayerWeapon(playerid) == 42) umesto weaponid == 42?
Ne, neće registrovat da si pucao u objekat, jer taj weapon ne puca.
Citat: Slade poslato Oktobar 08, 2017, 14:56:18 POSLE PODNE
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 14:46:05 POSLE PODNE
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
Da li mi mozes objasniti na sta si mislio pod "preko vektora registrovat aim na objekat.."
[pawn]stock IsPlayerAimingObj(playerid, objid) {
new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
GetPlayerPos(playerid, X1, Y1, Z1); //IgraÄ
GetObjectPos(objid, X2, Y2, Z2); //Objekat
new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2)); //Distanca 1
if(Distance < 100) {
new Float:englbro;
GetPlayerFacingAngle(playerid, englbro);
X1 += (Distance * floatsin(-englbro, degrees));
Y1 += (Distance * floatcos(-englbro, degrees));
Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 4.0) { //Naštimaj sebi distancu
return true;
}
}
return false;
}[/pawn]
Ta je funkcija u mom gamemodu, Disaronno, na poslu Vatrogasca, pa eto ti sebi prilagodi, inaÄe ne dajem funkcije, ali tu smo da pomognemo je li... ;D
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 14:48:00 POSLE PODNE
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
i da, da li bi moglo samo if(GetPlayerWeapon(playerid) == 42) umesto weaponid == 42?
Ne, neće registrovat da si pucao u objekat, jer taj weapon ne puca.
Hvala :) Sad cu pokusati
Citat: Slade poslato Oktobar 08, 2017, 14:56:18 POSLE PODNE
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 14:46:05 POSLE PODNE
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
Da li mi mozes objasniti na sta si mislio pod "preko vektora registrovat aim na objekat.."
[pawn]stock IsPlayerAimingObj(playerid, objid) {
new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
GetPlayerPos(playerid, X1, Y1, Z1); //IgraÄ
GetObjectPos(objid, X2, Y2, Z2); //Objekat
new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2)); //Distanca 1
if(Distance < 100) {
new Float:englbro;
GetPlayerFacingAngle(playerid, englbro);
X1 += (Distance * floatsin(-englbro, degrees));
Y1 += (Distance * floatcos(-englbro, degrees));
Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 4.0) { //Naštimaj sebi distancu
return true;
}
}
return false;
}[/pawn]
Ta je funkcija u mom gamemodu, Disaronno, na poslu Vatrogasca, pa eto ti sebi prilagodi, inaÄe ne dajem funkcije, ali tu smo da pomognemo je li... ;D
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 14:48:00 POSLE PODNE
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
i da, da li bi moglo samo if(GetPlayerWeapon(playerid) == 42) umesto weaponid == 42?
Ne, neće registrovat da si pucao u objekat, jer taj weapon ne puca.
Mozes li mi objasniti kako se koristi IsPlayerAimingObj?
Citat: Slade poslato Oktobar 08, 2017, 14:56:18 POSLE PODNE
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 14:46:05 POSLE PODNE
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
Da li mi mozes objasniti na sta si mislio pod "preko vektora registrovat aim na objekat.."
[pawn]stock IsPlayerAimingObj(playerid, objid) {
new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
GetPlayerPos(playerid, X1, Y1, Z1); //IgraÄ
GetObjectPos(objid, X2, Y2, Z2); //Objekat
new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2)); //Distanca 1
if(Distance < 100) {
new Float:englbro;
GetPlayerFacingAngle(playerid, englbro);
X1 += (Distance * floatsin(-englbro, degrees));
Y1 += (Distance * floatcos(-englbro, degrees));
Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 4.0) { //Naštimaj sebi distancu
return true;
}
}
return false;
}[/pawn]
Ta je funkcija u mom gamemodu, Disaronno, na poslu Vatrogasca, pa eto ti sebi prilagodi, inaÄe ne dajem funkcije, ali tu smo da pomognemo je li... ;D
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 14:48:00 POSLE PODNE
Citat: Slade poslato Oktobar 08, 2017, 14:40:44 POSLE PODNE
Nema potrebe da radiÅ¡ tako, neće nikad funkcionirat, kad priguÅ¡ivaÄ za vatru nije registrovano kao oružije u toj funkciji, da pucas sa m4 u vatru, imalo bi logike, ali Fire eqs ne, morat ćeÅ¡ napravit provjeru za holding i preko vektora registrovat aim na objekat...
i da, da li bi moglo samo if(GetPlayerWeapon(playerid) == 42) umesto weaponid == 42?
Ne, neće registrovat da si pucao u objekat, jer taj weapon ne puca.
https://forum.sa-mp.com/showthread.php?t=566756 ?
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 18:41:21 POSLE PODNE
Mozes li mi objasniti kako se koristi IsPlayerAimingObj?
[pawn]if(IsPlayerAimingObj(playerid, ObjekatVatre) { ... }[/pawn]
Citat: Slade poslato Oktobar 08, 2017, 19:27:05 POSLE PODNE
Citat: [ ATH ] Shomy Script poslato Oktobar 08, 2017, 18:41:21 POSLE PODNE
Mozes li mi objasniti kako se koristi IsPlayerAimingObj?
[pawn]if(IsPlayerAimingObj(playerid, ObjekatVatre) { ... }[/pawn]
Znam to nego mi ne radi
Bravo
Nisi dobro napravio holding ili što već...
Citat: Slade poslato Oktobar 08, 2017, 19:38:32 POSLE PODNE
Nisi dobro napravio holding ili što već...
for(new i = 0; i < 8; i++)
{
if(IsPlayerAimingObj(playerid, VatraObject[i]))
{
if(GetPlayerWeapon(playerid) == 42)
{
DestroyObject(VatraObject[i]);
}
}
}
Ovako sam napravio (samo za test) pa pogledaj, ako ima greska reci :) I da, stavio sam pod public OnPlayerUpdate
To ce bukvalno istog momenta unistit taj objekat, i dodaj break.
Citat: Slade poslato Oktobar 08, 2017, 22:50:12 POSLE PODNE
To ce bukvalno istog momenta unistit taj objekat, i dodaj break.
Znam, hteo sam za test, ali ne radi mi
Nesto nisi dobro odradio
Citat: Slade poslato Oktobar 08, 2017, 22:53:58 POSLE PODNE
Nesto nisi dobro odradio
Problem je taj sto ne znam sta sam pogresio
Vrlo je moguce da je do objekta, i daj komplet komandu/funkciju gdje testas
Citat: Slade poslato Oktobar 08, 2017, 23:46:55 POSLE PODNE
Vrlo je moguce da je do objekta, i daj komplet komandu/funkciju gdje testas
Evo
CMD:nadjivatru(playerid, params[])
{
new Randoming;
Randoming = random(8);
for(new i; i < MAX_PLAYERS; i++)
{
if( OI[ PlayerInfo[ i ][ xLider ] ][ oTip ] == ORG_TIP_FD )
{
if(NadjiVatruCMD[i] == 0)
{
SetTimerEx( "NadjiVatru", 600000, false, "i", i );
NadjiVatruCMD[i] = 1;
SCMA( SVETLOCRVENA, "U toku je pozar na prostoru Athlone republike, mole se vatrogasci da reaguju." );
switch(Randoming)
{
case 0:
{
SetPlayerCheckpoint(i, 1145.2186, -1770.8191, 16.5992, 3.0);
VatraObject[0] = CreateObject(18688, 1145.2186, -1770.8191, 16.5992, 0.0, 0.0, 0.0, 100);
VatraObject[0] = 100;
}
case 1:
{
SetPlayerCheckpoint(i, 867.0505, -1203.2423, 16.9766, 3.0);
VatraObject[1] = CreateObject(18688, 867.0505, -1203.2423, 16.9766, 0.0, 0.0, 0.0, 100);
VatraObject[1] = 100;
}
case 2:
{
SetPlayerCheckpoint(i, 1027.0673, -1027.9675, 38.2944, 3.0);
VatraObject[2] = CreateObject(18688, 1027.0673, -1027.9675, 38.2944, 0.0, 0.0, 0.0, 100);
VatraObject[2] = 100;
}
case 3:
{
SetPlayerCheckpoint(i, 1411.0969, 345.9349, 18.8731, 3.0);
VatraObject[3] = CreateObject(18688, 1411.0969, 345.9349, 18.8731, 0.0, 0.0, 0.0, 100);
VatraObject[3] = 100;
}
case 4:
{
SetPlayerCheckpoint(i, 674.8557, 826.8502, -38.4114, 3.0);
VatraObject[4] = CreateObject(18688, 674.8557, 826.8502, -38.4114, 0.0, 0.0, 0.0, 100);
VatraObject[4] = 100;
}
case 5:
{
SetPlayerCheckpoint(i, 2022.2634, 1007.5195, 15.1631, 3.0);
VatraObject[5] = CreateObject(18688, 2022.2634, 1007.5195, 15.1631, 0.0, 0.0, 0.0, 100);
VatraObject[5] = 100;
}
case 6:
{
SetPlayerCheckpoint(i, -2134.8557, 168.6582, 42.2500, 3.0);
VatraObject[6] = CreateObject(18688, -2134.8557, 168.6582, 42.2500, 0.0, 0.0, 0.0, 100);
VatraObject[6] = 100;
}
case 7:
{
SetPlayerCheckpoint(i, -1821.4268,567.6339,275.0781, 3.0);
VatraObject[7] = CreateObject(18688, -1821.4268,567.6339,275.0781, 0.0, 0.0, 0.0, 100);
VatraObject[7] = 100;
}
}
}
else return GRESKA(playerid, "Nije proslo 10 minuta od prosle upotrebe te komande !");
}
}
return 1;
}
[pawn]VatraObject[0] = CreateObject(18688, 1145.2186, -1770.8191, 16.5992, 0.0, 0.0, 0.0, 100);
VatraObject[0] = 100;[/pawn]
???
Citat: Slade poslato Oktobar 09, 2017, 19:41:41 POSLE PODNE
[pawn]VatraObject[0] = CreateObject(18688, 1145.2186, -1770.8191, 16.5992, 0.0, 0.0, 0.0, 100);
VatraObject[0] = 100;[/pawn]
???
To je hp objecta to 100
Citat: [ ATH ] Shomy Script poslato Oktobar 09, 2017, 19:48:54 POSLE PODNE
Citat: Slade poslato Oktobar 09, 2017, 19:41:41 POSLE PODNE
[pawn]VatraObject[0] = CreateObject(18688, 1145.2186, -1770.8191, 16.5992, 0.0, 0.0, 0.0, 100);
VatraObject[0] = 100;[/pawn]
???
To je hp objecta to 100
wtf, jedna varijabla za 2 stvari
Citat: Åukmember=1996][/member] link=topic=115258.msg766432#msg766432 date=1507573273]
Citat: [ ATH ] Shomy Script poslato Oktobar 09, 2017, 19:48:54 POSLE PODNE
Citat: Slade poslato Oktobar 09, 2017, 19:41:41 POSLE PODNE
[pawn]VatraObject[0] = CreateObject(18688, 1145.2186, -1770.8191, 16.5992, 0.0, 0.0, 0.0, 100);
VatraObject[0] = 100;[/pawn]
???
To je hp objecta to 100
wtf, jedna varijabla za 2 stvari
Hahahah sad kontam sta sam sjebo tu :D
Koliko sam glup HAHAHA :D Radi sve hvala vam
@Slade i
@Luk
@ :D