Pickup Problem

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
  • Guten Tag,
    ich hab das Problem das ich 2 dynamic Pickups habe.
    doch wenn man in das 2 reingeht führt er nur das erste aus = beide pickups machen das selbe obwohl sie beide was anderes machen sollten.



    public OnPlayerPickUpDynamicPickup(playerid, pickupid)
    { if(pickupid == tutorialpickup0[playerid])
    {
    DestroyDynamicPickup(tutorialpickup0[playerid]);
    TextDrawShowForPlayer(playerid,InfoSign);
    GivePlayerMoney(playerid,10000);
    PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~r~Info:~w~~n~Du hast 10000~n~in der Tasche gefunden finde die Rettungsweste!");
    PlayerTextDrawShow(playerid,INFOdraw[playerid][2]);
    tutorialpickup1[playerid] = CreateDynamicPickup(1461,1,775.7332,-2899.5449,0.2500,GetPlayerVirtualWorld(playerid));
    SetTimerEx("HideInfoBox",5000,0,"i",playerid);
    SetPlayerAttachedObject(playerid,0,1550,1,0 ,-0.2 ,0,1,450,270,1,1,1);
    SetPlayerCheckpoint(playerid,775.7332,-2899.5449,0.2500,1.5);
    return 1;
    }
    if(pickupid == tutorialpickup1[playerid])
    {
    DisablePlayerCheckpoint(playerid);
    DestroyDynamicPickup(tutorialpickup1[playerid]);
    TextDrawShowForPlayer(playerid,InfoSign);
    PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~r~Info:~w~~n~Entkomme nun aus dem Schiff!");
    PlayerTextDrawShow(playerid,INFOdraw[playerid][2]);
    SetTimerEx("HideInfoBox",5000,0,"i",playerid);
    SetPlayerAttachedObject(playerid,1,1461,17,-0.295000,-0.145000,0.000000,-3.100001,121.599983,-4.500001,0.780000,0.474999,0.546000);


    SetPlayerCheckpoint(playerid,786.0815,-2911.4233,0.2500,1.5);
    SendClientMessage(playerid,WEISS,"Sahra schreit: Hilfe ... Hilfe!!!");
    SendClientMessage(playerid,WEISS,"Jordan schreit: Das Schiff wird gleich sinken!!!");
    return 1;
    }
    return 1;
    }


    also tutorialpickup0 macht das selbe wie tutorialpickup1 und das soll es nicht,
    könnte mir jemand bei dem Problem helfen?

    Du bist auf der Suche nach eine Gameserver? Und möchtest kein Geld dafür ausgeben? Dann schau mal auf servertux.net vorbei!


    Dort bekommst du einen kostenlosen Gameserver in wenigen Minuten.


    nav.png

  • es geht irgendwie trotzdem nicht mit if und else if (da passiert wieder das selbe)

    Du bist auf der Suche nach eine Gameserver? Und möchtest kein Geld dafür ausgeben? Dann schau mal auf servertux.net vorbei!


    Dort bekommst du einen kostenlosen Gameserver in wenigen Minuten.


    nav.png

  • Da habe ich dir das nun mal mit switch & case gebaut.
    public OnPlayerPickUpDynamicPickup(playerid, pickupid)
    {
    switch(pickupid)
    {
    case tutorialpickup0[playerid]:
    {
    DestroyDynamicPickup(tutorialpickup0[playerid]);
    TextDrawShowForPlayer(playerid,InfoSign);
    GivePlayerMoney(playerid,10000);
    PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~r~Info:~w~~n~Du hast 10000~n~in der Tasche gefunden finde die Rettungsweste!");
    PlayerTextDrawShow(playerid,INFOdraw[playerid][2]);
    tutorialpickup1[playerid] = CreateDynamicPickup(1461,1,775.7332,-2899.5449,0.2500,GetPlayerVirtualWorld(playerid));
    SetTimerEx("HideInfoBox",5000,0,"i",playerid);
    SetPlayerAttachedObject(playerid,0,1550,1,0 ,-0.2 ,0,1,450,270,1,1,1);
    SetPlayerCheckpoint(playerid,775.7332,-2899.5449,0.2500,1.5);
    return 1;
    }
    case tutorialpickup1[playerid]:
    {
    DisablePlayerCheckpoint(playerid);
    DestroyDynamicPickup(tutorialpickup1[playerid]);
    TextDrawShowForPlayer(playerid,InfoSign);
    PayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~r~Info:~w~~n~Entkomme nun aus dem Schiff!");
    PlayerTextDrawShow(playerid,INFOdraw[playerid][2]);
    SetTimerEx("HideInfoBox",5000,0,"i",playerid);
    SetPlayerAttachedObject(playerid,1,1461,17,-0.295000,-0.145000,0.000000,-3.100001,121.599983,-4.500001,0.780000,0.474999,0.546000);


    SetPlayerCheckpoint(playerid,786.0815,-2911.4233,0.2500,1.5);
    SendClientMessage(playerid,WEISS,"Sahra schreit: Hilfe ... Hilfe!!!");
    SendClientMessage(playerid,WEISS,"Jordan schreit: Das Schiff wird gleich sinken!!!");
    return 1;
    }
    }
    return 1;
    }

  • jetzt kommen 2 Fehler


    (58427) : error 008: must be a constant expression; assumed zero
    (58440) : error 008: must be a constant expression; assumed zero


    sind jeweils die Zeilen wo steht
    case tutorialpickup1[playerid]:


    case tutorialpickup0[playerid]:


    Du bist auf der Suche nach eine Gameserver? Und möchtest kein Geld dafür ausgeben? Dann schau mal auf servertux.net vorbei!


    Dort bekommst du einen kostenlosen Gameserver in wenigen Minuten.


    nav.png

  • Hast du schon mal so versucht ?



    public OnPlayerPickUpDynamicPickup(playerid, pickupid)
    {
    if(pickupid == tutorialpickup0)
    {
    DestroyDynamicPickup(tutorialpickup0[playerid]);
    TextDrawShowForPlayer(playerid,InfoSign);
    GivePlayerMoney(playerid,10000);
    PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~r~Info:~w~~n~Du hast 10000~n~in der Tasche gefunden finde die Rettungsweste!");
    PlayerTextDrawShow(playerid,INFOdraw[playerid][2]);
    tutorialpickup1[playerid] = CreateDynamicPickup(1461,1,775.7332,-2899.5449,0.2500,GetPlayerVirtualWorld(playerid));
    SetTimerEx("HideInfoBox",5000,0,"i",playerid);
    SetPlayerAttachedObject(playerid,0,1550,1,0 ,-0.2 ,0,1,450,270,1,1,1);
    SetPlayerCheckpoint(playerid,775.7332,-2899.5449,0.2500,1.5);
    }
    if(pickupid == tutorialpickup1)
    {
    DisablePlayerCheckpoint(playerid);
    DestroyDynamicPickup(tutorialpickup1[playerid]);
    TextDrawShowForPlayer(playerid,InfoSign);
    PayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~r~Info:~w~~n~Entkomme nun aus dem Schiff!");
    PlayerTextDrawShow(playerid,INFOdraw[playerid][2]);
    SetTimerEx("HideInfoBox",5000,0,"i",playerid);
    SetPlayerAttachedObject(playerid,1,1461,17,-0.295000,-0.145000,0.000000,-3.100001,121.599983,-4.500001,0.780000,0.474999,0.546000);
    SetPlayerCheckpoint(playerid,786.0815,-2911.4233,0.2500,1.5);
    SendClientMessage(playerid,WEISS,"Sahra schreit: Hilfe ... Hilfe!!!");
    SendClientMessage(playerid,WEISS,"Jordan schreit: Das Schiff wird gleich sinken!!!");
    }
    return 1;
    }

  • 1. Problem hat sich gelöst,
    das return 1; hatte 3 lehrzeichen zu wenig.
    2. Neues Problem,
    ich hab noch ein dritten punkt hinzugefügt und der führt nur das 2 aus :/

    public OnPlayerPickUpDynamicPickup(playerid, pickupid)
    {
    if(pickupid == tutorialpickup1[playerid] && IsPlayerInRangeOfPoint(playerid,20,775.7332,-2899.5449,0.2500))
    {
    DisablePlayerCheckpoint(playerid);
    DestroyDynamicPickup(tutorialpickup1[playerid]);
    TextDrawShowForPlayer(playerid,InfoSign);
    PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~r~Info:~w~~n~Entkomme nun aus dem Schiff!");
    PlayerTextDrawShow(playerid,INFOdraw[playerid][2]);
    SetTimerEx("HideInfoBox",5000,0,"i",playerid);
    SetPlayerAttachedObject(playerid,1,1461,17,-0.295000,-0.145000,0.000000,-3.100001,121.599983,-4.500001,0.780000,0.474999,0.546000);
    SetPlayerCheckpoint(playerid,786.0815,-2911.4233,0.2500,1.5);
    SendClientMessage(playerid,WEISS,"Sahra schreit: Hilfe ... Hilfe!!!");
    SendClientMessage(playerid,WEISS,"Jordan schreit: Das Schiff wird gleich sinken!!!");
    tutorialpickup2[playerid] = CreateDynamicPickup(1461,1,786.0815,-2911.4233,0.2500,GetPlayerVirtualWorld(playerid));
    return 1;
    }
    if(pickupid == tutorialpickup0[playerid] && IsPlayerInRangeOfPoint(playerid,20,781.5294,-2894.2070,0.2500))
    {
    DestroyDynamicPickup(tutorialpickup0[playerid]);
    TextDrawShowForPlayer(playerid,InfoSign);
    GivePlayerMoney(playerid,10000);
    PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~r~Info:~w~~n~Du hast 10000~n~in der Tasche gefunden finde die Rettungsweste!");
    PlayerTextDrawShow(playerid,INFOdraw[playerid][2]);
    tutorialpickup1[playerid] = CreateDynamicPickup(1461,1,775.7332,-2899.5449,0.2500,GetPlayerVirtualWorld(playerid));
    SetTimerEx("HideInfoBox",5000,0,"i",playerid);
    SetPlayerAttachedObject(playerid,0,1550,1,0 ,-0.2 ,0,1,450,270,1,1,1);
    SetPlayerCheckpoint(playerid,775.7332,-2899.5449,0.2500,1.5);
    return 1;
    }
    if(pickupid == tutorialpickup2[playerid] && IsPlayerInRangeOfPoint(playerid,20,786.0815,-2911.4233,0.2500))
    {
    DestroyDynamicPickup(tutorialpickup2[playerid]);
    TutTime[playerid] = 0; PlayerInfo[playerid][pTut] = playerid;
    PlayerInfo[playerid][pRollerLic] = playerid;
    PlayerInfo[playerid][pLevel] = 1;
    gOoc[playerid] = 0; gNews[playerid] = 0; gFam[playerid] = 0;
    UnFreezePlayer(playerid);
    SetCameraBehindPlayer(playerid);
    MedicBill[playerid] = 0;
    AfterTutorial[playerid] = 1;
    SetTimerEx("UnsetAfterTutorial", 2500, false, "i", playerid);
    SetTimerEx("UnsetFirstSpawn", 20000, false, "i", playerid);
    AtRegestration[playerid] = 0;
    SetPlayerSpawn(playerid);
    TextDrawShowForPlayer(playerid,InfoSign);
    PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~r~Info:~w~~n~Die Wasserwacht hat dich ans Land gebracht!");
    PlayerTextDrawShow(playerid,INFOdraw[playerid][2]);
    SetTimerEx("HideInfoBox",5000,0,"i",playerid);
    return 1;
    }
    return 1;
    }



    nochmal für Schlaue: 1 führt 1 aus wie gewollt, 2 führt 2 aus auch wie gewollt, aber 3 führt 2 aus. ?(

    Du bist auf der Suche nach eine Gameserver? Und möchtest kein Geld dafür ausgeben? Dann schau mal auf servertux.net vorbei!


    Dort bekommst du einen kostenlosen Gameserver in wenigen Minuten.


    nav.png