Szerző Téma: Hogy nullázzam a töltényt, ha kifogyott a fegyverbõl?  (Megtekintve 744 alkalommal)

Hogy nullázzam a töltényt, ha kifogyott a fegyverbõl?
« Dátum: 2014. szeptember 05. - 13:07:16 »
0 Show voters
Sziasztok! Dini-t használok file-ok mentésére és olvasására.
 
pInfo[playerid][pGun5] //5.Slotban lévõ fegyver id-je
pInfo[playerid][pAmmo5] //5.Slotban lévõ fegyver töltényszáma

 
na most! ha elõveszi a fegyvert 20 töltényel:
 
GivePlayerWeapon(playerid, pInfo[playerid][pGun5], pInfo[playerid][pAmmo5]);

 
Eddig okés minden, lõ vele, és HA elrakja akkor:
 
GetPlayerWeaponData(playerid, 5, weapon, ammo);
Ment(playerid);
Betolt(playerid);

 
De ha nem rakja el, de elfogy a lõszer, akkor nem tudom elmenteni..ezért ha elõveszi újra, akkor már megint ugyanazt a töltényszámot kapja meg mint amivel utoljára elõvette.
Gondoltam arra, hogy ha elõvette a fegyvert, elindítok egy idõzítõt amibe benne lenne ez:
 
GetPlayerWeaponData(playerid, 5, weapon, ammo);
pInfo[playerid][pGun5] = weapon;
pInfo[playerid][pAmmo5] = ammo;
Ment(playerid);
Betolt(playerid);

 
De viszont ezzel az a baj hogy ha 20 játékos warozik pl akkor elég szép laggot okoz!
egyéb megoldási lehetõségekre várok, jöhetnek a tippek.
Köszi elõre is!
[mod]Kitettem helyetted a 4 db

taget![/mod]
« Utoljára szerkesztve: 2014. szeptember 05. - 14:45:42 írta Dfoglalo »

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Hogy nullázzam a töltényt, ha kifogyott a fegyverbõl?
« Válasz #1 Dátum: 2014. szeptember 05. - 17:53:41 »
0 Show voters
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(GetPlayerAmmo(playerid) == 1)
{
            GetPlayerWeaponData(playerid, 5, weapon, ammo);
    pInfo[playerid][pGun5] = weapon;
    pInfo[playerid][pAmmo5] = ammo;
    Ment(playerid);
    Betolt(playerid);
}
return 1;
}

 
Ez akkor hívódik meg, ha a játékos kilõtte az utolsó töltényt. :)

Hogy nullázzam a töltényt, ha kifogyott a fegyverbõl?
« Válasz #2 Dátum: 2014. szeptember 05. - 18:30:37 »
0 Show voters
Pompázatos vagy! akkor valahogy így kellene kinéznie..mások kedvéért is :)
 
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
        if(GetPlayerAmmo(playerid) == 1)
        {
                    for(new i=0; i<3; i++)
           {
               new weapon;
               new ammo;
           GetPlayerWeaponData(playerid, i, weapon, ammo);
           if(weapon != 0)
           {
              if(i == 1)
      {
      GetPlayerWeaponData(playerid, 1, weapon, ammo);
                  pInfo[playerid][pGun1] = 0;
                  pInfo[playerid][pAmmo1] = 0;
       }
              else if(i == 2)
      {
           GetPlayerWeaponData(playerid, 2, weapon, ammo);
                  pInfo[playerid][pGun2] = 0;
                  pInfo[playerid][pAmmo2] = 0;
              }
                       }
                 }
        }
        return 1;
}

 
Javítottam helyetted a

taget

tagre!

Dupla hozzászólás automatikusan összefûzve. ( 2014. szeptember 05. - 18:50:23 )

Szívesen adnék érte pluszt ha tudnék :/
« Utoljára szerkesztve: 2014. szeptember 05. - 18:50:23 írta Icegun91 »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal