Szerző Téma: Találat rendszer  (Megtekintve 1819 alkalommal)

Találat rendszer
« Dátum: 2017. április 04. - 20:56:23 »
0 Show voters
Üdv, valaki tudna abban segíteni, hogy ha a játékost eltalálják egy megadott fegyverrel, egy megadott testrészen, akkor történjen vele valami(Azt már megtudom oldani hogy mi történjen, de akárhányszor megpróbáltam megcsinálni, soha nem történt semmi)

Találat rendszer
« Válasz #1 Dátum: 2017. április 04. - 21:28:58 »
+1 Show voters
Idézetet írta: Illuminati date=1491332183


   
      megtudom oldani hogy mi történjen
   

Idézetet írta: Illuminati date=1491332183


   
      soha nem történt semmi
   


Az a nem mindegy xDDDDDDD
 
http://wiki.sa-mp.com/wiki/OnPlayerTakeDamage

Találat rendszer
« Válasz #2 Dátum: 2017. április 04. - 21:31:16 »
0 Show voters
Megpróbáltam már ezt a bodypartosat, de semmi, azért majd még megpróbálom.

Találat rendszer
« Válasz #3 Dátum: 2017. április 04. - 21:46:15 »
0 Show voters

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart) {
if (issuerid != INVALID_PLAYER_ID) {
   // Ha MP5-tel mellbe lőnek valakit
   if (weaponid == 29 && bodypart == 3) {
      // Essen össze
      ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.0, 1, 0, 0, 0, 0);
   }
}
return true;
}

 
Nincs lent a SAMP, de wiki alapján ennek működnie kellene. 
 
Ha meg nem, akkor most nyilván beégtem. xD

Találat rendszer
« Válasz #4 Dátum: 2017. április 05. - 15:51:07 »
0 Show voters
Kicsit átalakítottam, így működni fog?
 

   if (issuerid != INVALID_PLAYER_ID)
{
   if (bodypart == 9 && weaponid == 22 && weaponid == 24 && weaponid == 25 && weaponid == 33)
   {
         SetPlayerHealth(playerid, 0.0);
        cmd_me(playerid, \"golyót kapott a fejébe.\");
        SCM2(playerid,COL_MKEK,\"Fejbe lőttek, ezért azonnal meghaltál!\");
      SCM2(issuerid,COL_MKEK,\"Fejbe lőtted, ezért azonnal meghalt!\");
   }
   else if (bodypart == 7 && weaponid == 22 && weaponid == 24 && weaponid == 25 && weaponid == 33)
   {
      if(Serult[playerid] == false)
      {
         //new randomser = random(sizeof(randomserules));
         new Float:hp;
         GetPlayerHealth(playerid,hp);
         SetPlayerHealth(playerid,hp-11);
         cmd_me(playerid, \"-t lábőn lőtték.\");
         SCM2(playerid,COL_MKEK,\"Lábon lőttek, ezért a földre estél!\");
         SCM2(issuerid,COL_MKEK,\"Lábon lőtted, ezért a földre esett!\");
         Serult[playerid] = true;
         switch( random( 5 ) )
         {
            case 0: ApplyAnimation(playerid,\"KNIFE\",\"KILL_Knife_Ped_Die\",4.0, 0, 0, 0, 0, 0);
            case 1: ApplyAnimation(playerid, \"PARACHUTE\", \"FALL_skyDive_DIE\", 4.0, 0, 0, 0, 0, 0);
            case 2..4: ApplyAnimation(playerid,\"GRAVEYARD\",\"mrnF_loop\", 4.0, 1, 0, 0, 0, 0);
            case 5: ApplyAnimation(playerid,\"CLOTHES\",\"CLO_Buy\", 4.0, 0, 0, 0, 0, 0);
         }
      }
   }
}
return true;

 
 
« Utoljára szerkesztve: 2017. április 05. - 15:51:41 írta Illuminati »

Találat rendszer
« Válasz #5 Dátum: 2017. április 05. - 16:52:26 »
0 Show voters
Nem neztem at teljesen, mert telon eleg szar, de nem && hanem || a weaponid-nel. Meg amugy ha történik valami az nem /me hanem /do :D

Találat rendszer
« Válasz #6 Dátum: 2017. április 06. - 22:02:37 »
0 Show voters
Idézetet írta: impreZZa date=1491403946


   
      Nem neztem at teljesen, mert telon eleg szar, de nem && hanem || a weaponid-nel. Meg amugy ha történik valami az nem /me hanem /do :D
   


Köszi, akkor lehet végig a && volt a szar :D

Találat rendszer
« Válasz #7 Dátum: 2017. április 08. - 08:43:22 »
0 Show voters
Nem működik, nem értem mi lehet a probléma :s
 

   if (issuerid != INVALID_PLAYER_ID)
{
   if (bodypart == 9 && weaponid == 22 || weaponid == 24 || weaponid == 25 || weaponid == 33)
   {
         SetPlayerHealth(playerid, 0.0);
        cmd_do(playerid, \"Golyót kapott a fejébe.\");
        SCM2(playerid,COL_MKEK,\"Fejbe lőttek, ezért azonnal meghaltál!\");
      SCM2(issuerid,COL_MKEK,\"Fejbe lőtted, ezért azonnal meghalt!\");
   }
   else if (bodypart == 7 && weaponid == 22 || weaponid == 24 || weaponid == 25 || weaponid == 33)
   {
      if(Serult[playerid] == false)
      {
         new Float:hp;
         GetPlayerHealth(playerid,hp);
         SetPlayerHealth(playerid,hp-11);
         cmd_do(playerid, \"Lábőn lőtték.\");
         SCM2(playerid,COL_MKEK,\"Lábon lőttek, ezért a földre estél!\");
         SCM2(issuerid,COL_MKEK,\"Lábon lőtted, ezért a földre esett!\");
         Serult[playerid] = true;
         ApplyAnimation(playerid,\"SWEET\",\"Sweet_injuredloop\", 4.0, 0, 0, 0, 0, 0);
      }
   }
   else if (bodypart == 3 && weaponid == 22 || weaponid == 24 || weaponid == 25 || weaponid == 33)
   {
      if(golyoallo[playerid] == 1)
        {
            new Float:armour;
            new Float:hp2;
            GetPlayerHealth(playerid, hp2);
           GetPlayerArmour(playerid, armour);
           SetPlayerArmour(playerid,armour-10);
           cmd_do(playerid, \"A golyóálló felfogta a lövést.\");
           SCM2(playerid,COL_MKEK,\"Eltaláltak, de a golyóállód felfogta a lövést!\");
         SCM2(issuerid,COL_MKEK,\"Eltaláltad, de a gollyóállója felfogta a lövést!\");
             if(armour <= 0)
         {
             SetPlayerHealth(playerid,hp2-28);
                 cmd_do(playerid, \"Golyót kapott a mellkasába.\");
              SCM2(playerid,COL_MKEK,\"Eltaláltak a mellkasodon, vonulj fedezékbe!\");
            SCM2(issuerid,COL_MKEK,\"Eltaláltad a mellkasán, de túlélte!\");
         }
      }
      else if(golyoallo[playerid] == 0)
      {
          new Float:hp;
           GetPlayerHealth(playerid, hp);
           SetPlayerHealth(playerid,hp-28);
           cmd_do(playerid, \"Golyót kapott a mellkasába.\");
           SCM2(playerid,COL_MKEK,\"Eltaláltak a mellkasodon, vonulj fedezékbe!\");
         SCM2(issuerid,COL_MKEK,\"Eltaláltad a mellkasán, de túlélte!\");
      }
   }
   else if (bodypart == 4 && weaponid == 22 || weaponid == 24 || weaponid == 25 || weaponid == 33)
   {
        if(Serult[playerid] == false)
        {
           new randomo = random(51);
           new Float:hp;
           GetPlayerHealth(playerid, hp);
         switch(randomo)
         {
            case 0 .. 55:
            {
               cmd_do(playerid, \"Golyót kapott az ágyékéba.\");
                 SCM2(playerid,COL_MKEK,\"Ágyékon lőttek, ezért összeestél, és elkezdtél vérezni!\");
               SCM2(issuerid,COL_MKEK,\"Ágyékon lőtted, ezért azonnal összeesett!\");
               Serult[playerid] = true;
               ApplyAnimation(playerid, \"PARACHUTE\", \"FALL_skyDive_DIE\", 4.0, 0, 0, 0, 0, 0);
               SetPlayerHealth(playerid,hp-33);
               //SetTimer(\"Verzes\", 50000, true, playerid);
               VerzesTimer[playerid] = SetTimerEx(\"Verzes\", 70000, true, \"i\", playerid);
            }
            case 56 .. 99:
            {
                SetPlayerHealth(playerid,hp-40);
                   cmd_do(playerid, \"Golyót kapott az ágyékéba.\");
                   SCM2(playerid,COL_MKEK,\"Ágyékon lőttek, nem estél össze, de vérzel!\");
               SCM2(issuerid,COL_MKEK,\"Ágyékon lőtted, nem esett össze, de vérzik!\");
               //SetTimer(\"Verzes\", 40000, true, playerid);
               VerzesTimer[playerid] = SetTimerEx(\"Verzes\", 70000, true, \"i\", playerid);
            }
         }
      }
   }
}
return true;

 
 

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Találat rendszer
« Válasz #8 Dátum: 2017. április 08. - 11:54:45 »
0 Show voters
Logikai kifejezések nem igazán mennek.... Habár érdekes, ha az alap ( || && ^ ! ) dolgok nem mennek, akkor mi megy ? :D
 
A hibát nem írtad le, hogy pontosan mi nem müködik, azonban ránézésre is szembetűnő a hiba.
 
Azt ajánlom, a logikai operátokat tanulmányzod. http://wiki.sa-mp.com/wiki/Control_Structures
Elmondhatnám mi a baja, hogyan fixáld, de akkor sosem tanulod meg, így próbálkozz te is.
 
Úgy nem lehet GM-et írni, hogy a fórum lakók pakolják a kódot te meg Ctrl+c ctrl+v-zed.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal