Enter Exit 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
  • Hallo zusammen ...
    Ich stelle meine frage einfach mal mit erklärung^^


    Also ich habe die LSPD Fraktion gemacht habe den spawn in den raum vom LSPD bei der dusche gemacht so...


    ocmd:enter(playerid,params[])
    {
    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;
    SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
    SetPlayerInterior(playerid,bInfo[i][b_interior]);
    SetPlayerVirtualWorld(playerid,i);
    return 1;
    }
    return 1;
    }
    ocmd:exit(playerid,params[])
    {
    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(GetPlayerVirtualWorld(playerid)!=i)continue;
    if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))continue;
    SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    return 1;
    }
    return 1;
    }


    meine befehle und OnPlayerKeyStateChange
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
    ocmd_exit(playerid,"");
    ocmd_enter(playerid,"");
    return 1;
    }
    return 1;
    }


    das klappt auch alles wenn ich rein will und wenn ich drinne bin kann ich auch raus ABER wenn ich als LSPD dann in der Dusche Spawne,
    dann kann ich nicht raus mit ENTER wieso? :/

  • Wie meinst du mit LSPD?
    Du kannst nicht raus, wenn du LSPD bist, also in der Fraktion, oder wie?

  • Du musst seine Virtuelle Welt auf i setzen



    ocmd:exit(playerid,params[])
    {
    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(GetPlayerVirtualWorld(playerid)!=i)continue;
    if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))continue;
    SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    return 1;
    }
    return 1;
    }


    Keine Ahnung welche das ist musst gucken bei welcher Zeile es ist.
    oder du fugst ne Virtuelle Welt bei deinem Enum ein und fragst ab ob es diese ist und setest dem Spieler die virtuelle Welt beim enter befehl


    - Vom Handy gesendet

  • Zitat

    if(newkeys == KEY_SECONDARY_ATTACK)


    Falsch.

    Zitat

    Let's presume that you want to detect when a player presses their FIRE button, the obvious code would be:
    if (newkeys == KEY_FIRE)
    This code may even work in your testing, but it is wrong and your testing is insufficient. Try crouching and pressing fire - your code will instantly stop working. Why? Because "newkeys" is no longer the same as "KEY_FIRE", it is the same as "KEY_FIRE" COMBINED WITH "KEY_CROUCH".


    newkeys & KEY_XYZ