Beiträge von aTraX

    #include <a_samp>


    #define COLOR_ORANGE 0xFF9900AA
    #define COLOR_YELLOW 0xFFFF00AA


    new gTram;
    new gPass[4] = {-1, -1, -1, -1};
    new gCheckState[MAX_PLAYERS];


    forward TramInit();
    forward CheckUp();


    public OnFilterScriptInit()
    {
    SetTimer("CheckUp", 200, 1);


    gTram = AddStaticVehicle(449,-2006.5890,154.2374,27.5020,0.2065,-1,-1);


    return 1;
    }


    public CheckUp()
    {
    new Float:tx, Float:ty, Float:tz;
    new Float:px, Float:py, Float:pz;


    GetVehiclePos(gTram, tx, ty, tz);


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(gCheckState[i] == 2)
    {
    gCheckState[i] = 1;
    }


    if(!IsPlayerInAnyVehicle(i))
    {
    GetPlayerPos(i, px, py, pz);


    if(floatsqroot(floatpower(tx - px, 2) + floatpower(tx - px, 2)) < 25.0)
    {
    if(gCheckState[i] == 0)
    {
    SetPlayerCheckpoint(i, tx, ty, tz, 7.5);
    }
    gCheckState[i] = 2;
    }
    }


    if(gCheckState[i] == 1)
    {
    DisablePlayerCheckpoint(i);
    gCheckState[i] = 0;
    }
    }
    }
    }


    public OnPlayerConnect(playerid)
    {
    SetVehicleParamsForPlayer(gTram, playerid, 0, 1);


    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    for(new i = 0; i < 4; i++)
    {
    if(gPass[i] == playerid)
    {
    gPass[i] = -1;
    }
    }


    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    if(vehicleid == gTram)
    {
    for(new i = 0; i < 4; i++)
    {
    if(gPass[i] == playerid)
    {
    gPass[i] = -1;
    }
    }
    }


    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    if(gCheckState[playerid] == 2)
    {
    SendClientMessage(playerid, 0xFF9900AA, "Guten Tag, Steige einfach in die Tram !");
    SendClientMessage(playerid, 0xFF9900AA, "Und los gehts !");


    return 1;
    }


    return 0;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if((gCheckState[playerid] == 2) && IsPlayerInCheckpoint(playerid))
    {
    if(IsKeyJustDown(1, newkeys, oldkeys))
    {
    for(new i = 1; i < 4; i++)
    {
    if(gPass[i] == -1)
    {
    PutPlayerInVehicle(playerid, gTram, i);
    gPass[i] = playerid;
    break;
    }

    if(i == 3)
    {
    }
    }
    }


    if(IsKeyJustDown(16, newkeys, oldkeys))
    {
    if(gPass[0] == -1)
    {
    PutPlayerInVehicle(playerid, gTram, 0);
    gPass[0] = playerid;
    } else
    {
    }
    }
    }

    }


    IsKeyJustDown(key, newkeys, oldkeys)
    {
    if((newkeys & key) && !(oldkeys & key))
    return 1;
    return 0;
    }




    das muss funzen :D

    Da ja doch viele Leute Probleme mit dem random Spawn haben zeige ich jetzt mal wie leicht es eig ist :D


    (Es ist aus dem LVDM Script . Einige schaffen es aber net es daraus zu kopieren deswegen schreibe ich das Tut :D)


    Dies kommt ganz nach oben unter die Includes


    new Spawn[MAX_PLAYERS];
    forward SetPlayerRandomSpawn(playerid);


    So das kommt auch ganz nach oben zu den anderen zwei Sachen nur hier tragt ihr die Random Spawns ein:


    new Float:gRandomPlayerSpawns[23][3] = {
    {1958.3783,1343.1572,15.3746},
    {2199.6531,1393.3678,10.8203},
    {2483.5977,1222.0825,10.8203},
    {2637.2712,1129.2743,11.1797},
    {2000.0106,1521.1111,17.0625},
    {2024.8190,1917.9425,12.3386},
    {2261.9048,2035.9547,10.8203},
    {2262.0986,2398.6572,10.8203},
    {2244.2566,2523.7280,10.8203},
    {2335.3228,2786.4478,10.8203},
    {2150.0186,2734.2297,11.1763},
    {2158.0811,2797.5488,10.8203},
    {1969.8301,2722.8564,10.8203},
    {1652.0555,2709.4072,10.8265},
    {1564.0052,2756.9463,10.8203},
    {1271.5452,2554.0227,10.8203},
    {1441.5894,2567.9099,10.8203},
    {1480.6473,2213.5718,11.0234},
    {1400.5906,2225.6960,11.0234},
    {1598.8419,2221.5676,11.0625},
    {1318.7759,1251.3580,10.8203},
    {1558.0731,1007.8292,10.8125},
    {1705.2347,1025.6808,10.8203}
    };


    So man beachte aber das bei der letzten Coords Zeile kein Komma ist und oben wo die 23 steht muss man z.b wenn eine neue Coords Zeile hinzu kommt 24 hinschreiben


    Die 3 konnt ich selber noch net herausfinden..


    So bei OnPlayerconnect fügt ihr folgende Zeile ein


    SetPlayerRandomSpawn(playerid);


    So und i-wo im Script platziert ihr dieses hier


    public SetPlayerRandomSpawn(playerid)
    {
    if (Spawn[playerid] == 0)
    {
    new rand = random(sizeof(gRandomPlayerSpawns));
    SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]);
    }
    return 1;
    }


    Soo das wars auch schon :D hoffe ich konnte euch helfen ^^

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/kill", cmdtext, true, 10) == 0)
    {
    SetPlayerScore(playerid, GetPlayerScore(playerid)+-1);
    SetPlayerHealth(playerid,0);
    return 1;
    }

    if (strcmp(cmdtext, "/Help", true) == 0)
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE," CMD´s : /Kill");
    return 1;
    }
    return 0;
    }


    Eig so :D glaub ich xD

    jo welche Interior ID is das denn ?


    if (strcmp("/Teleport", cmdtext, true, 10) == 0)
    {
    SetPlayerPos(playerid,387.7978,173.8582,1008.3828);
    SetPlayerInterior(playerid, INTERIORID); //Die ID musst du da eintragen ;) !
    return 1;
    }

    es gibt was das heißt IsPlayerInArea oder so :D ka kenn ich mich net mit aus aber ich denke das es das richtige währe