Han ocurrido los siguientes errores:
Warning [2] Undefined variable $unreadreports - Line: 119 - File: global.php(961) : eval()'d code PHP 8.1.27 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/global.php(961) : eval()'d code 119 errorHandler->error_callback
/global.php 961 eval
/printthread.php 16 require_once



MxEMexico
[ APORTE ] Scout Revolution - Versión para impresión

+- MxEMexico (https://www.mxemexico.com)
+-- Foro: Extras (https://www.mxemexico.com/forumdisplay.php?fid=162)
+--- Foro: Pawn/Scripting. (https://www.mxemexico.com/forumdisplay.php?fid=100)
+--- Tema: [ APORTE ] Scout Revolution (/showthread.php?tid=1139)



[ APORTE ] Scout Revolution - Sky^^ - 07-28-2017

Les dejo este código que armé hace bastante, es una Scout mejorada, dispara mas rápido, al atacar crea un efecto droga en la victima y lanza un rayo láser en cada disparo, la velocidad de disparo se cambia desde aquí:

Código PHP:
gCvarVelocidadDisparo register_cvar("wd_velocidad_disparo""0.1"); 

Los colores del rayo láser se configuran desde aquí:
Código PHP:
const LaserWeapon 0;
const 
LaserWeapon1 255;
const 
LaserWeapon2 255
Son colores RGB.

Si mal no recuerdo el efecto droga funcionaba algunas veces, tal vez mas tarde mejore un poco el código y arreglo sus problemas ^^

Código:
Código PHP:
/* ===========================================================================​================ */

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

new const RegisterPlugin[][] = { "Weapon Drug""1.0""Skylar" };

/* ===========================================================================​================ */

#define weapon_drug "weapon_scout"
#define CSW_DRUG CSW_SCOUT

new boolgWeaponDrug[33];
new 
Trie:gClassSprite;
new 
gLaser;
new 
gCvarVelocidadDisparo;
new const 
gModelWeapon[] = "models/WeaponDrug/vWeaponDrug.mdl";

const 
LaserWeapon 0;
const 
LaserWeapon1 255;
const 
LaserWeapon2 255;

public 
plugin_precache()
{
 
   gClassSprite TrieCreate();
 
   
    TrieSetCell
(gClassSprite"worldspawn"1);
 
   TrieSetCell(gClassSprite"player"1);
 
   
    precache_model
(gModelWeapon);
 
   gLaser engfunc(EngFunc_PrecacheModel"sprites/laserbeam.spr");
}

public 
plugin_init()
{
 
   register_plugin(RegisterPlugin[0], RegisterPlugin[1], RegisterPlugin[2]);
 
   
    register_concmd
("get_drug""SetDrug");
 
   
    register_event
("HLTV""event_RoundStart""a""1=0""2=0");
 
   
    RegisterHam
(Ham_TakeDamage"player""ham_TakeDamage");
 
   RegisterHam(Ham_Weapon_PrimaryAttack"weapon_scout""ham_PrimaryAttack"1);
 
   RegisterHam(Ham_TraceAttack"worldspawn""ham_TraceAttack"true);
 
   RegisterHam(Ham_TraceAttack"player""ham_TraceAttack"true);
 
   RegisterHam(Ham_Item_Deployweapon_drug"ham_Item_Deploy"true);
 
   
    gCvarVelocidadDisparo 
register_cvar("wd_velocidad_disparo""0.1");
}

public 
client_putinserver(idgWeaponDrug[id] = false;
public 
client_disconnect(idgWeaponDrug[id] = false;

public 
SetDrug(id)
{
 
   if (!is_user_alive(id)) return;
 
   
    gWeaponDrug
[id] = true;
 
   give_item(idweapon_drug);
 
   cs_set_user_bpammo(idCSW_DRUG90);
}

public 
event_RoundStart()
{
 
   for(new id id <= get_maxplayers() ; id++)
 
   {
 
       if (!is_user_connected(id)) continue;
 
       
        gWeaponDrug
[id] = false;
 
   }
       

public ham_TakeDamage(victiminflictorattackerFloat:damagedamagebits)
{
 
   if (attacker == victim || !is_user_connected(attacker)) return;
 
   if (cs_get_user_team(attacker) == cs_get_user_team(victim)) return;
 
   
    if 
(gWeaponDrug[attacker])
 
       SetEffectDrug(victim);
}

public 
ham_PrimaryAttack(DrugWeapon)
{
 
   new id get_pdata_cbase(DrugWeapon414);
 
   
    if 
(!is_user_alive(id)) return HAM_IGNORED;
 
   
    if 
(gWeaponDrug[id])
 
   {
 
       static Float:flRate;
 
       flRate get_pcvar_float(gCvarVelocidadDisparo);
 
       
        set_pdata_float
(DrugWeapon46flRate4)
 
       set_pdata_float(DrugWeapon47flRate4);
 
       set_pdata_float(DrugWeapon48flRate4);
 
   }
 
   
    return HAM_IGNORED
;
}

public 
ham_TraceAttack(victimattackerFloat:damageFloat:direction[3], tracehandledamage_type)
{
 
   new gWeapon get_user_weapon(attacker);
 
   new Float:vecEndPos[3];
 
   get_tr2(tracehandleTR_vecEndPosvecEndPos);
 
   
    if 
(gWeapon == CSW_DRUG && gWeaponDrug[attacker])
 
   {
 
       engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYvecEndPos0);
 
       write_byte(TE_BEAMENTPOINT);
 
       engfunc(EngFunc_WriteCoordvecEndPos[0]);
 
       engfunc(EngFunc_WriteCoordvecEndPos[1]);
 
       engfunc(EngFunc_WriteCoordvecEndPos[2]);
 
       write_short(gLaser);
 
       write_byte(0);
 
       write_byte(0);
 
       write_byte(1);
 
       write_byte(10);
 
       write_byte(0);
 
       write_byte(LaserWeapon);
 
       write_byte(LaserWeapon1);
 
       write_byte(LaserWeapon2);
 
       write_byte(128);
 
       write_byte(0);
 
       message_end();
 
   }
 
   
    return HAM_HANDLED
;
}

public 
ham_Item_Deploy(Weapon)
{
 
   static gOwnergOwner get_weapon_ent_owner(Weapon);
 
   
    if 
(!pev_valid(gOwner) || !is_user_alive(gOwner)) return;
 
   
    static gWeaponD
gWeaponDcs_get_weapon_id(Weapon);
 
   
    if 
(gWeaponD == CSW_DRUG && gWeaponDrug[gOwner])
 
       set_pev(gOwnerpev_viewmodel2gModelWeapon);
 
   else if (gWeaponD == CSW_DRUG || !gWeaponDrug[gOwner])
 
       return;
}

public 
SetEffectDrug(id)
{
 
   new gWeaponD read_data(2);
 
   
    if 
(gWeaponD == CSW_DRUG && gWeaponDrug[id])
 
   {
 
       message_begin(MSG_ONEget_user_msgid("ScreenFade"), _id);
 
       write_short((1<<12));
 
       write_short(0);
 
       write_short(0x0000);
 
       write_byte(0);
 
       write_byte(0);
 
       write_byte(180); 
 
       write_byte(200);
 
       message_end();
 
           
        new Float
:fVec[3]
 
       fVec[0] = random_float(50.0150.0);
 
       fVec[1] = random_float(50.0150.0);
 
       fVec[2] = random_float(50.0150.0);
 
           
        set_pev
(idpev_punchanglefVec);
 
   }
}

stock get_weapon_ent_ownerent )
{
 
   if (~pev_valid(ent) & 2) return -1;
 
   
    return get_pdata_cbase
(ent414);


El model no lo tengo, así que lo cambian ustedes v:


RE: [ APORTE ] Scout Revolution - Fury - 07-28-2017

Buen aporte prro
+1


RE: [ APORTE ] Scout Revolution - Sky^^ - 07-28-2017

(07-28-2017, 05:09 PM)Fury escribió: Buen aporte prro
+1

Gracias bb


RE: [ APORTE ] Scout Revolution - Toreto :v - 07-28-2017

(07-28-2017, 05:38 PM)lelelelelelelelele °Ushio-Z escribió: :foreveralone: Me disparo con su rasho laser  :dafuq:  :roflmao: :roflmao:



RE: [ APORTE ] Scout Revolution - Sky^^ - 07-28-2017

k (?)


RE: [ APORTE ] Scout Revolution - ChrstopH - 07-29-2017

deberías sacar una versión zp o algo así, no le veo mucho sentido que sea solo así por cmd,.

Código PHP:
else if (gWeaponD == CSW_DRUG || !gWeaponDrug[gOwner])
        return; 

khé?


aparte el r g b sacalo en cvar no todos pueden tocar el código.
podrías cachear getplayers y el screen al comenzar el plugin.

en caso de sacar versión item mandale false al morir


RE: [ APORTE ] Scout Revolution - Sky^^ - 07-30-2017

(07-29-2017, 02:32 AM)ChrstopH escribió: deberías sacar una versión zp o algo así, no le veo mucho sentido que sea solo así por cmd,.

Código PHP:
else if (gWeaponD == CSW_DRUG || !gWeaponDrug[gOwner])
        return; 

khé?


aparte el r g b sacalo en cvar no todos pueden tocar el código.
podrías cachear getplayers y el screen al comenzar el plugin.

en caso de sacar versión item mandale false al morir

Es bastante viejo el plugin, creo que fue a principios de 2016 o 2015 cuando lo hice, tu me ayudabas a testearlo v:

Se entiende la parte del if, si tiene la scout y la variable del arma está activa tendrá el model, pero si tiene el arma y no la variable activa no tendrá el model xd