Spieler betritt Interior = Crash ?

  • Spieler betritt Interior = Crash ?

    Moin,

    also ich habe ein Problem undzwar, sobald ein Spieler mit der "Gehen" (KEY_WALK) Taste einen Interior betritt crasht sofort das Spiel (nicht der Server!) ich weiß nicht woran es liegt :/
    Code:
    Das ist der Enum davon
    [pwn]enum EnterPickupEnum
    {
    bool:iVW,
    bool:iIsInt,
    Float:EnterX,
    Float:EnterY,
    Float:EnterZ,
    AInterior,
    EnterText[64],
    Float:IntX,
    Float:IntY,
    Float:IntZ,
    IInterior,
    Fraktion,
    };[/pwn]

    Unter "OnPlayerKeyStateChange"
    Spoiler anzeigen
    [pwn] if(PRESSED(KEY_SPRINT))
    {
    new pickupid = GetPVarInt(playerid, "PickedPickup");
    if(Skinchange[playerid] == 0)
    {
    if(pickupid == EnterPickup[PickupEnterIDNr[pickupid]])
    {
    SetPlayerPos(playerid, PickInfo[PickupEnterIDNr[pickupid]][IntX], PickInfo[PickupEnterIDNr[pickupid]][IntY], PickInfo[PickupEnterIDNr[pickupid]][IntZ]);
    SetPlayerInterior(playerid, PickInfo[PickupEnterIDNr[pickupid]][IInterior]);
    if(PickInfo[PickupEnterIDNr[pickupid]][IInterior] == 0 && PickInfo[PickupEnterIDNr[pickupid]][iIsInt]) SetPlayerInterior(playerid, 1);
    GameTextForPlayer(playerid, PickInfo[PickupEnterIDNr[pickupid]][EnterText], 1500, 3);
    PickupFraktionID[playerid] = PickInfo[PickupEnterIDNr[pickupid]][Fraktion];
    if(SpielerInfo[playerid][pAdmin] >= 5 && DebugMode == 0)
    {
    format(string, sizeof string, "PickupEnterID: %i", PickupEnterIDNr[pickupid]);
    SendClientMessage(playerid, COLOR_BLAU, string);
    }
    if(PickInfo[PickupEnterIDNr[pickupid]][iVW]) SetPlayerVirtualWorld(playerid, 1+PickupEnterIDNr[pickupid]);
    return 1;
    }
    else if(pickupid == ExitPickup[PickupExitIDNr[pickupid]])
    {
    SetPlayerPos(playerid, PickInfo[PickupExitIDNr[pickupid]][EnterX], PickInfo[PickupExitIDNr[pickupid]][EnterY], PickInfo[PickupExitIDNr[pickupid]][EnterZ]);
    SetPlayerInterior(playerid, PickInfo[PickupExitIDNr[pickupid]][AInterior]);
    SetPlayerVirtualWorld(playerid, 0);
    if(SpielerInfo[playerid][pAdmin] >= 5 && DebugMode == 0)
    {
    format(string, sizeof string, "PickupExitID: %i", PickupExitIDNr[pickupid]);
    SendClientMessage(playerid, COLOR_BLAU, string);
    }
    return 1;
    }
    }
    }[/pwn]


    MfG
    Ich kann den Beitrag leider nicht bearbeiten 8| ?

    also Bevor jemand fragt bzgl diesem "pickupid" ich lese das Pickup aus das der Spieler "betreten" hat ^^
    [pwn]public OnPlayerPickUpPickup(playerid, pickupid)
    {
    SetPVarInt(playerid,"PickedPickup",pickupid);
    return 1;
    }[/pwn]
  • hy

    hab mal vorher noch ne frage
    Wieso arbeitest du mit Enum´s und PlayerVariablen?

    und ist dein Eingangssystem dynamisch oder statisch?

    wenn dynamisch arbeite einfach mit ne for schleife

    also zb. [pwn]for(new i=0;MAX_EINGANG;i++)[/pwn]

    und mach denn einfach



    [pwn]public OnPlayerPickUpPickup(playerid, pickupid)
    {
    ExitPickup[playerid][PickupExit] = strlen(i);
    return 1;
    }[/pwn]

    wenns klappt oder nicht meld dich nochmal hier im Thead

    p.s. setze mal Alle Klammern( {} ) :)
  • Meinst du mit Dynamisch Das man die Ingame erstellen kann? nein so mach ich´s nicht ^^

    Laden tue ich die so
    [pwn] while(pick < ENTER_MAX_PICKUP)
    {
    if(PickInfo[pick][iVW])
    {
    EnterPickup[pick] = CreatePickup(1318, 23, PickInfo[pick][EnterX], PickInfo[pick][EnterY], PickInfo[pick][EnterZ], -1);
    ExitPickup[pick] = CreatePickup(1318, 23, PickInfo[pick][IntX], PickInfo[pick][IntY], PickInfo[pick][IntZ], 1+pick);
    } else {
    EnterPickup[pick] = CreatePickup(1318, 23, PickInfo[pick][EnterX], PickInfo[pick][EnterY], PickInfo[pick][EnterZ], -1);
    ExitPickup[pick] = CreatePickup(1318, 23, PickInfo[pick][IntX], PickInfo[pick][IntY], PickInfo[pick][IntZ], -1);
    }
    PickupEnterIDNr[EnterPickup[pick]] = pick;
    PickupExitIDNr[ExitPickup[pick]] = pick;
    pick++;
    }[/pwn]

    MfG