Szerző Téma: Sebzés rendszer 1 error-ral  (Megtekintve 1849 alkalommal)

Sebzés rendszer 1 error-ral
« Dátum: 2016. December 21. - 16:13:39 »
0
Helló. Adott ez a szkript és egyszerüen nem tudom lecompile-olni egy hiba miatt. A hibakód: \"Titkos.pwn(1187) : error 025: function heading differs from prototype\" És ez a publicra mutat ez a hiba. Tudna valaki segíteni?
 

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(weaponid >= 22 && weaponid <= 34 && amount > 5)
{
    new wname[32];
    GetWeaponName(weaponid,wname,sizeof(wname));
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
   if(bodypart == 3) //Mellkaslövés
   {
      SendClientMessage(playerid,NARANCS,\"Meglőtték a mellkasod!\");
      SetPlayerDrunkLevel(playerid,2500);
      SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
      cmd_me(playerid,\"golyót kapott a mellkasába.\");
   }
   if(bodypart == 4) //Haslövés
   {
      SendClientMessage(playerid,NARANCS,\"Meglőtték a hasad!\");
      SetPlayerDrunkLevel(playerid,2500);
      SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
      cmd_me(playerid,\"golyót kapott a hasába.\");
   }
   if(bodypart == 5) //Bal kéz
   {
      SendClientMessage(playerid,NARANCS,\"Meglőtték a bal kezed!\");
      SetPlayerDrunkLevel(playerid,2500);
      SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
      Kezenlove[playerid] = true;
      cmd_me(playerid,\"golyót kapott a bal kezébe..\");
   }
   if(bodypart == 6) //Jobb kéz
   {
      SendClientMessage(playerid,NARANCS,\"Meglőtték a jobb kezed!\");
      SetPlayerDrunkLevel(playerid,2500);
      SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
      Kezenlove[playerid] = true;
      cmd_me(playerid,\"golyót kapott a jobb kezét.\");
   }
   if(bodypart == 7) //Bal láblövés + Anim
   {
        ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.1, 0, 1, 1, 1, 0, 1);
        ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.1, 0, 1, 1, 1, 0, 1);
        SendClientMessage(playerid,NARANCS,\"Meglőtték a bal lábad, így összeestél!\");
        SetPlayerDrunkLevel(playerid,2500);
        SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
        Animban[playerid] = true;
        cmd_me(playerid,\"golyót kapott a bal lábába.\");
   }
   if(bodypart == 8) //Jobb láblövés + Anim
   {
        ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.1, 0, 1, 1, 1, 0, 1);
        ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.1, 0, 1, 1, 1, 0, 1);
        SendClientMessage(playerid,NARANCS,\"Meglőtték a jobb lábad, így összeestél!\");
        SetPlayerDrunkLevel(playerid,2500);
        SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
        Animban[playerid] = true;
        cmd_me(playerid,\"golyót kapott a jobb lábába.\");
   }
   if(bodypart == 9) //Fejlövés (Azonnal megdöglik)
   {
       SetPlayerHealth(playerid,0);
       SendClientMessage(playerid,NARANCS,\"Fejbelőttek, így meghaltál!\");
   }
}
return 1;
}

 
 

Nem elérhető divkn

  • 3259
    • Profil megtekintése
Sebzés rendszer 1 error-ral
« Válasz #1 Dátum: 2016. December 21. - 16:45:11 »
0
Eljárás paraméterei eltérnek a prototípusától. Nézz utána OnPlayerTakeDamage forwardok után és javítsd ki azokat a paramétereket, amik eltérnek.

Sebzés rendszer 1 error-ral
« Válasz #2 Dátum: 2016. December 21. - 21:07:08 »
0
Esetleg kicsit segítenél benne? Ez a rész új nekem :D

Nem elérhető RIP

Sebzés rendszer 1 error-ral
« Válasz #3 Dátum: 2016. December 21. - 21:53:07 »
0
Lehet hülyeséget írok, de nem az a baj, hogy az issuerid-t nem használta fel semmire?

Sebzés rendszer 1 error-ral
« Válasz #4 Dátum: 2016. December 22. - 16:45:58 »
0
Sajnos nem, hiába törlöm ki, marad az error.

Nem elérhető wRt

Sebzés rendszer 1 error-ral
« Válasz #5 Dátum: 2016. December 22. - 17:38:27 »
0
Elküldenéd a me parancsodat?

Sebzés rendszer 1 error-ral
« Válasz #6 Dátum: 2016. December 22. - 18:02:07 »
0
Nézd meg, hogy az a_samp.inc-ben hogyan néz ki az OnPlayerTakeDamage. Ha máshogy, akkor frissítsd le a függvénykönyvtáraidat.
 
 
 
Másik. Használsz valamilyen includeot?

Nem elérhető divkn

  • 3259
    • Profil megtekintése
Sebzés rendszer 1 error-ral
« Válasz #7 Dátum: 2016. December 22. - 19:21:56 »
0
Idézetet írta: RIP date=1482353587


   
      Lehet hülyeséget írok, de nem az a baj, hogy az issuerid-t nem használta fel semmire?
   


Az csak stock funkció esetén van és az pedig csak sima figyelmeztetés (warning 203), nem pedig hiba.
 
YSI függvénykönyvtáron kívül nem találtam mást, ahol használna OnPlayerTakeDamage hookot. Nem hiszem hogy a szkript használna YSI-t, de ha igen akkor jelezd kérlek, de előbb olvasd el azt, amit Zsolt írt.

Sebzés rendszer 1 error-ral
« Válasz #8 Dátum: 2016. December 22. - 19:32:07 »
0

#define narancs 0xFF4500FF
#define szurke 0xAFAFAFAA
#define piros2 0xff1500b5
#define lila 0xC26AFFFF
#include <a_samp>
#include <sscanf2>
#include <zcmd>
 
new Animban[MAX_PLAYERS];
new Kezenlove[MAX_PLAYERS];
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(weaponid >= 22 && weaponid <= 34 && amount > 5)
{
    new wname[32];
    GetWeaponName(weaponid,wname,sizeof(wname));
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
   if(bodypart == 3) //mellkaslövés
   {
      SendClientMessage(playerid,narancs,\"Meglőtték a mellkasod!\");
      SetPlayerDrunkLevel(playerid,2500);
      SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
      cmd_me(playerid,\"golyót kapott a mellkasába.\");
   }
   if(bodypart == 4) //Haslövés
   {
      SendClientMessage(playerid,narancs,\"Meglőtték a hasad!\");
      SetPlayerDrunkLevel(playerid,2500);
      TextDrawShowForPlayer(playerid,Textdraw50);
      SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
      cmd_me(playerid,\"golyót kapott a hasába.\");
   }
   if(bodypart == 5) //Bal kéz
   {
      SendClientMessage(playerid,narancs,\"Meglőtték a bal kezed!\");
      SetPlayerDrunkLevel(playerid,2500);
      SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
      Kezenlove[playerid] = true;
      cmd_me(playerid,\"golyót kapott a bal kezébe..\");
   }
   if(bodypart == 6) //Jobb kéz
   {
      SendClientMessage(playerid,narancs,\"Meglőtték a jobb kezed!\");
      SetPlayerDrunkLevel(playerid,2500);
      SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
      Kezenlove[playerid] = true;
      cmd_me(playerid,\"golyót kapott a jobb kezét.\");
   }
   if(bodypart == 7) //Bal láblövés + Anim
   {
        ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.1, 0, 1, 1, 1, 0, 1);
        ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.1, 0, 1, 1, 1, 0, 1);
        SendClientMessage(playerid,narancs,\"Meglőtték a bal lábad, így összeestél!\");
        SetPlayerDrunkLevel(playerid,2500);
          TextDrawShowForPlayer(playerid,Textdraw50);
        SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
        Animban[playerid] = true;
        cmd_me(playerid,\"golyót kapott a bal lábába.\");
   }
   if(bodypart == 8) //Jobb láblövés + Anim
   {
        ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.1, 0, 1, 1, 1, 0, 1);
        ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.1, 0, 1, 1, 1, 0, 1);
        SendClientMessage(playerid,narancs,\"Meglőtték a jobb lábad, így összeestél!\");
        SetPlayerDrunkLevel(playerid,2500);
        TextDrawShowForPlayer(playerid,Textdraw50);
        SetTimerEx(\"DrunkOff\",120000,false,\"d\",playerid);
        Animban[playerid] = true;
        cmd_me(playerid,\"golyót kapott a jobb lábába.\");
   }
   if(bodypart == 9) //Fejlövés (Azonnal megdöglik)
   {
       SetPlayerHealth(playerid,0);
       SendClientMessage(playerid,narancs,\"Fejbelőttek, így meghaltál!\");
   }
}
return 1;
}
forward DrunkOff(playerid);
public DrunkOff(playerid)
{
SetPlayerDrunkLevel(playerid,0);
return 1;
}
CMD:me(playerid,params[])
{
    new szoveg[256],szoveg2[256];
    if(sscanf(params,\"s[256]\",szoveg)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /me [Cselekvés]\");
    format(szoveg2,256,\"* %s *\",szoveg);
format(szoveg,256,\"* %s %s \",ULName(playerid),params);
SendClosestMessage(playerid,0xFF2C3C9C,szoveg);
    SetPlayerChatBubble(playerid, szoveg2, lila, 40.0, 10000);
return 1;
}
stock SendClosestMessage(playerid,color,message[])
{
new Float:x2,Float:y2,Float:z2;
GetPlayerPos(playerid,x2,y2,z2);
for(new i = 0; i < MAX_PLAYERS; i++)
{
   if(IsPlayerInRangeOfPoint(i,70,x2,y2,z2))
   {
       SendClientMessage(i,color,message);
   }
}
}
stock ULName(playerid)
{
new pname[24];
GetPlayerName(playerid,pname,24);
pname[strfind(pname,\"_\")] = \' \';
return pname;
}

 
Ez a teljes az anim rendszerhez. Olvasgattam hogy a YSI-ben át kell írni pár sort, de azok a sorok nem voltak benne. Lehetséges hogy frissítenem kellene? De hisz azt nem is használom, ezért nem tartottam fontosnak. És a többi dolognál a szkriptben működnek az include-ok szóval nem hiszem hogy baja lenne vele.

Sebzés rendszer 1 error-ral
« Válasz #9 Dátum: 2016. December 22. - 19:37:30 »
0
Megnéztem az s_samp inc-et, és abba lemaradt egy \"bodypart\" paraméter ami nekem a szkriptbe benne van. Beírtam lementettem, de így se engedi. Lehetséges hogy frissítenem kellene a függvénykönyvtáram? 

Nem elérhető divkn

  • 3259
    • Profil megtekintése
Sebzés rendszer 1 error-ral
« Válasz #10 Dátum: 2016. December 22. - 19:46:06 »
0
Nem ártana, ha a bodypart paraméter hiányzott, akkor több funkció is hiányozhat, ami 0.3z vagy nagyobb verzióknál megjelentek. Másik pedig valószínűleg az hogy több Pawno szerkesztőt használtál és egy teljesen más függvénykönyvtárt olvas, szóval miután frissítetted a pawno/includes mappában a fájlokat, akkor a pawno mappában megnyitod a pawno.exe-t és CTRL + O gomb megnyomása után betallózod a szkriptet és lefordítod.

Sebzés rendszer 1 error-ral
« Válasz #11 Dátum: 2016. December 22. - 19:57:35 »
0
Rendben frissítem, majd kiderül megoldódott-e. Köszönöm a segítségeket. :)

Sebzés rendszer 1 error-ral
« Válasz #12 Dátum: 2016. December 22. - 19:58:28 »
0
Rendben frissítem, majd kiderül megoldódott-e. Köszönöm a segítségeket. :)

Sebzés rendszer 1 error-ral
« Válasz #13 Dátum: 2016. December 22. - 20:06:43 »
0
Frissítve, egy mappába van minden és csak azt használom. De sajnos így is kapom ugyan ezt az error-t. DE a_samp-ban pedig megtalálható a \"bodypart\" paraméter így már nem is értem. :(

Nem elérhető divkn

  • 3259
    • Profil megtekintése
Sebzés rendszer 1 error-ral
« Válasz #14 Dátum: 2016. December 22. - 20:12:48 »
0
Küldj nekem egy TeamViewer felhasználót privát üzenetben és megnézhetem mi a probléma.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal