Beiträge von Crank93

    wie schon gesagt, um ein sinnvolles system hinzubekommen ist ein array mit den koordinaten für jedes einzelne fahrzeug nötig, etwa so:



    enum e_neon_coords
    {
    Float:fX,
    Float:fY,
    Float:fZ
    }
    //
    new Float:g_Veh_Neon_Coords[MAX_VEHICLES][e_neon_coords];
    new Obj_Neon[MAX_VEHICLES];
    //







    die koordinaten alle exakt zu bestimmen dürfte allerdings recht aufwendig werden.


    /E: zu den errors, lies sie dir nochmal durch , sind alle eindeutig und einfach zu beheben.

    das hier wirst du brauchen:



    stock const aWeaponNames[][]= //Credits: Simon's Debug FS
    {
    {"Unarmed (Fist)"}, // 0
    {"Brass Knuckles"}, // 1
    {"Golf Club"}, // 2
    {"Night Stick"}, // 3
    {"Knife"}, // 4
    {"Baseball Bat"}, // 5
    {"Shovel"}, // 6
    {"Pool Cue"}, // 7
    {"Katana"}, // 8
    {"Chainsaw"}, // 9
    {"Purple Dildo"}, // 10
    {"Big White Vibrator"}, // 11
    {"Medium White Vibrator"}, // 12
    {"Small White Vibrator"}, // 13
    {"Flowers"}, // 14
    {"Cane"}, // 15
    {"Grenade"}, // 16
    {"Teargas"}, // 17
    {"Molotov"}, // 18
    {"-"}, // 19
    {"-"}, // 20
    {"-"}, // 21
    {"Colt 45"}, // 22
    {"Colt 45 (Silenced)"}, // 23
    {"Desert Eagle"}, // 24
    {"Normal Shotgun"}, // 25
    {"Sawnoff Shotgun"}, // 26
    {"Combat Shotgun"}, // 27
    {"Micro Uzi (Mac 10)"}, // 28
    {"MP5"}, // 29
    {"AK47"}, // 30
    {"M4"}, // 31
    {"Tec9"}, // 32
    {"Country Rifle"}, // 33
    {"Sniper Rifle"}, // 34
    {"Rocket Launcher"}, // 35
    {"Heat-Seeking Rocket Launcher"}, // 36
    {"Flamethrower"}, // 37
    {"Minigun"}, // 38
    {"Satchel Charge"}, // 39
    {"Detonator"}, // 40
    {"Spray Can"}, // 41
    {"Fire Extinguisher"}, // 42
    {"Camera"}, // 43
    {"Night Vision Goggles"}, // 44
    {"Infrared Vision Goggles"}, // 45
    {"Parachute"}, // 46
    {"Fake Pistol"} // 47
    };


    und dann beim command:



    //"giveweapon"
    new
    string[50],
    pname[MAX_PLAYER_NAME];
    //
    GivePlayerWeapon(pID, weapoind, ammo); //pID ist hier logischerweise die ID des Empfängers
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "%s hat dir die Waffe \"%s\" (%d) gegeben!", pname, aWeaponNames[weaponid], weaponid);
    SendClientMessage(pID, COLOR, string);
    return 1;

    naja, dadurch würde jede "(" und ")" mit geschweiften klammern ersetzt werden, auch wenn der spieler gar keine farbcodes beabsichtigt.
    für alle, die farbcodes auch im chat ermöglichen wollen, bitteschön:



    //Y_Less ;)
    ReColour(text[])
    {
    new
    pos = -1;
    while ((pos = strfind(text, "(", false, pos + 1)) != -1)
    {
    new
    c = pos + 1,
    n = 0,
    ch;
    // Note that the order of these is important!
    while ((ch = text[code=c]) && n != 6)
    {
    if (!('a' <= ch <= 'f' || 'A' <= ch <= 'F' || '0' <= ch <= '9'))
    {
    break;
    }
    ++c;
    ++n;
    }
    if (n == 6 && ch == ')')
    {
    text[pos] = '{';
    text[code=c] = '}';
    }
    }
    }

    public OnPlayerText(playerid, text[])
    {
    // Recolour the text
    ReColour(text);
    return 1;
    }

    neue nutzer sollten sich aber auch gründlich die regeln durchlesen, wenn sie sich hier registrieren, dann gibts auch keine verwarnungen.
    "Unwissenheit schützt vor Strafe nicht."

    also, bei jedem befehl, den du eingibst kommt diese nachricht, wenn du afk bist? kann ich mir kaum vorstellen, zeig mal ein dein "OnPlayerCommandText".


    //oben
    new veh_models[]={100, 180, 4}; //beliebig erweitern
    //hier die schleife
    for(new i=0; i<sizeof(veh_models); i++)
    {
    if(GetVehicleModel(vehicleid) == veh_models[i])
    {
    //bla...
    }
    }


    so, müsste jetzt gehen...

    du benötigst ein array in kombination mit einer schleife:



    //oben
    new veh_models[]={100, 180, 4}; //beliebig erweitern
    //hier die schleife
    for(new i=0; i<sizeof(veh_models); i++)
    {
    if(GetVehicleModel(vehicleid) == veh_models(i))
    {
    //bla...
    }
    }


    //oben
    new bool:IsAFK[MAX_PLAYERS];


    //command "/afk"
    if(IsAFK[playerid])
    {
    return SendClientMessage(playerid, COLOR, "Du bist bereits AFK!");
    }
    //...
    IsAFK[playerid]=true;
    //
    //command "/back"
    if(!IsAFK[playerid])
    {
    return SendClientMessage(playerid, COLOR, "Du musst AFK sein, um das zu machen!");
    }
    //...
    IsAFK[playerid]=false;


    allgemein immer bool-variablen für jeden spieler (arrays) erstellen und bei bestimmten bedingungen auf true/false setzen, und dann halt abfragen.


    //OnDialogResponse
    if(dialogid==PDSkin)
    {
    if(!response)
    {
    return SendClientMessage(playerid, 0xFF0000FF, "Skinauswahl abgebrochen!");
    }
    switch(listitem) //in diesem fall besser als if-struktur
    {
    case 0:
    {
    SetPlayerSkin(playerid,284);
    SendClientMessage(playerid,COLOR_GREEN,"Sie sind nun Motorrad-Officer!");
    }
    case 1:
    {
    SetPlayerSkin(playerid,170);
    SendClientMessage(playerid,COLOR_GREEN,"Sie sind nun Streifenofficer!");
    }
    case 2:
    {
    SetPlayerSkin(playerid,280);
    SendClientMessage(playerid,COLOR_GREEN,"Sie sind nun Streifenofficer!");
    }
    case 3:
    {
    SetPlayerSkin(playerid,211);
    SendClientMessage(playerid,COLOR_GREEN,"Sie sind nun Undercoveragentin!");
    }
    case 4:
    {
    SetPlayerSkin(playerid, 166);
    SendClientMessage(playerid,COLOR_GREEN,"Sie sind nun Undercoveragent!");
    }
    case 5:
    {
    SetPlayerSkin(playerid, 147);
    SendClientMessage(playerid,COLOR_GREEN,"Willkommen im Dienst!");
    }
    }
    }
    //...