Problem(error/warning): Kako da napravim label na vozilima, a dinamicno se kreiraju sva vozila, npr: od renta, orgova, za salone itd... Gamemod koji koristim San Marino
Dio skripte: [ pawn ]vaš odgovor[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike
To je i mn uvijek zanimalo bio sam ubacio sys renta od shomija radi extra dobro al isti problem ne pravi label jbg
https://wiki.sa-mp.com/wiki/Attach3DTextLabelToVehicle
e bas tako
Citat: Deken poslato Januar 12, 2019, 18:22:39 POSLE PODNE
https://wiki.sa-mp.com/wiki/Attach3DTextLabelToVehicle
e bas tako
Gledao sam ovo, sta cu s tim xD :D :D
Moram vidit sa
@Bašovski,
@• Shomy • i ostalim :D :D
Primer:
new Text3D:PrimerLabel[ MAX_VEHICLES ], voziloid;
voziloid = CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0);
PrimerLabel[ voziloid ] = Create3DTextLabel(text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, virtualworld, testLOS);
Attach3DTextLabelToVehicle(PrimerLabel[ voziloid ] , voziloid, 0.0, 0.0, 2.0);
Pogledaj na YTu imas od Sad Goat Production :D
Citat: • Shomy • poslato Januar 12, 2019, 18:38:03 POSLE PODNE
Primer:
new Text3D:PrimerLabel[ MAX_VEHICLES ], voziloid;
voziloid = CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0);
PrimerLabel[ voziloid ] = Create3DTextLabel(text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, virtualworld, testLOS);
Attach3DTextLabelToVehicle(PrimerLabel[ voziloid ] , voziloid, 0.0, 0.0, 2.0);
Ovo u gamemodeinit
[pawn]
voziloid = CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0);
PrimerLabel[ voziloid ] = Create3DTextLabel(text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, virtualworld, testLOS);
Attach3DTextLabelToVehicle(PrimerLabel[ voziloid ] , voziloid, 0.0, 0.0, 2.0);
[/pawn]
CreateDynamic3DTextLabel( const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_3D_TEXT_LABEL_SD, areaid = -1, priority = 0 )
attachedvehicle ti oznacava za koje vozilo ces prikaciti kreirani label.
Citat: // xunder poslato Januar 12, 2019, 19:00:06 POSLE PODNE
CreateDynamic3DTextLabel( const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_3D_TEXT_LABEL_SD, areaid = -1, priority = 0 )
attachedvehicle ti oznacava za koje vozilo ces prikaciti kreirani label.
Mislim da tako ide za UP mod, al ne razumem gdje to ide sad, kod ostalih labela ili?
Nit imam u skripti attachedvehicle
Citat: // xunder poslato Januar 12, 2019, 19:00:06 POSLE PODNE
CreateDynamic3DTextLabel( const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_3D_TEXT_LABEL_SD, areaid = -1, priority = 0 )
attachedvehicle ti oznacava za koje vozilo ces prikaciti kreirani label.
Ima ovako nesto
[pawn]
forward Nodze_CreateVehicle( scriptid, tip, orga, posao, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay );
public Nodze_CreateVehicle( scriptid, tip, orga, posao, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay ) {
if( ServerInfo[ BrojKreiranihVozila ] <= MaxBrojKreiranih ) {
ServerInfo[ BrojKreiranihVozila ]++;
new idKreiranog = CreateVehicle( modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay );
ScriptIDVozila[ idKreiranog ] = scriptid;
TipVozila[ idKreiranog ] = tip;
OrgaVozila[ idKreiranog ] = orga;
PosaoVozila[ idKreiranog ] = posao;
RealVehiclePositions[ idKreiranog ][ 0 ] = x;
RealVehiclePositions[ idKreiranog ][ 1 ] = y;
RealVehiclePositions[ idKreiranog ][ 2 ] = z;
BusyVehicle[ idKreiranog ] = -1;
garbagemanVehicles[ idKreiranog ][ gPlayerID ] = -1;
return idKreiranog;
} else return -1;
}
forward Nodze_DestroyVehicle( vehicleid );
public Nodze_DestroyVehicle( vehicleid ) {
if( vehicleid != -1 ) {
if( Neon[ vehicleid ] == 1 ) {
Neon[ vehicleid ] = 0;
DestroyDynamicObject( NeonObject1[ vehicleid ] );
DestroyDynamicObject( NeonObject2[ vehicleid ] );
}
RealVehiclePositions[ vehicleid ][ 0 ] = 0.0;
RealVehiclePositions[ vehicleid ][ 1 ] = 0.0;
RealVehiclePositions[ vehicleid ][ 2 ] = 0.0;
ScriptIDVozila[ vehicleid ] = -1;
TipVozila[ vehicleid ] = -1;
OrgaVozila[ vehicleid ] = -1;
PosaoVozila[ vehicleid ] = -1;
}
if( DestroyVehicle( vehicleid ) ) {
ServerInfo[ BrojKreiranihVozila ]--;
return 1;
}
else return -1;
}
[/pawn]
bump
Pogledaj ovo mozda pomogne
https://www.youtube.com/watch?v=3QWn9COpqw4
Citat: .pwnAmx poslato Januar 12, 2019, 21:03:45 POSLE PODNE
Pogledaj ovo mozda pomogne
https://www.youtube.com/watch?v=3QWn9COpqw4
Ma ljudi znam i ja na UP modu, jebo te UP prepisat ga, nego kako se pravi u dinamicnom stilu, znaci auta se kreiraju dinamicno, to je vozila od ORG, Poslova, renta, admin vozila, vip vozila i tak,, Sad Kakav Cod ide gdje, najgore ljudi posalju cod, a ne znam gdje ide, jel u createveh il gamemodeinit itd,
GAMEMOD KOJI KORISTIM SAN MARINO @• Shomy • @// xunder @nikisb
Kad kreiras tamo rent vozilo stavis ako je vozilo rent da napravili label [ RENT ] i da ga zakaci na vozilo primer
Citat: á—ªå,ä¹, poslato Januar 12, 2019, 22:18:54 POSLE PODNE
Kad kreiras tamo rent vozilo stavis ako je vozilo rent da napravili label [ RENT ] i da ga zakaci na vozilo primer
Al cekaj daj mi kodove, i gdje ide to, jel u CreateVehicle ovo?
[pawn]
forward Nodze_CreateVehicle( scriptid, tip, orga, posao, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay );
public Nodze_CreateVehicle( scriptid, tip, orga, posao, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay ) {
if( ServerInfo[ BrojKreiranihVozila ] <= MaxBrojKreiranih ) {
ServerInfo[ BrojKreiranihVozila ]++;
new idKreiranog = CreateVehicle( modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay );
ScriptIDVozila[ idKreiranog ] = scriptid;
TipVozila[ idKreiranog ] = tip;
OrgaVozila[ idKreiranog ] = orga;
PosaoVozila[ idKreiranog ] = posao;
RealVehiclePositions[ idKreiranog ][ 0 ] = x;
RealVehiclePositions[ idKreiranog ][ 1 ] = y;
RealVehiclePositions[ idKreiranog ][ 2 ] = z;
BusyVehicle[ idKreiranog ] = -1;
garbagemanVehicles[ idKreiranog ][ gPlayerID ] = -1;
return idKreiranog;
} else return -1;
}
forward Nodze_DestroyVehicle( vehicleid );
public Nodze_DestroyVehicle( vehicleid ) {
if( vehicleid != -1 ) {
if( Neon[ vehicleid ] == 1 ) {
Neon[ vehicleid ] = 0;
DestroyDynamicObject( NeonObject1[ vehicleid ] );
DestroyDynamicObject( NeonObject2[ vehicleid ] );
}
RealVehiclePositions[ vehicleid ][ 0 ] = 0.0;
RealVehiclePositions[ vehicleid ][ 1 ] = 0.0;
RealVehiclePositions[ vehicleid ][ 2 ] = 0.0;
ScriptIDVozila[ vehicleid ] = -1;
TipVozila[ vehicleid ] = -1;
OrgaVozila[ vehicleid ] = -1;
PosaoVozila[ vehicleid ] = -1;
}
if( DestroyVehicle( vehicleid ) ) {
ServerInfo[ BrojKreiranihVozila ]--;
return 1;
}
else return -1;
}
[/pawn]
Znaci vozila cuva u Folderu scriptfile (Vozila), Sad ne znam kako da izvedem da na svakom vozilu pise od cega je npr od Organizacije, La Cosa Nostra, i da na autu pise [ LCN ]
Funkcija CreateVehicle ti vraca (returna) id vozila koje kreira.
Zamisli da imas 500 vozila i ako ukucas
new const vehicleid = CreateVehicle(...); // Ovo ce biti vozilo id 501
// Sada mozes jednostavno attachat 3d text label za vehicleid
CreateDynamic3DTextLabel("Rent vozilo", -1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, .attachedvehicle = vehicleid);
Ne znam kako bolje da ti objasnim ovo.
Citat: Nodze poslato Januar 12, 2019, 22:21:00 POSLE PODNE
Al cekaj daj mi kodove, i gdje ide to, jel u CreateVehicle ovo?
[pawn]
forward Nodze_CreateVehicle( scriptid, tip, orga, posao, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay );
public Nodze_CreateVehicle( scriptid, tip, orga, posao, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay ) {
if( ServerInfo[ BrojKreiranihVozila ] <= MaxBrojKreiranih ) {
ServerInfo[ BrojKreiranihVozila ]++;
new idKreiranog = CreateVehicle( modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay );
ScriptIDVozila[ idKreiranog ] = scriptid;
TipVozila[ idKreiranog ] = tip;
OrgaVozila[ idKreiranog ] = orga;
PosaoVozila[ idKreiranog ] = posao;
RealVehiclePositions[ idKreiranog ][ 0 ] = x;
RealVehiclePositions[ idKreiranog ][ 1 ] = y;
RealVehiclePositions[ idKreiranog ][ 2 ] = z;
BusyVehicle[ idKreiranog ] = -1;
garbagemanVehicles[ idKreiranog ][ gPlayerID ] = -1;
return idKreiranog;
} else return -1;
}
forward Nodze_DestroyVehicle( vehicleid );
public Nodze_DestroyVehicle( vehicleid ) {
if( vehicleid != -1 ) {
if( Neon[ vehicleid ] == 1 ) {
Neon[ vehicleid ] = 0;
DestroyDynamicObject( NeonObject1[ vehicleid ] );
DestroyDynamicObject( NeonObject2[ vehicleid ] );
}
RealVehiclePositions[ vehicleid ][ 0 ] = 0.0;
RealVehiclePositions[ vehicleid ][ 1 ] = 0.0;
RealVehiclePositions[ vehicleid ][ 2 ] = 0.0;
ScriptIDVozila[ vehicleid ] = -1;
TipVozila[ vehicleid ] = -1;
OrgaVozila[ vehicleid ] = -1;
PosaoVozila[ vehicleid ] = -1;
}
if( DestroyVehicle( vehicleid ) ) {
ServerInfo[ BrojKreiranihVozila ]--;
return 1;
}
else return -1;
}
[/pawn]
Znaci vozila cuva u Folderu scriptfile (Vozila), Sad ne znam kako da izvedem da na svakom vozilu pise od cega je npr od Organizacije, La Cosa Nostra, i da na autu pise [ LCN ]
Probaj ovako:
[pawn]forward Nodze_CreateVehicle( scriptid, tip, orga, posao, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay );
public Nodze_CreateVehicle( scriptid, tip, orga, posao, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay ) {
if( ServerInfo[ BrojKreiranihVozila ] <= MaxBrojKreiranih ) {
ServerInfo[ BrojKreiranihVozila ]++;
new idKreiranog = CreateVehicle( modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay );
ScriptIDVozila[ idKreiranog ] = scriptid;
TipVozila[ idKreiranog ] = tip;
OrgaVozila[ idKreiranog ] = orga;
PosaoVozila[ idKreiranog ] = posao;
RealVehiclePositions[ idKreiranog ][ 0 ] = x;
RealVehiclePositions[ idKreiranog ][ 1 ] = y;
RealVehiclePositions[ idKreiranog ][ 2 ] = z;
rvehl[playerid] = Create3DTextLabel("[RENT]", 0xFFFFFFAA, 0.0, 0.0, 0.0, 20, 0, 1);
Attach3DTextLabelToVehicle(rvehl[playerid], ID Vozila, 0.0, 0.0, 0.0);
BusyVehicle[ idKreiranog ] = -1;
garbagemanVehicles[ idKreiranog ][ gPlayerID ] = -1;
return idKreiranog;
} else return -1;
}[/pawn]
P.S. Na vrhu skripte dodaj [pawn]new Text3D: rvehl[MAX_PLAYERS];[/pawn]
Citat: // xunder poslato Januar 12, 2019, 22:31:00 POSLE PODNE
Funkcija CreateVehicle ti vraca (returna) id vozila koje kreira.
Zamisli da imas 500 vozila i ako ukucas
new const vehicleid = CreateVehicle(...); // Ovo ce biti vozilo id 501
// Sada mozes jednostavno attachat 3d text label za vehicleid
CreateDynamic3DTextLabel("Rent vozilo", -1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, .attachedvehicle = vehicleid);
Ne znam kako bolje da ti objasnim ovo.
brate napravio sam ovako, sad nece da prikazuje na vozilima, a nema erora nit warninga :D :D
[pawn]
stock SetVehicleLabels( i ) {
if( !VehicleInfo[ i ][ Validv3DText ] ) {
if( VehicleInfo[ i ][ vUsage ] == ADMIN_VOZILO ) {
VehicleInfo[ i ][ Validv3DText ] = true;
VehicleInfo[ i ][ v3DText ] = Create3DTextLabel( "[ ADMIN ]", 0x000000FF, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle( VehicleInfo[ i ][ v3DText ], VehicleInfo[ i ][ vID ], 0.0, 0.0, 0.0);
}
else if( VehicleInfo[ i ][ vUsage ] == RENTANO_VOZILO ) {
VehicleInfo[ i ][ Validv3DText ] = true;
VehicleInfo[ i ][ v3DText ] = Create3DTextLabel( "[ RENT ]", 0x33CCFFAA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle( VehicleInfo[ i ][ v3DText ], VehicleInfo[ i ][ vID ], 0.0, 0.0, 0.0);
}
/* else if( VehicleInfo[ i ][ vUsage ] == PROMOTER_VOZILO ) {
VehicleInfo[ i ][ Validv3DText ] = true;
VehicleInfo[ i ][ v3DText ] = Create3DTextLabel( "[ PROMOTER ]", 0x33CCFFAA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle( VehicleInfo[ i ][ v3DText ], VehicleInfo[ i ][ vID ], 0.0, 0.0, 0.0);
}*/
else if( VehicleInfo[ i ][ vUsage ] == VIP_VOZILO ) {
VehicleInfo[ i ][ Validv3DText ] = true;
VehicleInfo[ i ][ v3DText ] = Create3DTextLabel( "[ VIP ]", 0x33CCFFAA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle( VehicleInfo[ i ][ v3DText ], VehicleInfo[ i ][ vID ], 0.0, 0.0, 0.0);
}
/* else if( VehicleInfo[ i ][ vUsage ] == Supporter_VOZILO ) {
VehicleInfo[ i ][ Validv3DText ] = true;
VehicleInfo[ i ][ v3DText ] = Create3DTextLabel( "[ Supporter ]", 0xDABB3EAA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle( VehicleInfo[ i ][ v3DText ], VehicleInfo[ i ][ vID ], 0.0, 0.0, 0.0);
}*/
else if( VehicleInfo[ i ][ vUsage ] == ORGANIZACIJSKO_VOZILO ) {
if( OI[ VehicleInfo[ i ][ vOrganization ] ][ oTip ] == ORG_TIP_PD ) {
new stringce[ 20 ];
format( stringce, sizeof( stringce ), "[ %s ]", OI[ VehicleInfo[ i ][ vOrganization ] ][ oPreFix ] );
VehicleInfo[ i ][ Validv3DText ] = true;
VehicleInfo[ i ][ v3DText ] = Create3DTextLabel( stringce, 0x33CCFFAA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle( VehicleInfo[ i ][ v3DText ], VehicleInfo[ i ][ vID ], 0.0, 0.0, 0.0);
// }
// }
/* else if( VehicleInfo[ i ][ vUsage ] == PUMPA_VOZILO ) {
if( VehicleInfo[ i ][ vModel ] == 584 ) {
new fstationID = VehicleInfo[ i ][ vFuelProperty ];
new stringce[ 256 ];
format( stringce, sizeof stringce, "{0F87FF}[ "col_white"CISTERNA {0F87FF}]\n{0F87FF}Dizel: {FFFFFF}%d/300 litara\n{0F87FF}Benzin: {FFFFFF}%d/300 litara\n{0F87FF}Gas: {FFFFFF}%d/300 litara\n{0F87FF}Gasno Ulje: {FFFFFF}%d/300 litara\n\n{0F87FF}[ {FFFFFF}%s {0F87FF}]", CisternFuel[ VehicleInfo[ i ][ vID ] ][ 0 ], CisternFuel[ VehicleInfo[ i ][ vID ] ][ 1 ], CisternFuel[ VehicleInfo[ i ][ vID ] ][ 3 ], CisternFuel[ VehicleInfo[ i ][ vID ] ][ 2 ], FuelStation[ fstationID ][ fsName ] );
VehicleInfo[ i ][ Validv3DText ] = true;
VehicleInfo[ i ][ v3DText ] = Create3DTextLabel( stringce, 0x33CCFFAA, 0.0, 0.0, 0.0, 30.0, 0, 1 );
Attach3DTextLabelToVehicle( VehicleInfo[ i ][ v3DText ], VehicleInfo[ i ][ vID ], 0.0, 0.0, 0.0);
}
}
}
else if( VehicleInfo[ i ][ Validv3DText ] ) {
if( VehicleInfo[ i ][ vUsage ] == PUMPA_VOZILO ) {
if( VehicleInfo[ i ][ vModel ] == 584 ) {
new fstationID = VehicleInfo[ i ][ vFuelProperty ];
Delete3DTextLabel( VehicleInfo[ i ][ v3DText ] );
new stringce[ 256 ];
format( stringce, sizeof stringce, "{0F87FF}[ "col_white"CISTERNA {0F87FF}]\n{0F87FF}Dizel: {FFFFFF}%d/300 litara\n{0F87FF}Benzin: {FFFFFF}%d/300 litara\n{0F87FF}Gas: {FFFFFF}%d/300 litara\n{0F87FF}Gasno Ulje: {FFFFFF}%d/300 litara\n\n{0F87FF}[ {FFFFFF}%s {0F87FF}]", CisternFuel[ VehicleInfo[ i ][ vID ] ][ 0 ], CisternFuel[ VehicleInfo[ i ][ vID ] ][ 1 ], CisternFuel[ VehicleInfo[ i ][ vID ] ][ 3 ], CisternFuel[ VehicleInfo[ i ][ vID ] ][ 2 ], FuelStation[ fstationID ][ fsName ] );
VehicleInfo[ i ][ Validv3DText ] = true;
VehicleInfo[ i ][ v3DText ] = Create3DTextLabel( stringce, 0x33CCFFAA, 0.0, 0.0, 0.0, 30.0, 0, 1 );
Attach3DTextLabelToVehicle( VehicleInfo[ i ][ v3DText ], VehicleInfo[ i ][ vID ], 0.0, 0.0, 0.0);*/
}
}
}
}
[/pawn]