OnPlayerDeath wird nur teils aufgerufen

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
  • Hallo Liebe Community,
    Ich habe so einiges in meinem Callback OnPlayerDeath stehen und mir ist aufgefallen das knapp die Hälfte
    einfach ignoriert wird.


    Hier mal ein Uasschnitt aus ca. der Mitte:
    ClientLanguageText(playerid,COLOR_LIGHTBLUE,"Test","Test");
    if(g_IsPlayerDueling[killerid] == 1 || InDMarea[killerid] > 0)
    {
    Player[killerid][Pkt]++;
    }
    if(killerid == TEAM_LSPD)
    {
    if(Player[playerid][Wantedlevel] >= 0)
    {
    Player[playerid][WVar] += 1;
    }
    }
    if(Player[playerid][WVar] == 10)
    {
    new str[128],string[128];
    SetPlayerPos(playerid,1555.0583,-1661.5039,1718.9019);
    SetPlayerInterior(playerid,0);
    format(str,sizeof(str),"Du musst für %d Sekunden in den Knast!",Player[playerid][Wantedlevel]*60);
    format(string,sizeof(string),"You are arrested for %d seconds!",Player[playerid][Wantedlevel]*60);
    ClientLanguageText(playerid,COLOR_YELLOW,str,string);
    stimer[playerid] = SetTimerEx("jailtime",1000,true,"d",playerid);
    ResetPlayerWeapons(playerid);
    Player[playerid][WVar] = 0;
    }
    All dies wird jedoch ignoriert und ich weiß nicht woran es liegt :(
    lg

  • edit:
    Ich habe es jetzt mittlerweile soweit geschafft, dass es zu 99 % aufgerufen wird.
    Habe überall bei killerid das rangehängt:
    if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)


    SO diese eine Funktion blockiert jedoch alles:
    LooseWeapons(playerid);
    LooseWeapons(playerid)
    {
    new WeaponsData[13][2],Float:pos[3],pickupmodel,slot,oldslot;


    Restart:


    for (slot=oldslot; slot < 13; slot++)
    {
    GetPlayerWeaponData(playerid, slot, WeaponsData[slot][0], WeaponsData[slot][1]);
    oldslot++;
    if(WeaponsData[slot][1] > 0) goto Advance;
    }


    Advance:


    if(WeaponsData[slot][1] > 0)
    {
    for(new wid=0; wid<MAX_WEAPONS_DROPPED; wid++)
    {
    if( WeaponsDropped[wid][Ocuppied] == false )
    {
    pickupmodel = GetWeaponModel(WeaponsData[slot][0]);
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
    WeaponsDropped[wid][Pickupid] = CreatePickup(pickupmodel, 3, floatadd(pos[0], EachPos[random(11)]), floatadd(pos[1], EachPos[random(11)]), pos[2], -1);
    WeaponsDropped[wid][Model] = WeaponsData[slot][0];
    WeaponsDropped[wid][Ammo] = WeaponsData[slot][1];
    WeaponsDropped[wid][Ocuppied] = true;
    TimerIDs[wid]=SetTimerEx("RemoveWeaponDropped",REMOVE_WEAPONS_DROPPED_TIMER,false,"ii",WeaponsDropped[wid][Pickupid],wid);
    goto Restart;
    }
    }
    }
    return ResetPlayerWeapons(playerid);
    }


    lg

    Einmal editiert, zuletzt von Zcelo12 ()

  • Leigt vielleicht an deinem
    return ResetPlayerWeapons(playerid);
    Er fackt warscheinlich da ab, weil ResetPlayerWeapons nichts returnt, also versucht er irgendetwas zu returnen un fackt dabei ab.


    versuchs so
    ResetPlayerWeapons(playerid);
    return 1;

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Danke, funktioniert jedoch leider nicht.
    edit: Diese eine FUnktion stoppt alles was danach kommt.


    edit2:Das goto Restart ist aber an weiter oben wo steht Restart: gerichtet.

    Einmal editiert, zuletzt von Zcelo12 ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen