Beiträge von Zunno

    such im script mal (STRG + F) nach %s hat den Server betreten
    und nach %s hat den Server verlassen


    bzw unter OnPlayerConnect(playerid) und unter OnPlayerDisconnect(playerid, reason)
    und lösch dies raus.


    LG, Zunno

    Du brauchst eine Schleife die Jedes Gang Auto erfasst.
    Dann würde ich Abfragen ob jemand drine stitzt ( Egal welcher Platz) und das Auto dann nicht respawnen.
    Und die Funktion SetVehicleToRespawn(vehicleid); ist auch für dich noch wichtig.


    LG, Zunno

    Unter OnPlayerStateChange:


    if(newstate == PLAYER_STATE_PASSENGER)
    {
    switch(GetPlayerWeapon(playerid))
    {
    case 24: SetPlayerArmedWeapon(playerid, 0); //Anti Dealge DriveBy
    //Weitere Waffen?
    }
    }


    setzt die waffe auf die "Faust" wenn er mit einer Deagle einsteigt als beifahrer.

    //Includes
    #include <a_samp>



    //News
    new LSPDcar;
    new PDbike;
    new Train;
    new AT400;
    new Coach1;



    //Publics
    public OnFilterScriptInit()
    {
    ConnectNPC("Mike","busbot");
    ConnectNPC("Johnson","copcarbot");
    ConnectNPC("Yards","policebikebot");
    ConnectNPC("Kelroy","trainbot");
    ConnectNPC("Roy","at400bot");


    //Vehicles
    Coach1 = AddStaticVehicle(437, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1);
    LSPDcar = AddStaticVehicle(596, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1);
    PDbike = AddStaticVehicle(523, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1);
    Train = AddStaticVehicle(538, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1);
    AT400 = AddStaticVehicle(577, 2109.1763, 1503.0453, 32.2887, 82.2873, 1, 3);
    }


    public OnPlayerSpawn(playerid)
    {
    if(IsPlayerNPC(playerid))
    {
    new npcname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, npcname, sizeof(npcname));
    if(!strcmp(npcname, "Mike", true))
    {
    PutPlayerInVehicle(playerid, Coach1, 0);
    SetPlayerSkin(playerid, 255);
    ResetPlayerWeapons(playerid);
    }
    if(!strcmp(npcname, "Johnson", true))
    {
    PutPlayerInVehicle(playerid, LSPDcar, 0);
    SetPlayerSkin(playerid, 255);
    ResetPlayerWeapons(playerid);
    }
    if(!strcmp(npcname, "Yards", true))
    {
    PutPlayerInVehicle(playerid, PDbike, 0);
    SetPlayerSkin(playerid, 255);
    ResetPlayerWeapons(playerid);
    }
    if(!strcmp(npcname, "Kelroy", true))
    {
    PutPlayerInVehicle(playerid, Train, 0);
    SetPlayerSkin(playerid, 255);
    ResetPlayerWeapons(playerid);
    }
    if(!strcmp(npcname, "Roy", true))
    {
    PutPlayerInVehicle(playerid, AT400, 0);
    SetPlayerSkin(playerid, 255);
    ResetPlayerWeapons(playerid);
    }
    }
    return 1;
    }


    Versuch es mal so ;)

    Nunja du kannst die Baustellen Objecte z.B. so definieren:
    new Baustelle[20]; Wobei die 20 für die Anzahl der Objecte steht.
    Diese kannst du dan mit
    Baustelle[0] = CreateObject(...);
    Baustelle[1] = CreateObject(...); usw erstellen lassen und mit
    for(new i = 0; i < sizeof(Baustelle); i++)
    {
    DestroyObject(Baustelle[i]);
    }
    wieder löschen :)

    Ersetz:

    Attach3DTextLabelToPlayer(Text3D:FS3D[playerid], giveplayerid, 0.0, 0.0,0.42);//HIER KOMMT DER WARNING
    mit:

    Attach3DTextLabelToPlayer(FS3D[playerid], giveplayerid, 0.0, 0.0,0.42);//HIER KOMMT DER WARNING


    LG, Zunno


    Edit: Tommyx3 #pragma tabsize 0 löst nicht immer alle Probleme. Dann wäre vieleicht der Warning weg aber das Label würde trozdem nicht angezeigt werden.

    Wenn du kein Plugin benutzen möchtest, benutz Opas Objectstreamer, der ist eigentlich recht gut.
    Das Streamer Plugin würde ich dir aber empfehlen, da dieses Plugin nicht nur Objecte Streamt :D


    Zur Frage:
    Nunja der Include Object Streamer hat ja auch eine gewisse größe, und vergrößert beim Compilen die AMX und deswegen dauert es auch länger zu Compilen (meine Theorie^^)


    Du könntest zum verschnellern einfach mal probieren den Streamer anzupassen in form von strings verkleinern die auf 128 oder so stehen ;)


    LG, Zunno

    dcmd_kick(playerid,params[])
    {
    if(GetPVarInt(playerid,"Admin") < 2) return SendClientMessage(playerid,Grau,"Du bist kein Admin."); //So wird abgefragt wenn das admin level kleiner als 2 ist, wird der text ausgegeben.
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,Grau,"/kick [id] [grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(Rot,string);
    Kick(pID);
    return 1;
    }

    Da sieht man ja schon das "team" nicht benutzt wird.
    Desweiteren sender er wenn du einmal SendTeamMessage ausführst die Nachricht an Fraktion 1, Fraktion 2, Fraktion 3 und Fraktion 4..
    Wenn du nun SendTeamMessage(1, farbe, string); machst und dann SendTeamMessage(2, farbe, string); usw, sendet er egal welche Zahl am anfang steht die nachricht nur an die 4 fraktionen.


    Deshalb würde ich dir vorschlagen die funktion so umzuändern.


    public SendTeamMessage(team, color, string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pMember] == team || PlayerInfo[i][pLeader] == team)
    {
    SendClientMessage(i, color, string);
    }
    }
    }
    }


    LG
    Zunno

    Dein Fehler liegt denke ich mal hierdran: SendTeamMessage(1, COLOR_ALLDEPT, string);
    SendTeamMessage(2, COLOR_ALLDEPT, string);
    SendTeamMessage(3, COLOR_ALLDEPT, string);
    SendTeamMessage(16, COLOR_ALLDEPT, string);
    SendTeamMessage(17, COLOR_ALLDEPT, string);


    Such mal im Script nach public SendTeamMessage und guck dir die Funktion mal an :)

    Du hast doch bestimmt deine sInfo[playerid][Level] in einem Enum festgelegt oder?
    dann ladest du in dieses Enum beim Login die Daten, und kannst dann dieses Enum zum abfragen benutzen.


    if(sInfo[playerid][Level] == 2) return SendClientMessage(playerid, COLOR_WHITE, "* Du bist Level 2 :D");


    mfg zunno

    Es wäre vieleicht besser wenn du die Gruppe in der mysql_query abfrage einbeziehst..
    sprich
    new query[256];
    format(query, sizeof(query), "SELECT * FROM vehicles WHERE vGroup = '%s'",group);
    mysql_query(query);
    Und dann alles was ausgegeben wird laden/erstellen lassen :)

    Hast du vieleicht schon davor noch Fahrzeuge auf dem Server erstellt? Also bevor die Fahrzeuge aus der MySQL Datenbank gelesen werden?
    Ich verstehe auch nicht ganz wieso du MAX_VEHICLES auf 100 definierst..
    Das heißt du möchtest also insgesamt nur 100 Fahrzeuge auf deinem Server dulden?


    -Zunno