new Object;
if(strcmp(cmdtext, \"/spawn\", true) == 0)
{
Object = CreateObject(...);
return 1;
}
if(strcmp(cmdtext, \"/delete\", true) == 0)
{
DestroyObject(Object);
return 1;
}
Röviden..
Vagy ugyanez, timerrel.
public OnPlayerCommandText( playerid, cmdtext[ ] ) {
if( !strcmp( cmdtext, \"/delete\", true ) ) {
for( new x = 0; x < MAX_OBJECTS; ++x ) {
if( !IsValidObject( x ) ) continue;
DestroyObject( x );
}
return 1;
}
return 0;
}
Köszi, de van egy kis bajom. xD
Pl: Egy egyszerû parancs ilyen.
if(strcmp(cmdtext,\"/ao\", true) == 0)
{
new Float:X, Float:Y, Float:Z, Float:rZ;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, rZ);
x = CreateObject(18553, X+3, Y, Z, 0.000, 0.000, rZ);
return 1;
}
És gondolom mind a két parancsban az obect [id-nek] kell szerepelnie az \"x\"-nek, hogy azt törölje ki.
if( !strcmp( cmdtext, \"/del\", true ) ) {
for( new x = 0; x < MAX_OBJECTS; ++x ) {
if( !IsValidObject( x ) ) continue;
DestroyObject( x );
}
return 1;
}
Erre ezt irja:
warning 219: local variable \"hehe\" shadows a variable at a preceding level
Vagyis, hogy a változó \"beárnyékolja\" a másik változót.
Amúgy valamit félrenézhettem amikor beszúrtam a warning-et, xD
Igen a \"hehe\" az enyém ;D
Nah szóval, a delete parancsban és az object lerakó parancsban is az \"x\" változó szerepel... Azért irja ezt:
Warn.:
(1693) : warning 219: local variable \"x\" shadows a variable at a preceding level
Itt van a sor:
for(new x = 0; x < MAX_OBJECTS; ++x)
És gondolom, hogy ezt a sort az elöbb említett miatt irja warning-nek.
Szerintem az a baj evvel, hogy az utolsó x-nél nem elõtte kell legyen a két + hanem utána:
for(new x = 0; x < MAX_OBJECTS; x++)
Vagy az mind1? Ha tévedek akkor szóljatok.
Szerintem az a baj evvel, hogy az utolsó x-nél nem elõtte kell legyen a két + hanem utána:
for(new x = 0; x < MAX_OBJECTS; x++)
Vagy az mind1? Ha tévedek akkor szóljatok.
Nem mindegy, de nem hibás.
Csak annyi a hibája ennek a kódnak hogy lokálisan gyakorlatilag 2 ugyanolyan nevû változónk van.