MCBloques [v1.4]
#1
Video 
[Imagen: attachment.php?aid=1098]
[Imagen: attachment.php?aid=1099]

http://youtu.be/eTJloW7DbHo

Este plugin sirve para construir cosas con cubos como en minecraft


Cita:Como se usa?
  1. Equipando el cuchillo
  2. Golpeas paredes, escaleras, puertas o cualquier objeto rompible con click derecho para obtener Recursos 9 tipos diferentes por ahora
  3. Al conseguir algo se puede abrir el menu con la letra E
  4. Se elije 1 item y con click izquierdo se planta en el suelo
  5. Para salir del modo constructor apretas E y elejis Cancel o golpeas algo con click derecho
  6. Los bloques que hallas plantado ahora se pueden destruir por cualquier jugador

Comandos
mcb= 1, aun sin efecto Whatever
mcbhp= vida de los cubos, por defecto 100
mcbmax= cantidad de cubos por player, por defecto 40
mcbprecio= precio de los cubos, por defecto 8
mcbdestroy= destruye todos los bloques del nivel
mcbsave= guarda todos los bloques del nivel
mcbitem=user-material-cantidad, regala materiales a un jugador
Regalar 100 de cristal al jugador 1:
mcbitem 1-0-100

Includes
Código:
#include <amxmodx>
#include <amxmisc>
#include <engine>

Plugin (v1.0):
Código:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <engine>

#define PLUGIN "MINECRAFT BLOQUES"
#define VERSION "1.0"
#define AUTHOR "estantaya"

#define MAXPLAYERS 33
#define MAXBLOKS 128

#define BLOKID 0
#define BLOKOWNER 1

#define MCBPIEDRA 0
#define MCBMETAL 1
#define MCBMADERA 2
#define MCBPARTES 3
#define MCBCRISTAL 4
#define MCBCARNE 5
#define MCBBASURA 6
#define MCBTECHO 7
#define MCBVIDRIO 8
#define MCBNO 9

new mMCBloques[MAXPLAYERS] // Menu
new mcbMCBloques[MAXPLAYERS] // Menu Callback

new const mcbEnts[][]= {
"armoury_entity",
"button_target",
"func_breakable",
"func_button",
"func_door",
"func_door_rotating",
"func_ladder",
"func_pushable",
"func_rot_button",
"func_tank",
"func_train",
"func_mcb_cubo",
"func_mcb_arbol" }

new const mcbBloks[][]= {
"Piedra",
"Metal",
"Madera",
"Partes",
"Cristal",
"Carne",
"Basura",
"Techo",
"Vidrio",
"Objeto no valido" }

new const mcbModelBloque0[]        = "models/mcbloques/mcb0.mdl"
new mcbPlayerInv[MAXPLAYERS][sizeof(mcbBloks)][2]
new mcbPlayerHand[MAXPLAYERS]
new mcbPlayerItem[MAXPLAYERS]
new const mcbTools[][]            = { "Cuchillo","Martillo","Pico","Bloque" }
new const mcbRMin[]            = { 1, 7, 10, 2}
new const mcbRMax[]            = { 3, 14, 40, 5}
new mcbPlayerAim[MAXPLAYERS]
new mcbPlayerBlq[MAXPLAYERS][64]
new mcbPlayerItems[MAXPLAYERS]
new mcbPlayer[MAXPLAYERS]
new mcbPlayerDelay[MAXPLAYERS]
new mcbPlayerBloks[MAXPLAYERS]
new mcbCubo[MAXBLOKS][2]
new mcbMenuOpen[MAXPLAYERS]
new mcbTarget[MAXPLAYERS]
new mcbPlaceBloks[MAXPLAYERS]
new Float:selectedBlok[3]

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    // agosto 2014
    
    register_cvar("mcb", "1")
    register_cvar("mcbhp", "1")
    register_cvar("mcbmax", "10")
    register_cvar("mcbprecio", "4")
    
    register_clcmd("say /mcb", "mcbMSG")
    register_clcmd("say /MCB", "mcbMSG")
    
    register_event("ResetHUD", "eventoStart", "b");
    
    register_think("func_mcb_cubo","ent_mcbCubos")
}

public plugin_precache()
{
    
    precache_model(mcbModelBloque0)
    
}

public eventoStart(id)
{
    set_task(5.0,"mcbMSG")
}

public client_putinserver( id )
{
    
    mcbPlayer[id]=1
    mcbPlayerBlq[id] = "Piedra"
    
    /* Menu MC Bloques */
    /* Use menu_display(id, mMCBloques, 0) to show the menu to an user. */
    new userMenu[64],menu[64]
    get_user_name(id,userMenu,63)
    format(menu, 63, "[MCB] Inventario de %s (%s)", userMenu,mcbTools[0])
    mMCBloques[id]        = menu_create(menu, "mh_MCBloques")
    mcbMCBloques[id]    = menu_makecallback("mcb_MCBloques")
    /* Menu End */
    
}

public client_PreThink(id)
{
    if (is_user_alive(id) && mcbMenuOpen[id] == 0 && mcbPlayerDelay[id] == 0)
    {
        
        if (get_user_button(id)==32)
        {
            
            mcbMenuOpen[id]=1
            menu_display(id, mMCBloques[id], 0)
            
        }
        
        new vOrigin[3], Float:fOrigin[3]        //vectores
        get_user_origin(id, vOrigin, 1)        //punto de mira (WEAPON AIM)
        IVecFVec(vOrigin, fOrigin)            //de integral a float
        
        new i_ent = 0, vTargetOrigin[3], Float:fTargetOrigin[3]    //entidad/vectores
        get_user_origin(id, vTargetOrigin, 3)        //punto objetivo (WEAPON TARGET)
        IVecFVec(vTargetOrigin, fTargetOrigin)            //de integral a float
        
        i_ent = find_ent_in_sphere(-1,fTargetOrigin,20.0)
        
        new player=id
        new Float:targetDist=vector_distance(fTargetOrigin,fOrigin)
        
        //if (get_user_button(player)!=0) client_print(id,print_chat,"%i",get_user_button(player))
        
        if (mcbPlaceBloks[id]==1 && targetDist<200 && get_user_button(player)==1 || get_user_button(player)==5)
        {
            //evitar que click izquierdo quite vida
            //entity_set_float(id,EV_FL_takedamage,1.0)
            new ret=crearBloque(mcbPlayerItem[id],id)
            set_hudmessage(255, 170, 0, -1.0, 0.87, 0, 6.0, 1.0)
            switch (ret)
            {
                case 0:
                show_hudmessage(id, "No hay espacio")
                case 1:
                show_hudmessage(id, "Bloque creado")
                case 2:
                show_hudmessage(id, "Has alcanzado el limite de bloques")
                case 3:
                show_hudmessage(id, "%s insuficiente",mcbBloks[mcbPlayerItem[id]])
                case 4:
                show_hudmessage(id, "Limite de Bloques del nivel")
                default:
                client_print(id,print_chat,"[MCB]Error")
            }
            mcbPlayerDelay[id]=1
            set_task(0.5,"mcbDelay",id)
        }
        
        if (is_valid_ent(i_ent) && i_ent!=player && targetDist<120 && targetDist>47 && mcbTarget[player]!=i_ent)
        {

            new h_Bloque[64]
            
            entity_get_string(i_ent,0,h_Bloque,63)
            
            new mat=13
            for (new i=0;i<sizeof(mcbEnts);i++)
            {
                if (equal(h_Bloque,mcbEnts[i]))
                {
                    mat=i
                }
            }
            
            if (mat==2||mat==7||mat==11)
            {
                new entMat=entity_get_int(i_ent,2)
                switch (entMat)
                {
                    case 2:
                        mcbPlayerAim[player] = MCBMETAL
                    case 1:
                        mcbPlayerAim[player] = MCBMADERA
                    case 6:
                        mcbPlayerAim[player] = MCBPARTES
                    case 0:
                        mcbPlayerAim[player] = MCBCRISTAL
                    case 3:
                        mcbPlayerAim[player] = MCBCARNE
                    case 4:
                        mcbPlayerAim[player] = MCBBASURA
                    case 5:
                        mcbPlayerAim[player] = MCBTECHO
                    case 7:
                        mcbPlayerAim[player] = MCBVIDRIO
                    case 8:
                        mcbPlayerAim[player] = MCBPIEDRA
                    default:
                        mcbPlayerAim[player] = MCBNO
                }
            } else
            {
                switch (mat)
                {
                    case 4,5,6,9,10:
                        mcbPlayerAim[player] = MCBMETAL
                    case 12:
                        mcbPlayerAim[player] = MCBMADERA
                    case 0,1,3,8:
                        mcbPlayerAim[player] = MCBPARTES
                    case 13:
                        mcbPlayerAim[player] = MCBPIEDRA
                    default:
                        mcbPlayerAim[player] = MCBNO
                }
            }
            mcbTarget[player]=i_ent
            new bloke[64]
            format(bloke, 63, mcbBloks[mcbPlayerAim[player]])
            mcbPlayerBlq[player]=bloke
            
            //client_print(player,print_chat,"target: %s",mcbPlayerBlq[player])
        } else if (mcbTarget[player]!=i_ent && i_ent!=player)
        {
            mcbTarget[player]=i_ent
            mcbPlayerAim[player]=0
            mcbPlayerBlq[player]="Piedra"
        }
        
        if (targetDist<48 && get_user_button(player)==2048 || get_user_button(player)==2052 && get_user_weapon(player)==29)
        {
            
            mcbPlayerDelay[id]    = 1
            mcbPlaceBloks[id]    = 0
            set_task(1.0,"mcbDelay",id)
            
        }
    }
}

public mcbDelay(id)
{
    
    mcbPlayerDelay[id]=0
    
    if (mcbPlaceBloks[id]==1) return
    if (mcbPlayerAim[id]==MCBNO)
    {
        client_print(id,print_chat,"[MCB] Entidad: %i %s",mcbTarget[id],mcbPlayerBlq[id])
        return
    }
    new player=id
    new iRe=mcbPlayerHand[id]
    if (mcbPlayerHand[id]>2) iRe=3
    new recursos=random_num(mcbRMin[iRe],mcbRMax[iRe])
    set_hudmessage(255, 170, 0, -1.0, 0.55, 0, 6.0, 1.0)
    show_hudmessage(id, "%s +%i",mcbPlayerBlq[player],recursos)
    
    for(new item=0;item <= mcbPlayerItems[player];item++)
    {
        new menuOpt[64]
        if (mcbPlayerInv[player][item][1] == 0)
        {
            client_print(id,print_chat, "[MCB]Hás conseguido %s!", mcbPlayerBlq[player])
            client_print(id,print_chat, "[MCB]Presioná E para abrir el menu")
            mcbPlayerInv[player][item][0] = mcbPlayerAim[player]
            mcbPlayerInv[player][item][1] = recursos
            mcbPlayerItems[player] += 1
            format(menuOpt, 63, "%s x %d", mcbPlayerBlq[player],mcbPlayerInv[player][item][1])
            menu_additem(mMCBloques[id], menuOpt, "ma_MCBloques", ADMIN_ALL, mcbMCBloques[id])
            return
            
        } else if (mcbPlayerAim[player] == mcbPlayerInv[player][item][0])
        {
            
            mcbPlayerInv[player][item][1] += recursos
            menuModif(player,item)
            return
            
        }
        
    }
}

public mcbMSG(id)
{
    if (mcbPlayer[id]==1)
    {
        mcbPlayer[id]=2
        client_print(id,print_chat, "[MCB]MINECRAFT BLOQUES BY ESTANTAYA")
        client_print(id,print_chat, "[MCB]Escribe en el chat /mcb")
        return
    }
    if (mcbPlayer[id]==2)
    {
        mcbPlayer[id]=3
        client_print(id,print_chat, "[MCB]Golpea las paredes con click derecho, usando el cuchillo")
    }
}

public mcbMenu(id)
{
    menu_display(id, mMCBloques[id], 0)
}

/* Menu MC Bloques */

public mh_MCBloques(id, menu, item) {
    //client_print(id,print_chat,"player id: %d menu:%d item:%d",id,menu,item)
    
    mcbMenuOpen[id]=0
    if (item>=0)
    {
        elejirBloque(item,id)
    } else
    {
        mcbPlaceBloks[id]=0
        mcbPlayerHand[id]=0
    }
    
    
    /* This event is called when someone presses a key on this menu */
}

public ma_MCBloques(id) {
    /* This event is called when an item was selected */
}

public mcb_MCBloques(id, menu, item) {
    /* This is the callback-event, here you can set items enabled or disabled. */
    /* If you want to enable an item, use: return ITEM_ENABLED */
    /* If you want to disable an item, use: return ITEM_DISABLED */
}

/* Funciones */
public elejirBloque(item,player)
{
    /*
    new ent=find_ent_by_owner(-1,"weapon_knife",player,0)
    entity_set_model(ent,mcbModelBloque0)
    */
    
    mcbPlaceBloks[player]=1
    mcbPlayerItem[player]=mcbPlayerInv[player][item][0]
    mcbPlayerHand[player]=3
    set_hudmessage(255, 170, 0, -1.0, 0.87, 0, 6.0, 10.0)
    show_hudmessage(player, "Planta %s con click derecho",mcbBloks[mcbPlayerItem[player]])
    
    new userMenu[64],menu[64]
    get_user_name(player,userMenu,63)
    format(menu, 63, "[MCB] Inventario de %s (Bloque de %s)", userMenu,mcbBloks[mcbPlayerItem[player]])
    menu_setprop(mMCBloques[player], MPROP_TITLE, menu)
}

public crearBloque(item,player)
{
    if (mcbPlayerBloks[player]>=get_cvar_num("mcbmax")) return 2
    if (mcbPlayerInv[player][item][1]<get_cvar_num("mcbprecio")) return 3
    if (mcbCubo[MAXBLOKS-1][BLOKID]!=0) return 4
    
    new i_ent
    new vTargetOrigin[3], Float:fTargetOrigin[3]    //vectores
    get_user_origin(player, vTargetOrigin, 3)    //punto objetivo (WEAPON TARGET)
    IVecFVec(vTargetOrigin, fTargetOrigin)        //de integral a float
    
    //client_print(player,print_chat,"x:%i y:%i z:%i",vTargetOrigin[0],vTargetOrigin[1],vTargetOrigin[2])
    
    new Float:fEnt[3]
    fEnt=fTargetOrigin
    fEnt[2]+=32
    
    i_ent = find_ent_in_sphere(-1,fTargetOrigin,20.0)
    
    new szEnt[64]
    entity_get_string(i_ent,0,szEnt,63)
    
    if (i_ent==0 || equal( szEnt, "func_mcb_cubo"))
    {
        
        if (i_ent!=0)
        {
            
            entity_get_vector(i_ent,EV_VEC_origin,selectedBlok)
            
            
            for (new eje=0;eje<=2;eje++)
            {
                if (fTargetOrigin[eje]>=selectedBlok[eje]+19 && fTargetOrigin[eje]<=selectedBlok[eje]+21)
                {
                    selectedBlok[eje]+=40
                    eje=3
                } else if (fTargetOrigin[eje]<=selectedBlok[eje]-19 && fTargetOrigin[eje]>=selectedBlok[eje]-21)
                {
                    selectedBlok[eje]-=40
                    eje=3
                }
            }
            
            if (find_ent_in_sphere(-1,selectedBlok,18.0)!=0) return 0
            
            fEnt=selectedBlok
        }
        
        mcbPlayerBloks[player]++
        mcbPlayerInv[player][item][1]-=get_cvar_num("mcbprecio")
        if (mcbPlayerInv[player][item][1]<1) mcbPlayerInv[player][item][1]=1
        
        menuModif(player,item)
        
        new mcbEnt = create_entity("info_target")
        
        new ent = blokFree()
        mcbCubo[ent][BLOKID]=mcbEnt
        mcbCubo[ent][BLOKOWNER]=player
        
        entity_set_string(mcbEnt, EV_SZ_classname,"func_mcb_cubo")
        entity_set_origin(mcbEnt, fEnt)
        
        entity_set_model(mcbEnt, mcbModelBloque0)
        entity_set_int(mcbEnt, EV_INT_rendermode, 1)
        entity_set_float(mcbEnt, EV_FL_renderamt, 255.0)
        //solido estatico 40x40
        new Float:maxs[3] = {20.0,20.0,20.0}
        new Float:mins[3] = {-20.0,-20.0,-20.0}
        entity_set_size(mcbEnt,mins,maxs)
        entity_set_int(mcbEnt, EV_INT_solid, 2)
        entity_set_int(mcbEnt, EV_INT_movetype, 6)
        //puede ser destruido y vida
        entity_set_float(mcbEnt,EV_FL_takedamage,1.0)
        //contiene recurso
        //entity_set_int(mcbEnt,2,8)
        
        new Float:fVida
        fVida+=get_cvar_num("mcbhp")
        entity_set_float(mcbEnt,EV_FL_health,fVida)
        
        entity_set_float(mcbEnt,EV_FL_nextthink,halflife_time() + 1.0)
        
        
    } else {
        return 0
    }
    return 1

}

blokFree()
{
    new free
    for (new i=0;i<MAXBLOKS;i++)
    {
        if (mcbCubo[i][BLOKID]==0)
        {
            free=i
            i=MAXBLOKS
        }
    }
    return free
}

menuModif(player,item)
{
    new menuOpt[64]
    format(menuOpt, 63, "%s x %d", mcbBloks[mcbPlayerInv[player][item][0]],mcbPlayerInv[player][item][1])
    menu_item_setname(mMCBloques[player],item,menuOpt)
}

public ent_mcbCubos(id)
{
    entity_set_float(id,EV_FL_nextthink,halflife_time() + 1.0)
    if (IsInWorld(id)==0)
    {
        //client_print(0,print_chat,"bloke %i no existe",id)
        for (new i=0;i<MAXBLOKS;i++)
        {
            if (mcbCubo[i][BLOKID]==id)
            {
                mcbCubo[i][BLOKID]=0
                mcbPlayerBloks[mcbCubo[i][BLOKOWNER]]--
                mcbCubo[i][BLOKOWNER]=0
                
                return
            }
        }
    }
}


Cosas por hacer:
  • falta limpiar el codigo ya que tiene muchas cosas inutiles y comentarios Lengua***
  • hacer que los cubos se pegen al plantar mas de 1 (que se agrupen)***
  • que los cubos no caigan hacia "la nada"***
  • crear mas cubos***
  • ofrecer la posibilidad de craftear 1 pico asi no tener que usar el cuchillo
  • poner cvars para configurar cuanto cuesta cada cubo***
    poner 1 cvar para activar desactivar el plug
  • cvar para eliminar todos los cubos***
  • limite de cubos por player***
    y limite de cubos en total***
  • guardar con vault los cubos para luego seguir construyendo)?***
    (no uso vault sino el include file.inc del amx)
  • ofrecer la descarga del model de cubo (7kb) y el plugin compilado y terminado***
    10/8 versión 1.0!
  • Conseguir que el cuchillo no rompa 1 cubo al plantarlo***
  • Cambiar el modelo del cuchillo por el bloque que se tiene seleccionado***
    11/8 versión 1.1 Gran sonrisa
  • Aplicar los skins que hay en el nuevo model de cubo***
  • Terminar de modificar el arma cuchillo
  • No plantar cubos al disparar un arma xD***
    15/8 versión 1.3 (la v1.2? nose Roflmao)
  • Obtener recursos de las entidades Breakable del nivel (no solo Cristal)***
  • Arreglado problemas multijugador***
  • Corregido problema de "Bloque ocupando espacio"***
  • Se puede plantar Cubos en cualquier lugar incluso dentro de buyzones y los cubos siguientes se van a pegar a los anteriores***
  • Detecta si hay cualquier player en el lugar donde se va a plantar un cubo para prevenir atascos***
  • Publicando los models y el .sma separados de ahora en mas***
    16/8 versión 1.3a
  • si rompes cubos o cosas con click derecho cerca de algo aparece el pico***
       
    16/8 versión 1.3b
  • Se puede obtener recursos de todo, inclusive golpeando players o rehenes carne, cristal de las ventanas, madera de las cajas de madera, ladrillos de las paredes, piedra del suelo etc...***
  • Algunos cubos tienen efectos por ejemplo la caja de carne spawnea un medikit***
       
  • Agregado Herobrine!***
  • Los cubos cambian su forma segun su vida.
  • Los cubos adoptan el angulo de la superficie donde fueron plantados.
  • Los cubos utilizan menos entidades.
  • Los cubos se plantan en la superficie que se mira y no con la mitad del cubo fuera de alcanze.***
  • Las cajas de metal ya no explotan***
    20/8 versión 1.3c
  • La cara frontal de los cubos apunta hacia el jugador al ser plantados
  • Los cubos se plantan en coordenadas multiplos de 40***
  • cvar para regalar items***
  • cvar para guardar los cubos***
  • los cubos se cargan al iniciar el nivel***
  • Crafting***
  • Crear un pack de modelos mas liviano
  • Permitir correr el plugin sin necesidad de modelos
    27/8 versión 1.4
***:echo


Archivos adjuntos Miniatura(s)
           

.sma   Descargar AMXX / mcbloquesV1.3c.sma (Tamaño: 22.8 KB / Descargas: 205)
.zip   modelsV1.3c.zip (Tamaño: 454.09 KB / Descargas: 36)
.zip   modelsV1.4.zip (Tamaño: 468.66 KB / Descargas: 93)
.sma   Descargar AMXX / mcbloquesV1.4.sma (Tamaño: 33.58 KB / Descargas: 281)
Responder
#2
Che bastante bien para empesar, te recomiendo antes que nada que dejes el .sma adjuntado al thread y no como un código suelto. Seguí así.
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#3
esta subiendo un nuevo video y ya puse la descarga del plug, a mi no me dio problemas en multiplayer pero solo lo probe con bots asi que nose con usuarios reales :S
tengo algunos problemas con el cuchillo y nose como cambiar los modelos de las armas con engine Triste

otro problema grave es que al llegar al maximo de cubos por player ya no me deja plantar cubos aunque rompa 1 que ya puse, sigue diciendo limite de bloques, se soluciona aumentando mcbmax= pero eso no tiene sentido pacman

este register_think("func_mcb_cubo","ent_mcbCubos") esta bien echo?
Código:
public ent_mcbCubos(id)
{
    entity_set_float(id,EV_FL_nextthink,halflife_time() + 1.0)
    if (IsInWorld(id)==0)
    {
        client_print(0,print_chat,"bloke %i no existe",id)
        for (new i=0;i<MAXBLOKS;i++)
        {
            if (mcbCubo[i][BLOKID]==id)
            {
                mcbCubo[i][BLOKID]=0
                mcbPlayerBloks[mcbCubo[i][BLOKOWNER]]--
                mcbCubo[i][BLOKOWNER]=0
                
                return
            }
        }
    }
}
Responder
#4
(10/08/2014, 12:19 PM)estantaya escribió: esta subiendo un nuevo video y ya puse la descarga del plug, a mi no me dio problemas en multiplayer pero solo lo probe con bots asi que nose con usuarios reales :S
tengo algunos problemas con el cuchillo y nose como cambiar los modelos de las armas con engine Triste

otro problema grave es que al llegar al maximo de cubos por player ya no me deja plantar cubos aunque rompa 1 que ya puse, sigue diciendo limite de bloques, se soluciona aumentando mcbmax= pero eso no tiene sentido pacman

este register_think("func_mcb_cubo","ent_mcbCubos") esta bien echo?
Código:
public ent_mcbCubos(id)
{
    entity_set_float(id,EV_FL_nextthink,halflife_time() + 1.0)
    if (IsInWorld(id)==0)
    {
        client_print(0,print_chat,"bloke %i no existe",id)
        for (new i=0;i<MAXBLOKS;i++)
        {
            if (mcbCubo[i][BLOKID]==id)
            {
                mcbCubo[i][BLOKID]=0
                mcbPlayerBloks[mcbCubo[i][BLOKOWNER]]--
                mcbCubo[i][BLOKOWNER]=0
                
                return
            }
        }
    }
}

Remueve la entidad del bloque.
Responder
#5
Para cambiar el model de un arma, te recomiendo usar "Ham_Item_Deploy". Fijate tutos para el funcionamiento.

Para usar "engine" es:
Código PHP:
entity_set_string(idEV_SZ_viewmodelV_Model// Este es el model de 1era persona;
entity_set_string(idEV_SZ_weaponmodelP_Model// Este es el model de 3era persona; 
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#6
(10/08/2014, 03:49 PM)Federicomb escribió: Para cambiar el model de un arma, te recomiendo usar "Ham_Item_Deploy". Fijate tutos para el funcionamiento.

Para usar "engine" es:
Código PHP:
entity_set_string(idEV_SZ_viewmodelV_Model// Este es el model de 1era persona;
entity_set_string(idEV_SZ_weaponmodelP_Model// Este es el model de 3era persona; 

:o eso me sirve EV_SZ_viewmodel xd si hubiera leido eso antes, andube buscando algo asi en engine se me paso por alto Lengua

y lo de revomer la entidad del bloque nose como se hace Lengua
pense que se eliminaba solo cuando se destruia
Responder
#7
(10/08/2014, 09:33 PM)estantaya escribió:
(10/08/2014, 03:49 PM)Federicomb escribió: Para cambiar el model de un arma, te recomiendo usar "Ham_Item_Deploy". Fijate tutos para el funcionamiento.

Para usar "engine" es:
Código PHP:
entity_set_string(idEV_SZ_viewmodelV_Model// Este es el model de 1era persona;
entity_set_string(idEV_SZ_weaponmodelP_Model// Este es el model de 3era persona; 

:o eso me sirve EV_SZ_viewmodel xd si hubiera leido eso antes, andube buscando algo asi en engine se me paso por alto Lengua

y lo de revomer la entidad del bloque nose como se hace Lengua
pense que se eliminaba solo cuando se destruia

Si le das takedamage y "mueren", entonces sí.
Responder
#8
me has dado una idea :3 Excitedeyes
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#9
[Imagen: attachment.php?aid=1031]
versión 1.1
agregue una nueva función para que al golpear los cubos no se rompan no es lo mejor pero funciono por ahora hasta que lo cambie
Código:
bloquesDmg(player,Float:dmg)
{
    for (new i=0;i<MAXBLOKS;i++)
    {
        if (mcbCubo[i][BLOKOWNER]==player && is_valid_ent(mcbCubo[i][BLOKID]))
        {
            entity_set_float(mcbCubo[i][BLOKID],EV_FL_takedamage,dmg)
        }
    }
}


otra cosa alguien sabe que son estas cosas:
Código:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Header size:           1340 bytes
Code size:            16964 bytes
Data size:            24952 bytes
Stack/heap size:      16384 bytes; max. usage is unknown, due to recursion
Total requirements:   59640 bytes
Done.

eso es lo que me sale a mi, note que en plugin mas grandes aumenta el Total requirements: tiene algo que ver con las variables y arrays que uso? porque cuando toco los arrays veo que esa cosa aumenta o baja pacman como puedo optimizar algo si es que se trata de tamaño de arrays pacman lei algo pero entiendo a medias porque esta en ingles Lengua
Responder
#10
seria los bytes que gastaria de ram... supongo pacman
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#11
entity_set_float(mcbCubo[i][BLOKID],EV_FL_takedamage, 0.0)

Sólo al momento de crear el bloque, con eso ya no tendría que destruirse.
Responder
#12
(11/08/2014, 03:46 PM)kikizon2 escribió: seria los bytes que gastaria de ram... supongo pacman
Y cómo se podría saber cuanta ram se usará en tiempo de ejecución luego de compilarlo?? Eso es imposible.
[Imagen: paypalqr.png]
Responder
#13
(15/08/2014, 02:47 PM)Neeeeeeeeeel.- escribió:
(11/08/2014, 03:46 PM)kikizon2 escribió: seria los bytes que gastaria de ram... supongo pacman
Y cómo se podría saber cuanta ram se usará en tiempo de ejecución luego de compilarlo?? Eso es imposible.

Entonces que seria? Whatever
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#14
(15/08/2014, 03:05 PM)kikizon2 escribió:
(15/08/2014, 02:47 PM)Neeeeeeeeeel.- escribió:
(11/08/2014, 03:46 PM)kikizon2 escribió: seria los bytes que gastaria de ram... supongo pacman
Y cómo se podría saber cuanta ram se usará en tiempo de ejecución luego de compilarlo?? Eso es imposible.

Entonces que seria? Whatever
Son los bytes que ocupan las distintas secciónes del código, y el stack/heap size es la cantidad máxima de RAM que tiene permitido usar el plugin, se puede modificar con #pragma dynamic
[Imagen: paypalqr.png]
Responder
#15
http://youtu.be/eTJloW7DbHo
subo un nuevo video con la 1.3
arregle muchas cosas y ahora hay mas tipos de bloques
hay 1 utimo problema, no me detecta el material de los Breakable solo dice "Cristal" que es el material por defecto "0"

interesante lo del #pragma dynamic Gran sonrisa aunque por las dudas no toco eso Whatever
Responder
#16
Este plugin es bastante interesante y estaria bien para el basebuilder Gran sonrisa

Buen plugin estantaya
[Imagen: 76561198066347799.png]
Responder
#17
(15/08/2014, 08:34 PM)Side^^ escribió: Este plugin es bastante interesante y estaria bien para el basebuilder Gran sonrisa

Buen plugin estantaya

gracias Cutecry que es el base builder no quiero googlear nada Lengua explicamelo vos xd

otra cosa: me pasa solo a mi que no puedo ver el video? Lol en lugar del video solo veo 1 espacio grande en el post
Responder
#18
(15/08/2014, 11:27 PM)estantaya escribió: otra cosa: me pasa solo a mi que no puedo ver el video? Lol en lugar del video solo veo 1 espacio grande en el post

Es un problema con el certificado SSL, dejá el link al video por el momento.
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#19
Todo lindo pero el plugin lo hiciste vos? Todo desde 0?
(08/10/2014, 10:50 PM)meTaLiCroSS escribió: Siento que en este foro viven en una competencia, en vez de preocuparse del contenido se preocupan de la gente, nisiquiera de eso, de sus actitudes por muy buenas o malas que sean, que clase de convivencia se puede llegar con aquello? Siempre la misma mierda en todos lados, progresen de una vez

**************************************************

Como hacer una Base de Datos para Sistema de Cuentas by r0ma
Responder
#20
(16/08/2014, 10:26 AM)Store.gh escribió: Todo lindo pero el plugin lo hiciste vos? Todo desde 0?

Si desde 0, lo mas complejo fue lo de crear objetos solidos pero no es la primera vez que lo hago, en otro plugin que aun no publico lo practique, tome como ejemplos unos post en ingles donde explicaba como spawnear breakables, algunos de esos post tambien estaban en ruso ._. pero el codigo en ingles, despues cosas como for while y loops ya lo conosco porque lo aprendi programando en javascript de html y flash, lo de coordenadas y vectores lo aprendi de crear juegos con el unity 3d y entidad 3d aunque no termine nada mas que niveles sin sentido alguno pacman por ultimo el manejo de arrays lo aprendi abriendo los .sma con el amx, sobre todo estos plugs: amx gore ultimate,
ultimate_sounds.amxx,advanced_weapon_tracers.amx,grenade_trail.amxx
los modelos aprendi a hacerlos con milkshape ya hace mucho cuando queria hacer skins para el cs
mierda tengo un pequeño curriculum
Responder
#21
(16/08/2014, 02:11 PM)estantaya escribió:
(16/08/2014, 10:26 AM)Store.gh escribió: Todo lindo pero el plugin lo hiciste vos? Todo desde 0?

Si desde 0, lo mas complejo fue lo de crear objetos solidos pero no es la primera vez que lo hago, en otro plugin que aun no publico lo practique, tome como ejemplos unos post en ingles donde explicaba como spawnear breakables, algunos de esos post tambien estaban en ruso ._. pero el codigo en ingles, despues cosas como for while y loops ya lo conosco porque lo aprendi programando en javascript de html y flash, lo de coordenadas y vectores lo aprendi de crear juegos con el unity 3d y entidad 3d aunque no termine nada mas que niveles sin sentido alguno pacman por ultimo el manejo de arrays lo aprendi abriendo los .sma con el amx, sobre todo estos plugs: amx gore ultimate,
ultimate_sounds.amxx,advanced_weapon_tracers.amx,grenade_trail.amxx
los modelos aprendi a hacerlos con milkshape ya hace mucho cuando queria hacer skins para el cs
mierda tengo un pequeño curriculum

Me sorprendes Sonrisa
(08/10/2014, 10:50 PM)meTaLiCroSS escribió: Siento que en este foro viven en una competencia, en vez de preocuparse del contenido se preocupan de la gente, nisiquiera de eso, de sus actitudes por muy buenas o malas que sean, que clase de convivencia se puede llegar con aquello? Siempre la misma mierda en todos lados, progresen de una vez

**************************************************

Como hacer una Base de Datos para Sistema de Cuentas by r0ma
Responder
#22
(16/08/2014, 02:11 PM)estantaya escribió:
(16/08/2014, 10:26 AM)Store.gh escribió: Todo lindo pero el plugin lo hiciste vos? Todo desde 0?

Si desde 0, lo mas complejo fue lo de crear objetos solidos pero no es la primera vez que lo hago, en otro plugin que aun no publico lo practique, tome como ejemplos unos post en ingles donde explicaba como spawnear breakables, algunos de esos post tambien estaban en ruso ._. pero el codigo en ingles, despues cosas como for while y loops ya lo conosco porque lo aprendi programando en javascript de html y flash, lo de coordenadas y vectores lo aprendi de crear juegos con el unity 3d y entidad 3d aunque no termine nada mas que niveles sin sentido alguno pacman por ultimo el manejo de arrays lo aprendi abriendo los .sma con el amx, sobre todo estos plugs: amx gore ultimate,
ultimate_sounds.amxx,advanced_weapon_tracers.amx,grenade_trail.amxx
los modelos aprendi a hacerlos con milkshape ya hace mucho cuando queria hacer skins para el cs
mierda tengo un pequeño curriculum

Rainbow
Ojalá todos fueran como tú e.e
Y no unos flojos que quieren todo en bandeja, hasta tutorial para limpiarse después de cagar quieren -.-
Responder
#23
q todo el mundo sea un virgo sin vida no por dios no)?
RoflmaoRoflmao

edit: me volvio el lagg asi que volvi, estoy haciendo un pico con texturas chrome para el metal y madera copada)?
Whatdone https://amxmodx-es.com/Thread-Desvirtue-...n=lastpost
MCBloques [v1.5]
  • reemplazar models con sprites
  • guardado y carga automatico
  • utilizar mysql
  • mejorar el crafting
  • +info
Responder
#24
No se puede descargar el plugin D:
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#25
Che, por lo visto ese map de nuke, esta bueno para el plugin, tambien estaria bueno que dejes un pack de mapas, no tantos, sino 4 o 5 y que se juegen solamente esos.

Tambien , si es que sabes podrias hacer un mapa especializado para esto, que sea lo mas grande posible y que no tenga nada, por ahi models de arboles, nieve, y que haya que buscar los recursos en alguna parte del map.
Lo que me pregunto es , con 40 bloques por jugador es poco Triste creo... la idea es que puedan como 200 y que solamente para jugar a este mod, se requiera el maximo de 8 players o 10 no se , porque sino se cagaria en trabado (lag) el mod.

Son ideas que serian geniales, yo no juego al minecraft , pero ahora esta lleno de individuos que lo juegan y imaginar que esta en el cs, chauu, viciados por todos lados

PD: Los bloques se guardan?
(08/10/2014, 10:50 PM)meTaLiCroSS escribió: Siento que en este foro viven en una competencia, en vez de preocuparse del contenido se preocupan de la gente, nisiquiera de eso, de sus actitudes por muy buenas o malas que sean, que clase de convivencia se puede llegar con aquello? Siempre la misma mierda en todos lados, progresen de una vez

**************************************************

Como hacer una Base de Datos para Sistema de Cuentas by r0ma
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)