Skripta koju koristim: Edit ATH
Detaljan opis problema: Pozdrav momci , ovako imam jedan problem sa kojim muku muÄim već par dana ali nikako da ga rijeÅ¡im naime rjeÄ je o editu Athlone moda...
Ovako kreiram npr kontejner(ili bilo koji objekat etc. atm, radar...) i sada kada završim pozicioniranje (editovanje) objekta , stvori(kreira) mi se u njemu i zadnji graffit (tag) koji sam predhodno kreirao , evo dio dole ispod
Dio skripte:
[pawn]OnPlayerEditDynamicObject // To je kada se završi editovanje objekta odnosno pritisne save ikonica..[/pawn]
Evo sada vam nastavak skripte
[pawn]public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
new Float:oldX, Float:oldY, Float:oldZ,
Float:oldRotX, Float:oldRotY, Float:oldRotZ;
GetObjectPos(objectid, oldX, oldY, oldZ);
GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
if( response == EDIT_RESPONSE_FINAL )
{
new tagid = TagPromena[ playerid ]; // ovo sam premještao i gore i dole , al opet ista stvar ili se stvore errori .. :(
if( ObjectEdition_TYPE[ playerid ] != 255 ) {
new hid = inProperty[ playerid ];
new i = ObjectEdition_TYPE[ playerid ];
if( hid != -1 ) {
Furniture[ hid ][ i ][ f_X ] = x;
Furniture[ hid ][ i ][ f_Y ] = y;
Furniture[ hid ][ i ][ f_Z ] = z;
Furniture[ hid ][ i ][ f_rX ] = rx;
Furniture[ hid ][ i ][ f_rY ] = ry;
Furniture[ hid ][ i ][ f_rZ ] = rz;
Furniture[ hid ][ i ][ f_VW ] = GetPlayerVirtualWorld( playerid );
SCM( playerid, BECOLOR, "Namestaj sacuvan");
DestroyDynamicObject( Furniture[ hid ][ i ][ f_Object ] );
Furniture[ hid ][ i ][ f_Object ] = CreateDynamicObject( Furniture[ hid ][ i ][ f_Model ], Furniture[ hid ][ i ][ f_X ], Furniture[ hid ][ i ][ f_Y ], Furniture[ hid ][ i ][ f_Z ], Furniture[ hid ][ i ][ f_rX ], Furniture[ hid ][ i ][ f_rY ], Furniture[ hid ][ i ][ f_rZ ], II[ hid ][ iVW ], II[ hid ][ iInterior ], -1, 200.0 );
SaveFurniture( hid ); ObjectEdition_TYPE[ playerid ] = 255;
return 1;
}
}
if( EditDGate[ playerid ] != -1 ) {
new g = EditDGate[ playerid ];
GateData[ g ][ gatePos ][ 0 ] = x;
GateData[ g ][ gatePos ][ 1 ] = y;
GateData[ g ][ gatePos ][ 2 ] = z;
GateData[ g ][ gatePos ][ 3 ] = rx;
GateData[ g ][ gatePos ][ 4 ] = ry;
GateData[ g ][ gatePos ][ 5 ] = rz;
Info( playerid, "Uspesno sacuvana pozicija zatvorene kapije.");
SCM( playerid, BECOLOR, "Sada sacuvajte poziciju otvorene kapije.");
EditDynamicObject( playerid, GateData[ g ][ gateObject ] );
SaveGate( g ); EditDGate[ playerid ] = -1; EditDGateMove[ playerid ] = g;
return 1;
}
if( EditDGateMove[ playerid ] != -1 ) {
new g = EditDGateMove[ playerid ];
GateData[ g ][ gateMove ][ 0 ] = x;
GateData[ g ][ gateMove ][ 1 ] = y;
GateData[ g ][ gateMove ][ 2 ] = z;
GateData[ g ][ gateMove ][ 3 ] = rx;
GateData[ g ][ gateMove ][ 4 ] = ry;
GateData[ g ][ gateMove ][ 5 ] = rz;
Info( playerid, "Uspesno sacuvana pozicija otvorene kapije.");
SPD( playerid, dialog_CREATEGATE_2, DSI, D_NASLOV, "Unesite brzinu zatvaranja i otvaranja kapije( 0-20.0).", D_ODABERI, D_NAZAD );
DestroyDynamicObject( GateData[ g ][ gateObject ] );
GateData[ g ][ gateObject ] = CreateDynamicObject( GateData[ g ][ gateModel ], GateData[ g ][ gatePos ][ 0 ], GateData[ g ][ gatePos ][ 1 ], GateData[ g ][ gatePos ][ 2 ], GateData[ g ][ gatePos ][ 3 ], GateData[ g ][ gatePos ][ 4 ], GateData[ g ][ gatePos ][ 5 ], GateData[ g ][ gateWorld ], GateData[ g ][ gateInterior ] );
SaveGate( g ); EditDGate[ playerid ] = g; EditDGateMove[ playerid ] = -1;
return 1;
}
// new tagid = TagPromena[ playerid ];
if( tagid != -1 ) {
TagInfo[ tagid ][ tagPozX ] = x;
TagInfo[ tagid ][ tagPozY ] = y;
TagInfo[ tagid ][ tagPozZ ] = z;
TagInfo[ tagid ][ tagRotX ] = rx;
TagInfo[ tagid ][ tagRotY ] = ry;
TagInfo[ tagid ][ tagRotZ ] = rz;
DestroyDynamicObject( TagInfo[ tagid ][ tagObjekatID ] );
KreirajTag( tagid ); SacuvajTag( tagid );
SendClientMessageEx( playerid, -1, ""col_be"[BOpium]: "col_white"Uspesno ste promenili poziciju taga ID: %d - Tag sacuvan!", tagid );
return 1;
}
if( EditKontejnera[ playerid ] != -1 ) {
new i = EditKontejnera[ playerid ];
DestroyDynamicObject( KontInfo[ i ][ koObjID ] );
KontInfo[ i ][ koObjPos ][ 0 ] = x;
KontInfo[ i ][ koObjPos ][ 1 ] = y;
KontInfo[ i ][ koObjPos ][ 2 ] = z;
KontInfo[ i ][ koObjRot ][ 0 ] = rx;
KontInfo[ i ][ koObjRot ][ 1 ] = ry;
KontInfo[ i ][ koObjRot ][ 2 ] = rz;
KontInfo[ i ][ koObjID ] = CreateDynamicObject(1345, x, y, z, rx, ry, rz);
SacuvajKont( i );
EditKontejnera[ playerid ] = -1;
return 1;
}[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno): Evo slike kako izgleda to kad mi se tag ( graffit ) stvori na mestu editovanja kontejnera http://prntscr.com/g3wkvf
Ako sam te razumeo stvori objekat i grafit na isto mesto. Kad kliknes save poziva se na sve sto ti je u skripti defini kad editujes objekat tipa editobj[playerid] = 1; i stavis proveru if(editobj[playerid] == 1) { da sacuva samo to tj da se pozove samo na to
Nisam te razumeo baš , eto dao sam ti kodove pa vidi, gde treba da stavim proveru ?
Kod komande za editovanje postavi tipa editobj[playerid] = 1; kad se pozove cmd pa onda
[pawn]if( EditKontejnera[ playerid ] != -1 && editobj[playerid] == 1) {
new i = EditKontejnera[ playerid ];
DestroyDynamicObject( KontInfo[ i ][ koObjID ] );[/pawn]
Onda ce da se pozove samo na to. Dodaj globalno new editobj[MAX_PLAYERS]; i na connect editobj[playerid] = 0;
Ništa , i dalje ista stvar se dešava :(
Ako zelis da nauci da skriptas koristi UP mod lakse je za svatiti skriptu, a ATH mod ti bas ne preporucujem da koristis. Opet to je tvoj izbor. ;)