>> Ammo-bug <<

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hi com

    Ich hab mir ma dropgun sys gemacht
    und ein bug
    ich krieg immer 1 Ammo bei jeder waffe
    hoffe ihr könnt mir helfen :P





    public OnPlayerDeath(playerid, killerid, reason)
    {


    SetTimer("Waffe",10000,true);
    if(GetPlayerWeapon(playerid) == 24)
    {
    Deagle = GetPlayerAmmo(playerid);
    GetPlayerPos(playerid,dX,dY,dZ);
    Deagle = CreateObject(348, dX, dY, dZ-0.9, 110.0, 0.0, 00.0, 00.0);
    }
    if(GetPlayerWeapon(playerid) == 31)
    {
    M4 = GetPlayerAmmo(playerid);
    GetPlayerPos(playerid,m4X,m4Y,m4Z);
    M4 = CreateObject(356, m4X, m4Y, m4Z-0.9, 110.0, 0.0, 00.0, 00.0);
    }
    if(GetPlayerWeapon(playerid) == 29)
    {
    MP5 = GetPlayerAmmo(playerid);
    GetPlayerPos(playerid,mpX,mpY,mpZ);
    MP5 = CreateObject(353, mpX, mpY, mpZ-0.9, 110.0, 00.0, 00.0, 00.0);
    }
    if(GetPlayerWeapon(playerid) == 30)
    {
    Ak = GetPlayerAmmo(playerid);
    GetPlayerPos(playerid,AkX,AkY,AkZ);
    Ak = CreateObject(355 , AkX, AkY, AkZ-0.9, 110.0, 0.0, 00.0, 00.0);
    }
    return 1;
    }


    public Waffe(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,1.0,mpX,mpY,mpZ))
    {
    GivePlayerWeapon(playerid,24,Deagle);
    SetTimer("Deagle2",1200000,false);
    DestroyObject(Deagle);


    }
    else
    {
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,mpX,mpY,mpZ))
    {
    GivePlayerWeapon(playerid,29,MP5);
    SetTimer("MP52",1200000,false);
    DestroyObject(MP5);

    }
    else
    {
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,AkX,AkY,AkZ))
    {
    GivePlayerWeapon(playerid,30,Ak);
    SetTimer("Ak2",1200000,false);
    DestroyObject(Ak);
    }
    else
    {
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,m4X,m4Y,m4Z))
    {
    GivePlayerWeapon(playerid,31,M4);
    SetTimer("M42",1200000,false);
    DestroyObject(M4);


    }
    else
    {
    return 1;
    }
    return 1;
    }

  • Ähm weil du das falsch gemacht hast^^


    Du speicherst zuerst die Munition einer Waffe in die Variable "Deagle" danach erstellst du ein Object wieder in die Variable "Deagle". Da ist nun dein erstes Objekt ist, hat es die ID 1. Nun gibst du dir die Waffe Deagle welche die Objektid 1 hat und deswegen hast du immer Munition 1.


    xD


    Am besten du löst es mit einem WaffenDrop-Enum. So habe ich es immer gemacht.


    Dort machst du extra 2 Variablen mit Objektid und Muniton. :D

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • Hab jetzt ein neuen code




    public OnPlayerDeath(playerid, killerid, reason)
    {


    SetTimer("Waffe",10000,true);
    if(GetPlayerWeapon(playerid) == 24)
    {
    deaglemuni = GetPlayerAmmo(playerid);
    GetPlayerPos(playerid,dX,dY,dZ);
    Deagle = CreateObject(348, dX, dY, dZ-0.9, 110.0, 0.0, 00.0, 00.0);
    }
    if(GetPlayerWeapon(playerid) == 31)
    {
    m4muni = GetPlayerAmmo(playerid);
    GetPlayerPos(playerid,m4X,m4Y,m4Z);
    M4 = CreateObject(356, m4X, m4Y, m4Z-0.9, 110.0, 0.0, 00.0, 00.0);
    }
    if(GetPlayerWeapon(playerid) == 29)
    {
    mp5muni = GetPlayerAmmo(playerid);
    GetPlayerPos(playerid,mpX,mpY,mpZ);
    MP5 = CreateObject(353, mpX, mpY, mpZ-0.9, 110.0, 00.0, 00.0, 00.0);
    }
    if(GetPlayerWeapon(playerid) == 30)
    {
    akmuni = GetPlayerAmmo(playerid);
    GetPlayerPos(playerid,AkX,AkY,AkZ);
    Ak = CreateObject(355 , AkX, AkY, AkZ-0.9, 110.0, 0.0, 00.0, 00.0);
    }
    return 1;
    }
    public Waffe(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,1.0,mpX,mpY,mpZ))
    {
    GivePlayerWeapon(playerid,24,deaglemuni);
    SetTimer("Deagle2",1200000,false);
    DestroyObject(Deagle);


    }
    else
    {
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,mpX,mpY,mpZ))
    {
    GivePlayerWeapon(playerid,29,mp5muni);
    SetTimer("MP52",1200000,false);
    DestroyObject(MP5);


    }
    else
    {
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,AkX,AkY,AkZ))
    {
    GivePlayerWeapon(playerid,30,akmuni);
    SetTimer("Ak2",1200000,false);
    DestroyObject(Ak);
    }
    else
    {
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,m4X,m4Y,m4Z))
    {
    GivePlayerWeapon(playerid,31,m4muni);
    SetTimer("M42",1200000,false);
    DestroyObject(M4);



    }
    else
    {
    return 1;
    }
    return 1;
    }



    dann gehen nach dem tod immer die waffen weg

    4 Mal editiert, zuletzt von C0lamix ()

  • Gehts jetzt?


    Aber ich frage mich für was brauchst du die Timer wenn du die Waffe aufnimmst?
    Außerdem erstellst du jedes Mal wenn jemand stirbt einen neuen Timer.
    1. Dafür wäre ein Serverbezogener Timer besser
    2. Was passiert wenn der Gestorbene keine Waffen trägt ;)

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg