Modificare plugin

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
ConfussioN
Membru, skill 0
Membru, skill 0
Posts: 42
Joined: 08 Oct 2020, 17:16
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: confussionn
Fond eXtream: 0
Discord: abece#3198

15 Nov 2022, 22:13

L E V I N wrote:
14 Nov 2022, 00:46
faza e că e prea rapid eventu apelat când moare, fiind și respawn

Code: Select all

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

#pragma tabsize 0

#define MAX_PLAYERS 32

enum WeaponsData
{
    WEAPONS[32],
    NUM,
    CSW
}

new g_eWeapons[ MAX_PLAYERS + 1 ][WeaponsData];

public plugin_init( ) 
{
    register_plugin( "Save Weapons On Death", "1.0a", "maqi" );
    
    RegisterHam( Ham_Killed, "player", "Event_HamKilledPre", 0 );
    RegisterHam( Ham_Spawn, "player", "Event_PlayerSpawnPost", 1 );
}

public client_connect( iIndex )
{
    g_eWeapons[iIndex][NUM] = 0;
}

public Event_HamKilledPre( iIndex )
{
    if((!is_user_bot(iIndex)||!is_user_hltv(iIndex))&&is_user_connected(iIndex))
    {
	    static iWeapons[MAX_PLAYERS];get_user_weapons( iIndex, iWeapons, g_eWeapons[iIndex][NUM] );
	    g_eWeapons[iIndex][WEAPONS] = iWeapons;

        if(evo_get_player_active_slot(iIndex)==1||evo_get_player_active_slot(iIndex)==2)
        {
            g_eWeapons[iIndex][CSW] = get_user_weapon(iIndex);
        }
	}
}

public Event_PlayerSpawnPost( iIndex )
{
    if(!(is_user_bot(iIndex)||!is_user_hltv(iIndex)))
    {
	    static sWeapon[MAX_PLAYERS];
	    for( new i = 0; i < g_eWeapons[iIndex][NUM]; i++ )
	    {
	        get_weaponname( g_eWeapons[iIndex][WEAPONS][i], sWeapon, charsmax(sWeapon) );
	        give_item( iIndex, sWeapon );
	    }
	    g_eWeapons[iIndex][NUM] = 0;

	    if(user_has_weapon(iIndex, g_eWeapons[iIndex][CSW]))
	    {
	        static weap_name[32];get_weaponname(g_eWeapons[iIndex][CSW], weap_name, charsmax(weap_name))
	        engclient_cmd(iIndex, weap_name)
	    }
	}
}

stock evo_get_player_active_slot(const id)
{
    static iActiveItem; iActiveItem = get_pdata_cbase(id, 373, 5)
    return ( ( pev_valid(iActiveItem)&&iActiveItem > 0 ) ? ExecuteHam(Ham_Item_ItemSlot, iActiveItem) : 0 )
}
Salut. Am testat, iar acum nu mai merge deloc, ai doar lama in mana...
RoyalServer
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

15 Nov 2022, 22:52

singura soluție e să mărești timpu de respawn
oricum e aiurea totu, pe respawn e meniu de arme, n are cum să meargă plg ăsta

Code: Select all

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

#pragma tabsize 0

#define OFFSET_LASTPRIM 368
#define OFFSET_LASTSEC 369
#define fm_lastprimary(%1) get_pdata_cbase(id, OFFSET_LASTPRIM)
#define fm_lastsecondry(%1) get_pdata_cbase(id, OFFSET_LASTSEC)

enum _:WeaponsData
{
	PRIM_ENT,
	SEC_ENT
}
new g_eWeapons[ 33 ][WeaponsData];

public plugin_init( ) 
{
    RegisterHam( Ham_Spawn, "player", "Event_PlayerSpawnPost", 1 );
}

public client_connect( id )
{
    g_eWeapons[id][PRIM_ENT] = g_eWeapons[id][SEC_ENT] = 0;
}

public client_death(killer,victim,wpnindex,hitplace,TK)
{
    if((!is_user_bot(victim)||!is_user_hltv(victim))&&is_user_connected(victim))
    {
        if(evo_get_player_active_slot(victim)==1)
        {
            g_eWeapons[victim][PRIM_ENT] = fm_lastprimary(victim)
        }
        if(evo_get_player_active_slot(victim)==2)
        {
        	g_eWeapons[victim][SEC_ENT] = fm_lastsecondry(victim)
        }
	}
}

public Event_PlayerSpawnPost( id )
{
    if((!is_user_bot(id)||!is_user_hltv(id)))
    {
	    if(pev_valid(g_eWeapons[id][PRIM_ENT]))
	    {
	    	give_item( id, g_eWeapons[id][PRIM_ENT] );
	    	engclient_cmd(id, g_eWeapons[id][PRIM_ENT])
	    }
	    if(pev_valid(g_eWeapons[id][SEC_ENT]))
	    {
	    	give_item( id, g_eWeapons[id][SEC_ENT] );
	    	engclient_cmd(id, g_eWeapons[id][SEC_ENT])
	    }
	}
}

stock evo_get_player_active_slot(const id)
{
    static iActiveItem; iActiveItem = get_pdata_cbase(id, 373, 5)
    return ( ( pev_valid(iActiveItem)&&iActiveItem > 0 ) ? ExecuteHam(Ham_Item_ItemSlot, iActiveItem) : 0 )
}
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
ConfussioN
Membru, skill 0
Membru, skill 0
Posts: 42
Joined: 08 Oct 2020, 17:16
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: confussionn
Fond eXtream: 0
Discord: abece#3198

16 Nov 2022, 00:32

L E V I N wrote:
15 Nov 2022, 22:52
singura soluție e să mărești timpu de respawn
oricum e aiurea totu, pe respawn e meniu de arme, n are cum să meargă plg ăsta

Code: Select all

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

#pragma tabsize 0

#define OFFSET_LASTPRIM 368
#define OFFSET_LASTSEC 369
#define fm_lastprimary(%1) get_pdata_cbase(id, OFFSET_LASTPRIM)
#define fm_lastsecondry(%1) get_pdata_cbase(id, OFFSET_LASTSEC)

enum _:WeaponsData
{
	PRIM_ENT,
	SEC_ENT
}
new g_eWeapons[ 33 ][WeaponsData];

public plugin_init( ) 
{
    RegisterHam( Ham_Spawn, "player", "Event_PlayerSpawnPost", 1 );
}

public client_connect( id )
{
    g_eWeapons[id][PRIM_ENT] = g_eWeapons[id][SEC_ENT] = 0;
}

public client_death(killer,victim,wpnindex,hitplace,TK)
{
    if((!is_user_bot(victim)||!is_user_hltv(victim))&&is_user_connected(victim))
    {
        if(evo_get_player_active_slot(victim)==1)
        {
            g_eWeapons[victim][PRIM_ENT] = fm_lastprimary(victim)
        }
        if(evo_get_player_active_slot(victim)==2)
        {
        	g_eWeapons[victim][SEC_ENT] = fm_lastsecondry(victim)
        }
	}
}

public Event_PlayerSpawnPost( id )
{
    if((!is_user_bot(id)||!is_user_hltv(id)))
    {
	    if(pev_valid(g_eWeapons[id][PRIM_ENT]))
	    {
	    	give_item( id, g_eWeapons[id][PRIM_ENT] );
	    	engclient_cmd(id, g_eWeapons[id][PRIM_ENT])
	    }
	    if(pev_valid(g_eWeapons[id][SEC_ENT]))
	    {
	    	give_item( id, g_eWeapons[id][SEC_ENT] );
	    	engclient_cmd(id, g_eWeapons[id][SEC_ENT])
	    }
	}
}

stock evo_get_player_active_slot(const id)
{
    static iActiveItem; iActiveItem = get_pdata_cbase(id, 373, 5)
    return ( ( pev_valid(iActiveItem)&&iActiveItem > 0 ) ? ExecuteHam(Ham_Item_ItemSlot, iActiveItem) : 0 )
}
Tot nu merge... Uite un plugin facut de cineva, dar la un moment dat imi da o eroare in consola de tipul "get_weaponname" sau ceva de genul. Poate reusesti sa-l "refaci" pe asta ca sa nu mai dea eroare.

Code: Select all

#include <amxmodx>
#include <hamsandwich>
#include <fun>

#define MAX_PLAYERS 32

enum WeaponsData
{
    	WEAPONS[32],
    	NUM,
	WEAPONID_HANDS
}

new g_eWeapons[ MAX_PLAYERS + 1 ][WeaponsData]

public plugin_init( ) 
{
    	register_plugin( "Save Weapons On Death", "1.0a", "maqi" )
    
    	RegisterHam( Ham_Killed, "player", "Event_HamKilledPre", 0 )
    	RegisterHam( Ham_Spawn, "player", "Event_PlayerSpawnPost", 1 )
}

public client_connect( iIndex )
{
    	g_eWeapons[iIndex][NUM] = 0
	g_eWeapons[iIndex][WEAPONID_HANDS] = 0
}

public Event_HamKilledPre( iIndex )
{
	new iWeapons[32]
	get_user_weapons( iIndex, iWeapons, g_eWeapons[iIndex][NUM] )

	g_eWeapons[iIndex][WEAPONS] = iWeapons
	g_eWeapons[iIndex][WEAPONID_HANDS] = get_user_weapon(iIndex)
	return HAM_IGNORED;
}

public Event_PlayerSpawnPost( iIndex )
{
	if(!is_user_alive(iIndex))
		return

	new sWeapon[32]
    	for( new i = 0; i < g_eWeapons[iIndex][NUM]; i++ )
    	{
        	get_weaponname( g_eWeapons[iIndex][WEAPONS][i], sWeapon, charsmax(sWeapon) )
        	give_item( iIndex, sWeapon )
    	}
    	set_task(0.1, "deployWeapon", iIndex)
    	g_eWeapons[iIndex][NUM] = 0
}

public deployWeapon(id)
{
	new szWeaponName[32]
	get_weaponname(g_eWeapons[id][WEAPONID_HANDS], szWeaponName, charsmax(szWeaponName))
	client_cmd(id, szWeaponName)

	g_eWeapons[id][WEAPONID_HANDS] = 0
}
User avatar
ConfussioN
Membru, skill 0
Membru, skill 0
Posts: 42
Joined: 08 Oct 2020, 17:16
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: confussionn
Fond eXtream: 0
Discord: abece#3198

16 Nov 2022, 00:34

Uite aici se linia exacta unde si ce scrie.

Code: Select all

L 11/16/2022 - 00:33:44: [AMXX] Displaying debug trace (plugin "test.amxx", version "1.0a")
L 11/16/2022 - 00:33:44: [AMXX] Run time error 10: native error (native "get_weaponname")
L 11/16/2022 - 00:33:44: [AMXX]    [0] test.sma::deployWeapon (line 58)
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 4 guests