Cs Arad Community

CS Bomb Scripting   2z8bv910

Bun Venit pe forum. Te rugam sa te inregistrezi/loghezi.
A aparut sectiunea NFS (Need for Speed).Posteaza acolo o versiune de Need For Speed care sa functionaze (cand il descarci si cand il instalezi si cand te joci) si joacate impreuna cu ceilalti.
Radio20. Cel mai bun Radio. www.radio20.ro
Aici poate fi mesajul tau(Fara reclame).Trimite PM lui AnK` pentru detalii

    CS Bomb Scripting

    Vasy [;x]
    Vasy [;x]
    Moderator Global
    Moderator Global

    Mesaje : 189
    Puncte : 16105
    Karma : 3
    Data de inscriere : 12/05/2011
    Varsta : 27
    Localizare : Sighisoara

    CS Bomb Scripting   Empty CS Bomb Scripting

    Mesaj Scris de Vasy [;x] la data de Mar Mai 31, 2011 8:16 am

    Inceput:
    Am vazut multe intrebari/mistere fata de c4 bomb script. Asa ca m-am decis sa fac un tutorial/faq pentru a va lamuri.

    Cerinte:
    Ar trebui majoritatea dintre voi sa fiti familiarizati cu bazele scriptare ale AMXMODX-ului.Pentru a obtine inceputul jucatorilor (numai în interiorul "logevent_function_p"), va trebui să utilizaţi:
    PHP Code:
    Cod:
    stock get_loguser_index() {
        new loguser[80], name[32]
        read_logargv(0, loguser, 79)
        parse_loguser(loguser, name, 31)
     
        return get_user_index(name)
    Example:
    PHP Code:
    Cod:
    public logevent_function_p() {
        new id = get_loguser_index()
        // ...

    1. Player/Bomb
    PHP Code:
    Cod:

    // Este bomba cazuta/transportata?
        if (fm_find_ent_by_class(-1, "weapon_c4"))
     
    // Este bomba cazuta?
        new bomb = fm_find_ent_by_class(-1, "weapon_c4")
        if (bomb && pev(bomb, pev_owner) > get_maxplayers())
     
    // Este bomba transportata/cine o transporteaza?
        new carrier = 0, ownerent, bomb = fm_find_ent_by_class(-1, "weapon_c4")
        if (bomb && (ownerent = pev(bomb, pev_owner)) <= get_maxplayers())
            carrier = ownerent
        if (carrier) // noi o avem de transportat
        else // noi nu o avem de transportat
     
    // Este data bomba la player?
        if (user_has_weapon(id, CSW_C4)) // metoda #1
        if (pev(id, pev_weapons) & (1<<CSW_C4)) // metoda #2
        if (fm_find_ent_by_owner(-1, "weapon_c4", id)) // metoda #3

    // Cum transferi bomba de la un player la altul?
        fm_transfer_user_gun(carrier, recipient, CSW_C4) // returnare cu succes
     
    // Cum obligi un player sa renunte la bomba?
        engclient_cmd(id, "drop", "weapon_c4")
     
    // Cum sa elimini imaginea bombei?
        new weapbox, bomb = fm_find_ent_by_class(-1, "weapon_c4")
        if (bomb && (weapbox = pev(bomb, pev_owner)) > get_maxplayers()) {
            dllfunc(DLLFunc_Think, weapbox) // vor fi eliminate weaponbox + weapon_c4
            // elimina punctul rosu care indica bomba de pe radar
            message_begin(MSG_ALL, get_user_msgid("BombPickup"))
        }
     
    // Cum dai bomba la un jucator?
        fm_give_item(id, "weapon_c4")
        // use cs_set_user_plant(id) to allow planting
     
    //  Cum stergi icoana bombei ?
        engclient_cmd(id, "weapon_c4")
        cs_set_user_bpammo(id, CSW_C4, 0)
        engclient_cmd(id, "lastinv")
        // elimina icoana bombei
        message_begin(MSG_ONE, get_user_msgid("StatusIcon"), _, id)
        write_byte(0)
        write_string("c4")
        message_end()
     
    // Este bomba plantata/cum elimini bomba plantata?
        new bomb
        if ((bomb = fm_find_ent_by_model(-1, "grenade", "models/w_c4.mdl"))) {
            // bomba e plantata
            fm_remove_entity(bomb) // elimina bomba plantata
        }

    2. Drop/Collect
    PHP Code:
    Cod:

    // Spawnu playerului care are c4
        register_logevent("logevent_function_p", 3, "2=Spawned_With_The_Bomb")
     
    // Bomba a cazut (inclusiv deconnectare/moarte)
        register_logevent("logevent_function_p", 3, "2=Dropped_The_Bomb")
        // foloseste is_user_alive/is_user_connected pentru deconectare/moarte
     
    // Bomba a fost colectata
        register_logevent("logevent_function_p", 3, "2=Got_The_Bomb")
     
    // Bomba a fost dobandita
        register_event("WeapPickup", "event_function", "be", "1=6")

    3. Plant/Defuse
    PHP Code:
    Cod:

    // Startul plantari bombei
        register_event("BarTime", "event_function", "be", "1=3")
     
    // Bomba plantata
        register_logevent("logevent_function_p", 3, "2=Planted_The_Bomb")
     
    // Inceptul dezamorsari bombei
        register_event("BarTime", "event_function", "be", "1=5", "1=10")
     
    // Inceputul dezamorsari bombei fara KIT
        register_logevent("logevent_function_p", 3, "2=Begin_Bomb_Defuse_Without_Kit")
     
    // Inceputul dezamorsari bombei cu KIT
        register_logevent("logevent_function_p", 3, "2=Begin_Bomb_Defuse_With_Kit")
     
    // Bomba dezamorsata
        register_logevent("logevent_function_p", 3, "2=Defused_The_Bomb")
     
    // Incheierea plantari bombei/dezamorsari
        register_event("BarTime", "event_function", "b", "1=0")
        // tu trebuie sa fi sigur ca bomba este in desfasurarea plantari/dezamorsari
     
    // Salvarea explodarii
        register_logevent("logevent_function", 6, "3=Target_Saved") 

    4. Explosion
    PHP Code:
    Cod:

    // Explodarea bombei inainte de sfarsitul rundei
        register_logevent("logevent_function", 6, "3=Target_Bombed")
     
    // Planteaza bomba ,explodand inainte/dupa sfarsitul rundei
        register_event("23", "event_function", "a", "1=17", "6=-105", "7=17")
     
    // Jucatorii omorati de catre explodarea bombei
        public client_death(killer, victim, wpnindex, hitplace, TK) {
            if (wpnindex == CSW_C4)
        } 

    5. Targets
    PHP Code:
    Cod:

    // Exist un player la explodarea bombei(func_bomb_target)?
        // Note: nu exista o modalitate buna de a detecta daca jucatorul este la bomba
        new target = -1, class[] = "func_bomb_target", bool:is_inside = false
        while ((target = fm_find_ent_by_class(target, class))) {
            if (!fm_boxents_distance(index, target)) {
                is_inside = true
                break
            }
        }
        if (is_inside)
     
    // Harta contine obiectivele bombei?
        if (fm_find_ent_by_class(-1, "func_bomb_target") || fm_find_ent_by_class(-1, "info_bomb_target"))
     
    // Cum elimini explodarea bombei?
        new target = -1, classname[] = "func_bomb_target"
        while ((target = fm_find_ent_by_class(target, classname)))
            fm_remove_entity(target)
        classname = "info_bomb_target"
        while ((target = fm_find_ent_by_class(target, classname)))
            fm_remove_entity(target)

      Acum este: Dum Noi 17, 2019 6:37 pm