Beiträge von InternetInk aka Benjamin

    Wenn ihr den Code mal einrücken würdet, würdet ihr auch viel schneller solche fehler finden...



    Spoiler anzeigen

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == (KEY_SUBMISSION))
    {
    //LVPD EINFAHRTSTOR
    if(IsPlayerInRangeOfPoint(playerid,3.5, 2350.0652,2423.2896,10.7618))
    {
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1)
    {
    MoveObject(LVPDtor1, 2339.08,2451.31,6.17, 2.0);
    SetTimer("LVPDtor1zu", 3500, 0);
    MoveObject(LVPDtor2, 2330.20,2436.41,6.17, 2.0);
    SetTimer("LVPDtor2zu", 3500, 0);
    }
    }
    else if(IsPlayerInRangeOfPoint(playerid,3.5, 2316.7664,2446.2881,3.0210))
    {
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1)
    {
    MoveObject(LVPDtor1, 2339.08,2451.31,6.17, 2.0);
    SetTimer("LVPDtor1zu", 3500, 0);
    MoveObject(LVPDtor2, 2330.20,2436.41,6.17, 2.0);
    SetTimer("LVPDtor2zu", 3500, 0);
    }
    }
    //LVPD HINTERTOR
    else if(IsPlayerInRangeOfPoint(playerid,3.5, 2306.0933,2491.6829,3.0179))
    {
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pLeader] == 2||PlayerInfo[playerid][pMember] == 2)
    {
    MoveObject(LVPDhintertor, 2293.850586,2505.787109,3.941181,2.0);
    SetTimer("LVPDhintertorzu", 4500, 0);
    }
    }
    else if(IsPlayerInRangeOfPoint(playerid,3.5, 2248.4939,2494.7490,10.4546))
    {
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pLeader] == 2||PlayerInfo[playerid][pMember] == 2)
    {
    MoveObject(LVPDhintertor, 2293.850586,2505.787109,3.941181,2.0);
    SetTimer("LVPDhintertorzu", 4500, 0);
    }
    }
    //LVPDschranke
    else if(IsPlayerInRangeOfPoint(playerid,10.0,2238.197510,2450.375977,10.622423))
    {
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pLeader] == 2||PlayerInfo[playerid][pMember] == 2)
    {
    MoveObjektRot(LVPDschranke,0.8594,356.5623,270.0000,15);
    SetTimer("LVPDschrankezu", 1500, 0);
    GivePlayerMoney(playerid, -20);
    GameTextForPlayer(playerid, "Willkommen im LVPD, der Parkplatz kostet 20$",5000,5);
    }
    }
    }
    if(newkeys == (KEY_WALK))
    {
    //FBItüroben rechts
    if(IsPlayerInRangeOfPoint(playerid,2, 298.18594360352,189.36297607422,1006.171875))
    {
    if(PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
    {
    MoveObject(LVPDfbitur1links 294.32751464844, 189.30493164063, 1006.171875, 2.0);
    SetTimer("LVPDfbitur1linkszu", 3500, 0);
    MoveObject(LVPDfbitur1rechts, 298.96795654297, 189.37852478027, 1006.171875, 2.0);
    SetTimer("LVPDfbitur1rechtszu", 3500, 0);
    }
    }
    }
    //rest vom public

    Ich erkläre es nochmal in meinen Worten, BFX ist da sehr Fachlich,klingt komisch ist aber so... :D


    Es gibt eine ModelID und eine PickupID, die PickupID gibt die ID nummer des pickups wieder,das zuerst erstellte pickup hat die nummer 1 (oder 0 weiß ich jez nichtmehr weil Pawno auch gern bei 0 Anfängt zu zählen,ich glaub aber 1)und von oben nach unten sind die im script durchnummeriert,die ModelID ist das was du siehst, das was das Pickup als symbol hat,z.B Schutzweste oder Herzchen,das was halt rumschwirrt...


    Also: PickupID != (ungleich) ModelID



    else if(pickupid == PPA || pickupid == PP2 || pickupid == PP3 || pickupid == PP4 || pickupid == PP5)
    {
    new string[20],betrag;
    betrag = random(1500);
    GivePlayerMoney(playerid, betrag);
    format(string, sizeof(string), "~g~+%d$", betrag);
    GameTextForPlayer(playerid, string, 5000, 1);
    DestroyPickup(pickupid);
    }


    Erklärung:
    die else if abfrage trenne ich mit || das heißt "oder", ich frage da also ab ob die aufgehobene pickupid die ID des pickups hat die wir benötigen.
    Achja davor noch, wenn du ein Pickup per Variable erstellst also in deinem Fall PPA,PP2,PP3 usw. kannst du diese als pickup id benutzen!
    Also wie gesagt fage ich ab ob man eines der pickups eingesammelt hat,falls ja erstellt er erstmal nen sting mit 20 byte(256 wären überflüßig gewesen so lang wird der ja nicht)
    und die betrags variable die wir dann ja auch augeben wollen per gametext,dann ordne ich der betrag Variable ne random zahl zu und format das ganze,
    dann sende ich das als GameText un fertig,ich nutze bei destroypickup die variable pickupid, warum kann man sich mit sicherheit denken :D

    Ist auch recht einfach,man kann auch nur eine Variable mit Array machen z.B
    EingangUndAusgangPickup[100];


    EingangUndAusgangPickup[6] = ...
    EingangUndAusgangPickup[5] = ...
    z.B alle graden zahlen sind Ein,alle ungrade ausgänge xD Aber man kanns wie von dir beschrieben auch m it 2 Var's machen ;)