GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: 1Mark6 - 2015. július 23. - 10:21:16

Cím: Objekt health és lövés hiba
Írta: 1Mark6 - 2015. július 23. - 10:21:16
Sziasztok!
Írtam egy szkriptet amiben van egy objekt annak van X healthja, és ha meglövik az az objektet az életéből levon 1-et, majd updateli a 3dlabelt.Legalább is ebböl áll, de nem tesztelés során nem történik semmi.
Kód :
 

new ObjectHP[MAX_OBJECTS];
new Text3D:mylabel;
new obi;
obi = CreateDynamicObject(16776, -2084.76709, -2532.95361, 28.10344,   0.00000, 0.00000, 320.47034);
ObjectHP[obi] = 500;
mylabel = Create3DTextLabel(\"[500/500]\", 0xFFFF00FF, -2087.1465,-2530.3347,35.4219, 20.0, 0, 0);
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(hittype == BULLET_HIT_TYPE_OBJECT)
{
if(IsValidObject(obi))
{
   new string[128];
   ObjectHP[obi] -= 1;
   format(string,128,\"[500/%i]\",ObjectHP[obi]);
   Update3DTextLabelText(mylabel, 0xFFFF00FFF,string);
   if(ObjectHP[obi] <= 0)
   {
       DestroyObject(hitid);
   }
}
}
return 1;
}

 
[ code=pawn][ /code] tageket használj
Cím: Objekt health és lövés hiba
Írta: norbinator09 - 2015. július 23. - 11:05:34
Így?
 

new ObjectHP[MAX_OBJECTS];
new Text3D:mylabel;
new obi;
obi = CreateDynamicObject(16776, -2084.76709, -2532.95361, 28.10344,   0.00000, 0.00000, 320.47034);
ObjectHP[obi] = 500;
mylabel = Create3DTextLabel(\"[500/500]\", 0xFFFF00FF, -2087.1465,-2530.3347,35.4219, 20.0, 0, 0);
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
   if(hittype == BULLET_HIT_TYPE_OBJECT)
   {
      if(IsValidObject(hitid))
      {
         new string[128];
         ObjectHP[hitid] -= 1;
         format(string,128,\"[500/%i]\",ObjectHP[hitid]);
         Update3DTextLabelText(mylabel, 0xFFFF00FFF,string);
         
         if(ObjectHP[obi] <= 0)
         {
             DestroyObject(hitid);
         }
      }
   }
   return 1;
}
Cím: Objekt health és lövés hiba
Írta: 1Mark6 - 2015. július 23. - 11:18:49
Igen, így akartam kiirni csak nemtaláltam a pawn kódot.
Cím: Objekt health és lövés hiba
Írta: Kovacs_Richard - 2015. július 23. - 11:51:14
if(IsValidObject(hitid))
{
SendClientMessage(playerid,0xFF6600FF,\"DEBUG!\"); // Ezt a sort írd be

 
próbáld meg így kidebugolni...és nézd meg hol akad el...ha ez lefut akkor mással van a gond...
Cím: Objekt health és lövés hiba
Írta: .random. - 2015. július 23. - 16:29:04
Nem teszteltem lehet benne elírás.
 
new ObjectHP[MAX_OBJECTS];
new Text3D:mylabel;
new obi;
obi = CreateDynamicObject(16776, -2084.76709, -2532.95361, 28.10344,   0.00000, 0.00000, 320.47034);
ObjectHP[obi] = 500;
mylabel = Create3DTextLabel(\"[500/500]\", 0xFFFF00FF, -2087.1465,-2530.3347,35.4219, 20.0, 0, 0);
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
        if(hittype == BULLET_HIT_TYPE_OBJECT && hitid == obi) //1. hiba
        {
                if(IsValidDynamicObject(obi))//2. hiba
                {
                        new string[16];//Bőven elég
                        ObjectHP[obi] -= 1;
                        format(string,128,\"[500/%i]\",ObjectHP[obi]);
                        Update3DTextLabelText(mylabel, 0xFFFF00FFF,string);
                       
                        if(ObjectHP[obi] <= 0) DestroyDynamicObject(hitid); //..
                }
        }
        return 1;
}