Beiträge von Kaliber

    new string1[20], string2[20], rest[40];


    format(string1, sizeof string1,"Dein Geld: %d",geld);
    format(string2, sizeof string2,"Dein Level: %d",GetPlayerScore(playerid));
    format(rest, sizeof rest,"%s\n%s",string1,string2);
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Deine Stats",rest,"Bestätigen","");


    Eines von vielen Beispielen ;)


    mfg. :thumbup:

    Du machst das ungefähr so:


    new Float: eventX, Float: eventY, Float: eventZ; //Oben in dein Script


    ocmd:evento(playerid,params[])
    {
    if(IsPlayerAdmin(playerid))
    {
    if(EventTime == 0)
    {
    GetPlayerPos(playerid, eventX, eventY, eventZ);
    EventTime = 1;
    SendClientMessage(playerid,gelb,"Der Eventpunkt wurde erstellt.");
    }
    if(EventTime == 1)
    {
    SendClientMessage(playerid,gelb,"Es gibt schon einen Eventpunkt!");
    }
    }
    return 1;
    }


    ocmd:event(playerid,params[])
    {
    if(IsPlayerAdmin(playerid))
    {
    if(EventTime == 1)
    {
    SetPlayerPos(playerid, eventX, eventY, eventZ);
    SendClientMessage(playerid,gelb,"Du wurdest zum Event geportet.");
    }
    if(EventTime == 0)
    {
    SendClientMessage(playerid,gelb,"Der Eventport ist momentan nicht offen.");
    }
    }
    return 1;
    }


    mfg. :thumbup:

    new giveplayerid;//ist der Spieler den du spectatest


    if(strcmp(cmd, "/spectate", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, rot, "Benutzung: /spectate [playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    Spectaten(playerid, giveplayerid);
    return 1;
    }


    stock Spectaten(playerid, pID)
    {
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, pID);
    return 1;
    }


    Meinste sowas ?(


    mfg. :thumbup:

    Und was hat DAS
    #define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
    IM Callback zu suchen?


    -.- ja man kann es auch oben unter die includes zu den defines schreiben aber wieso nicht, kann man doch im Callback lassen ;)


    mfg. :thumbup:

    Habe dir das mal alles überarbeitet ;)


    Lösche deinen Code und ersetze ihn durch meinen !


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    #define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
    if(PRESSED(KEY_SECONDARY_ATTACK))
    {
    //24/7 BSNEingang
    if(IsPlayerInRangeOfPoint(playerid,3.0,1315.4526,-897.9899,39.5781))
    {
    SetPlayerPos(playerid,5.6833,-29.8726,1003.5494);
    SetPlayerFacingAngle(playerid,0.3330);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,10);
    }
    //24/7 BSNEingang
    else if(IsPlayerInRangeOfPoint(playerid,3.0,6.0410,-30.9525,1003.5494)&& GetPlayerVirtualWorld(playerid) == 10)
    {
    SetPlayerPos(playerid,1315.1510,-900.1759,39.5781);
    SetPlayerFacingAngle(playerid,178.2833);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    //BSNeingang
    else if(IsPlayerInRangeOfPoint(playerid,3.0,1199.2144,-918.1475,43.1235))
    {
    SetPlayerPos(playerid,364.5392,-74.0972,1001.5078);
    SetPlayerFacingAngle(playerid,295.4293);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,10);
    }
    //BSNausgang
    else if(IsPlayerInRangeOfPoint(playerid,3.0,363.1507,-75.0385,1001.5078)&& GetPlayerVirtualWorld(playerid) == 10)
    {
    SetPlayerPos(playerid,1198.4048,-919.0438,43.1221);
    SetPlayerFacingAngle(playerid,105.7848);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    //LSPDeingang
    else if(IsPlayerInRangeOfPoint(playerid,3.0,1555.5007,-1675.6169,16.1953))
    {
    SetPlayerPos(playerid,246.8422,64.2786,1003.6406);
    SetPlayerFacingAngle(playerid,2.5535);
    SetPlayerInterior(playerid,6);
    SetPlayerVirtualWorld(playerid,10);
    }
    //LSPDausgang
    else if(IsPlayerInRangeOfPoint(playerid,3.0,246.7422,62.8984,1003.6406)&& GetPlayerVirtualWorld(playerid) == 10)
    {
    SetPlayerPos(playerid,1553.1208,-1675.5620,16.1953);
    SetPlayerFacingAngle(playerid,92.7904);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    //Grove
    else if(IsPlayerInRangeOfPoint(playerid,3.0,2495.2424,-1690.8561,14.7656)&& IstSpielerFraktion(playerid,8))
    {
    SetPlayerPos(playerid,2496.1650,-1694.5027,1014.7422);
    SetPlayerFacingAngle(playerid,177.5383);
    SetPlayerInterior(playerid,3);
    SetPlayerVirtualWorld(playerid,10);
    }
    else if(IsPlayerInRangeOfPoint(playerid,3.0,2496.0789,-1692.3816,1014.7422)&& IstSpielerFraktion(playerid,8) && GetPlayerVirtualWorld(playerid) == 10)
    {
    SetPlayerPos(playerid,2495.5344,-1688.8928,14.0903);
    SetPlayerFacingAngle(playerid,2.1720);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    //Stadthalle
    else if(IsPlayerInRangeOfPoint(playerid,3.0,1481.0741,-1771.2151,18.7958))
    {
    SetPlayerPos(playerid,388.0544,173.5209,1008.3828);
    SetPlayerFacingAngle(playerid,88.9641);
    SetPlayerInterior(playerid,3);
    SetPlayerVirtualWorld(playerid,12);
    }
    else if(IsPlayerInRangeOfPoint(playerid,3.0,390.1335,173.8419,1008.3828)&& GetPlayerVirtualWorld(playerid) == 12)
    {
    SetPlayerPos(playerid,1480.8508,-1770.0304,18.7958);
    SetPlayerFacingAngle(playerid,357.4949);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    //Stadthallenmenu
    else if(IsPlayerInRangeOfPoint(playerid,3.0,362.3032,173.6745,1008.3828)&& GetPlayerVirtualWorld(playerid) == 12)
    {
    Stadthallenmenu(playerid);
    }
    }
    return 1;
    }


    mfg. :thumbup:

    Also der Parameter bei OnPlayerRequestClass, also dieses classid das wird verwendet, wenn du AddPlayerClass benutzt, man muss dies aber nicht tun...kannst das auch so z.B. machen:


    new nummer[MAX_PLAYERS];
    public OnPlayerRequestClass(playerid,classid)
    {
    new skin = GetPlayerSkin(playerid);
    if(skin == 299 && nummer[playerid] == 0)
    {
    nummer[playerid] = 1;
    skin = 285;
    SetPlayerSkin(playerid, skin);
    return 0;
    }
    else if(skin == 285 && nummer[playerid] == 1)
    {
    nummer[playerid] = 0;
    skin = 299;
    SetPlayerSkin(playerid, skin);
    return 0;
    }
    return 1;
    }


    Bin mir nicht genau sicher ob das geht, habe das mal so aus dem Kopf geschrieben, denke aber man könnte das so machen ^^


    mfg. :thumbup:


    //Edit: return 0;

    @ Kaliber mal ne frage


    mit den hier ForceClassSelection
    muss man dann noch bei OnGameModeInit addplayerclass nutzen?


    Also, wenn man ForceClassSelection benutzt wird automatisch der OnPlayerRequestClass Callback gestartet, du "musst" nicht AddPlayerClass benutzen ! Aber man kann es hier das Zitat:


    Zitat

    Note: Class IDs are assigned when AddPlayerClass is used.


    mfg. :thumbup: