[Hilfe] bei /open, Timer, randomspawns und einem Warning

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 liebe Community,


    Ich habe ein paar Probleme/Fragen und hoffe ihr könnt mir weiterhelfen:


    1. Was is an diesem Befehl Falsch?
    Ich möchte das, das Tor auf geht und mit dem gleichen befehl wieder zu funzt aber nicht :(


    if(strcmp(cmd, "/open", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    if(IsPlayerInRangeOfPoint(playerid, 15.0, 1642.9480, -1714.6055, 20.4862))
    {
    MoveObjectToStream(ziviGates, 1642.8143310547, -1715.0423583984, 19.004592895508, 2.0);
    }
    else if(IsPlayerInRangeOfPoint(playerid, 15.0, 1642.9480, -1714.6055, 20.4862))
    {
    MoveObjectToStream(ziviGates, 1642.8143310547, -1715.0423583984, 20.204593658447, 2.0);
    }
    return 1;
    }


    2. Mein Timer funktioniert nicht, warum?
    Also man wird gefreezed abe nicht mehr unfreezed!


    forward Arena();


    if(pickupid == arenaenter1)
    {
    SetPlayerPos(playerid,2722.9504, 2126.5295, -1.1362);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    GivePlayerMoney(playerid, -500);
    SetPlayerHealth(playerid, 100.0);
    SetPlayerArmour(playerid, 100.0);
    GivePlayerWeapon(playerid,24,99999);
    GivePlayerWeapon(playerid,31,99999);
    GivePlayerWeapon(playerid,33,99999);
    GivePlayerWeapon(playerid,18,99999);
    GivePlayerWeapon(playerid,16,99999);
    GivePlayerWeapon(playerid,42,99999);
    GameTextForPlayer(playerid, "~b~~n~Willkommen in der Trainings Arena 1", 6000, 3);
    TogglePlayerControllable(playerid, 1);
    SetTimer("arena", 6000, 0);
    TogglePlayerControllable(playerid, 0);
    }


    3. Wie erstelle ich randomspawns z.B in der Trainingsarena(man spawnt immer an verschiedenen punkten in der Arena)
    4. Wie mache ich es das wenn man in der Trainingsarena stirbt nicht ins KH kommt und wieder in der Arena spawnt?


    5. Ich bekomme folgenden Warning:


    C:\Users\Steffen\DesktopSteffens-Script.pwn(36096) : warning 203: symbol is never used: "GetPointDistanceToPointExMorph"
    aber mein Script hat nur 36095 Zeilen!
    Wie bekomm ich den Warning weg?


    Ich hoffe jemand kann mir helfen :D


    LG
    Shadow

    Gamemod: |||||||||||||||||||| 15%
    Map: |||||||||||||||||||| 70%



    Einmal editiert, zuletzt von [HcR]Shadow ()

  • 1. klammerfehler


    2. statt

    Code
    TogglePlayerControllable(playerid, 0);


    in dem was du da drin hast muss


    Code
    public arena(playerid)
    {
    TogglePlayerControllable(playerid, 0);
    }


    3. und 4. ka :D

  • ja schau wenn du /open machts geht das tor auf ... aber nirgends steht ,dass das tor zu gemacht werden soll
    http://wiki.sa-mp.com/wiki/SetTimer hier damit du den timer verstehst
    new tor;//nach oben unter includes u.s.w
    forward tor();//nach oben unter includes u.s.w
    if(strcmp(cmd, "/open", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid, 15.0, 1642.9480, -1714.6055, 20.4862))
    {
    MoveObjectToStream(ziviGates, 1642.8143310547, -1715.0423583984, 19.004592895508 begin_of_the_skype_highlighting 004592895508 end_of_the_skype_highlighting, 2.0);
    Settimer("tor",5700,0);//nach deinem belieben verändern
    }
    else if(IsPlayerInRangeOfPoint(playerid, 15.0, 1642.9480, -1714.6055, 20.4862))
    {
    MoveObjectToStream(ziviGates, 1642.8143310547, -1715.0423583984, 20.204593658447, 2.0);
    }
    }
    return 1;
    }
    public tor()//ganz unten
    {
    MoveObject (tor, x,y,z, 2.5);//deine kords hinschreiben , wie es zu ist und halt den speed den du wilst
    return 1;
    }

  • Ajjjj, er will es doch ohne Timer ^^ Also am besten so bitte:


    new bool:gGateStatus[MAX_OBJECTS];


    if(strcmp(cmd, "/open", true) == 0)
    {
    if(!IsPlayerConnected(playerid)) return 1;
    if(IsPlayerInRangeOfPoint(playerid, 15.0, 1642.9480, -1714.6055, 20.4862))
    {
    if(gGateStatus[ziviGates] == false)
    {
    MoveObjectToStream(ziviGates, 1642.8143310547, -1715.0423583984, 19.004592895508, 2.0);
    gGateStatus[ziviGates] = true;
    }
    else
    {
    MoveObjectToStream(ziviGates, 1642.8143310547, -1715.0423583984, 20.204593658447, 2.0);
    gGateStatus[ziviGates] = false;
    }
    }
    return 1;
    }


    dann noch wegen deinem Random Spawn hier:


    new Float:gRandomPlayerSpawn[][4] = {
    {1234.0, 1234.0, 1234.0, 1234.0}, //Die Formatierung ist easy, einfach {x, y, z, angle},
    {1234.0, 1234.0, 1234.0, 1234.0}, //Das sind Beispiele wie es dann ausschaut
    {1234.0, 1234.0, 1234.0, 1234.0},
    {1234.0, 1234.0, 1234.0, 1234.0},
    {1234.0, 1234.0, 1234.0, 1234.0} //Beim letzten darf am Ende kein Beistrich sein!
    };


    public OnPlayerSpawn(playerid)
    {
    new rand = random(sizeof(gRandomPlayerSpawn));
    SetPlayerPos(playerid, gRandomPlayerSpawn[rand][0], gRandomPlayerSpawn[rand][1], gRandomPlayerSpawn[rand][2]);
    SetPlayerFacingAngle(playerid, gRandomPlayerSpawn[rand][3]);
    return 1;
    }


    und wegen deinem Krankenhaus, zeig uns deinen ganzen OnPlayerSpawn, danke!

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Templer:
    Danke für den /open Befehl genau so meinte ich das :D
    Danke für die randomspawns :D


    Mein OnPlayerSpawn passt nicht hin :( ich schicks dir per PN wenns recht ist...


    LG


    //edit:


    Habs abgesendet...

    Gamemod: |||||||||||||||||||| 15%
    Map: |||||||||||||||||||| 70%



  • Ah sry.. Du hast ja ein GF ^^ Nagut hoffe du kannst den Anweisungen folgen..


    public OnPlayerConnect(playerid)
    {
    SetPVarInt(playerid, "IstInArena", 0);
    return 1;
    }


    public OnPlayerDisconnect(playerid)
    {
    RemovePVar(playerid, "IstInArena");
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == arenaenter1)
    {
    SetPVarInt(playerid, "IstInArena", 1);
    //Der andere restliche Code,
    //also einfach nur den Code einfügen ober dieser Zeile ^^
    return 1;
    }
    return 1;
    }


    public SetPlayerSpawn(playerid)
    {
    //Diese Abfrage so weit wie möglich nach oben!
    if(GetPVarInt(playerid, "IstInArena") == 1)
    {
    SetPlayerPos(playerid,2722.9504, 2126.5295, -1.1362);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerHealth(playerid, 100.0);
    SetPlayerArmour(playerid, 100.0);
    GivePlayerWeapon(playerid,24,99999);
    GivePlayerWeapon(playerid,31,99999);
    GivePlayerWeapon(playerid,33,99999);
    GivePlayerWeapon(playerid,18,99999);
    GivePlayerWeapon(playerid,16,99999);
    GivePlayerWeapon(playerid,42,99999);
    return 1; //Gaaanz Wichtig ^^
    }
    //Restlicher Code...
    return 1;
    }


    Was besonders wichtig ist, dass wenn der Spieler die Arena verlässt du folgende Zeile dorthin schreibst, also das der Wert von IstInArena deaktiviert wird!


    SetPVarInt(playerid, "IstInArena", 0);


    Achja und zu deinem 5., wegen dem Warning, den kannste sowas von Ignorieren xD


    //Wichtiger Edit:


    Hab in der PN gesehen, dass dein Krankenhaus doch unter OnPlayerSpawn ist ^^, also bitte den Krankenhausteil so verändern...


    public OnPlayerSpawn(playerid)
    {
    if(PlayerInfo[playerid][pTot] == 1)
    {
    if(PlayerPaintballing[playerid] == 0 && GetPVarInt(playerid, "IstInArena") == 0)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_GREEN, "----------------Im Krankenhaus----------------");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Durch deine schweren Verletzungnen liegst du im Koma!");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du bist nun für ca. 60Sec. in Behandlug.");
    ResetPlayerWeapons(playerid);
    }
    return 1;
    }
    return 1;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!