AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [Help] Editing deathbones plugin (https://forums.alliedmods.net/showthread.php?t=82193)

AcidoX 12-18-2008 18:57

[Help] Editing deathbones plugin
 
1 Attachment(s)
Hi all, i tried to port the 'deathbones' plugin from engine, but there are some errors. Please someone help me port it. Thnx in advance...

L// 12-18-2008 21:54

Re: [Help] Editing deathbones plugin
 
1 Attachment(s)
Only fixed

SchlumPF* 12-19-2008 03:25

Re: [Help] Editing deathbones plugin
 
PHP Code:

#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#define PLUGIN "DeathBones"
#define VERSION "1.1.0"
#define AUTHOR "mogel"
#define BONE_ALPHA_TASK_BASIS 1000
new pcv_deathmatch // Deathmatch-Support
new pcv_bonestime // anzeigen der Bones
 
public plugin_init() {
 
register_plugin(PLUGINVERSIONAUTHOR)
 
register_message(get_user_msgid("DeathMsg"), "Event_Death")
 
register_event("HLTV""Event_FreezeTime""a""1=0""2=0")
 
 
register_cvar("DeathBones"VERSIONFCVAR_SERVER FCVAR_SPONLY FCVAR_UNLOGGED)
 
 
pcv_deathmatch register_cvar("db_deathmatch""0"// per default kein DM-Support
 
pcv_bonestime register_cvar("db_bonestime""30.0"// 30 Sekunden
}
public 
plugin_precache() {
 
precache_model("models/skeleton.mdl")
}
public 
Event_FreezeTime() {
 new 
players[32], count
 get_players
(playerscount"h")
 for(new 
0counti++)
 {
  new 
player players[i]
  
  
// Render zurück setzen
  
set_pev(playerpev_renderfxkRenderFxNone)
  
set_pev(playerpev_rendercolor255,255,255)
  
set_pev(playerpev_rendermodekRenderNormal)
  
set_pev(playerpev_renderamt0.0)
 }
 
 
fm_remove_entity_name("deathbones")
}
public 
Event_Death() {
 new 
player get_msg_arg_int(2)
 
 new 
Float:bones[3]
 new 
Float:angle[3]
 
 
set_pev(playerpev_originbones)
 
set_pev(playerpev_anglesangle)
 
bones[2] -= 32.0 // gleich nach unten setzen
 
 // Bones erstellen
 
new entity fm_create_entity("info_target")
 
set_pev(entitypev_classname"deathbones")
 
engfunc(EngFunc_SetModelentity"models/skeleton.mdl")
 
set_pev(entitypev_originbones)
 
set_pev(entitypev_anglesangle)
 
set_pev(entitypev_movetypeMOVETYPE_TOSS)
 
set_pev(entitypev_solidSOLID_NOT)
 
 
// Bones erstmal unsichtbar
 
set_pev(entitypev_renderfxkRenderFxNone)
 
set_pev(entitypev_rendercolor255,255,255)
 
set_pev(entitypev_rendermodekRenderTransAlpha)
 
set_pev(entitypev_renderamt0.0)
 
// Spieler durch Bones wechseln
 
set_pev(entitypev_euser3player// den Bones dem Spieler zuweisen
 
set_pev(entitypev_euser40)  // aktuelles Alpha für die Bones
 
set_task(1.0"BonesAlphaIn"entity)
}
public 
BonesAlphaIn(bones) {
 if (!
pev_valid(bones)) return
 
 new 
alpha pev(bonespev_iuser4) + 1
 
new player pev(bonespev_iuser3)
 
 
// Spieler ausblenden, aber nur wenn kein DM-Modus
 
if ((pev_valid(player)) && !get_pcvar_num(pcv_deathmatch))
 {
  
set_pev(playerpev_renderfxkRenderFxNone)
  
set_pev(playerpev_rendercolor255,255,255)
  
set_pev(playerpev_rendermodekRenderTransAlpha)
  
set_pev(playerpev_renderamtfloat(256 alpha 16))
 }
 
 if (
pev_valid(bones))
 {
  
set_pev(bonespev_renderfxkRenderFxNone)
  
set_pev(bonespev_rendercolor255,255,255)
  
set_pev(bonespev_rendermodekRenderTransAlpha)
  
set_pev(bonespev_renderamtfloat(alpha 16 1))
 }
 
 
// neuen Alpha-Wert merken
 
set_pev(bonespev_iuser4alpha)
 
 
// jetzt entscheiden .. .weiter Alpha oder liegen lassen
 
if (alpha >= 16)
 {
  
// wenn kein DM dann Spieler jetzt nach unten setzen
  
if (!get_pcvar_num(pcv_deathmatch))
  {
   
// Bones werden am Rundenanfng automatisch gelöscht
   
PlayerMove(player)
  } else
  {
   
// im DM-Modus nach X Sekunden wieder ausblenden
   
set_task(get_pcvar_float(pcv_bonestime), "BonesAlphaOut"bones)
  }
 } else
 {
  
set_task(0.1"BonesAlphaIn"bones)
 }
}
public 
BonesAlphaOut(bones) {
 if (!
pev_valid(bones)) return
 
 new 
alpha pev(bonespev_iuser4) - 1
 
 
if (pev_valid(bones))
 {
  
set_pev(bonespev_renderfxkRenderFxNone)
  
set_pev(bonespev_rendercolor255,255,255)
  
set_pev(bonespev_rendermodekRenderTransAlpha)
  
set_pev(bonespev_renderamtfloat(alpha 16 1))
 }
 
 
// neuen Alpha-Wert merken
 
set_pev(bonespev_iuser4alpha)
 
 
// jetzt entscheiden .. .weiter Alpha oder killen
 
if (alpha)
 {
  
set_task(0.1"BonesAlphaOut"bones)
 } else
 {
  
fm_remove_entity(bones)
 }
}
public 
PlayerMove(player) {
 new 
Float:pos[3]
 
pev(playerpev_originpos)
 
pos[2] -= 2000.0
 set_pev
(playerpev_originpos)



ConnorMcLeod 12-19-2008 03:28

Re: [Help] Editing deathbones plugin
 
1 Attachment(s)
Try my edition.

AcidoX 12-22-2008 18:46

Re: [Help] Editing deathbones plugin
 
Ok, thnx guys! :)

Sn!ff3r 12-22-2008 20:52

Re: [Help] Editing deathbones plugin
 
PHP Code:

/*
        Skeletons
            v0.1 by SAMURAI
*/

#include <amxmodx>
#include <csx>
#include <fakemeta>

#define PLUGIN "Skeletons"
#define VERSION "0.1"
#define AUTHOR "SAMURAI"


// util funcs
#define fm_find_ent_by_class(%1,%2) engfunc(EngFunc_FindEntityByString, %1, "classname", %2)
#define fm_remove_entity(%1) engfunc(EngFunc_RemoveEntity, %1)

// sizes
#define SK_MINZ Float:{-2.440000, -3.540000, -4.960000 }
#define SK_MAXZ Float:{5.880000, 3.780000, 4.750000}

// model
stock const gModel[] = "models/skeleton.mdl";

// ent classname
new const gClassname[] = "amxx_skeleton";

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// block "ClCorpse". Now, the bodyes doesen't stay on ground anymore
    
set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET);
    
    
register_event("HLTV","event_newround""a","1=0""2=0");
}


public 
plugin_precache()
{
    
precache_model(gModel);
}

public 
client_death(killer,victim,weapon,hit,TK)
{
    
// get victim origin
    
static Float:origin[3];
    
pev(victim,pev_origin,origin);
    
    
// create new ent
    
new ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString,"info_target"));
    
    
// adjuts coords
    // origin.z -= 32;
    
origin[2] -= 32;
    
    
// set origins to new ent
    
engfunc(EngFunc_SetOrigin,ent,origin);
    
    
// check if isn't a valid ent
    
if(!pev_valid(ent))
        return 
0;
        
    
// set model
    
engfunc(EngFunc_SetModel,ent,gModel);
    
    
// set classname
    
set_pev(ent,pev_classname,gClassname);
    
    
// spawn ent
    
dllfunc(DLLFunc_Spawnent);
    
    
// make it solid
    
set_pev(ent,pev_solid,SOLID_BBOX);
    
    
// set movetype
    
set_pev(ent,pev_movetype,MOVETYPE_FLY);
    
    
// set sizes
    
engfunc(EngFunc_SetSize,ent,SK_MINZ,SK_MAXZ);
    
    
// drop ent to floor
    
engfunc(EngFunc_DropToFloor,ent);
    
    return 
0;
}

// This is called on every new round
// Remove all fucking skeletons
public event_newround()
{
    
    new 
skeletons = -1;
    while((
skeletons  fm_find_ent_by_class(skeletons gClassname)))
        
fm_remove_entity(skeletons );
        



AcidoX 12-23-2008 06:09

Re: [Help] Editing deathbones plugin
 
ConnorMcLeod: your version has a bug, when a player dies hes corpse is disapearing, and gets visible again, so it goes that deathbones, and player = 2 :D 2 corpses :D

xPaw 12-23-2008 06:59

Re: [Help] Editing deathbones plugin
 
so many codes, ill post one too :)
PHP Code:

#include <amxmodx>
#include <fakemeta>

#define SK_MINZ Float:{-2.440000, -3.540000, -4.960000 }
#define SK_MAXZ Float:{5.880000, 3.780000, 4.750000}

public plugin_init()  {
    
register_plugin("Skeletons""1.0""SAMURAI");
    
    
set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET);
    
register_event("DeathMsg",    "eDeath",    "a");
    
register_event("HLTV",        "eNewRound",    "a""1=0""2=0");
}

public 
plugin_precache()
    
precache_model("models/skeleton.mdl");

public 
eDeath() {
    new 
victim read_data(2);
    
    static 
Float:origin[3];
    
pev(victimpev_originorigin);
    
    new 
ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
    
    
origin[2] -= 32;
    
engfunc(EngFunc_SetOriginentorigin);
    
    if( !
pev_valid(ent) )
        return 
0;
    
    
engfunc(EngFunc_SetModelent"models/skeleton.mdl");
    
set_pev(entpev_classname"amxx_skeleton");
    
dllfunc(DLLFunc_Spawnent);
    
set_pev(entpev_solidSOLID_BBOX);
    
set_pev(entpev_movetypeMOVETYPE_FLY);
    
engfunc(EngFunc_SetSizeentSK_MINZSK_MAXZ);
    
engfunc(EngFunc_DropToFloorent);
    
    return 
0;
}

public 
eNewRound() {
    new 
skeletons = -1;
    while((
skeletons engfunc(EngFunc_FindEntityByStringskeletons"classname""amxx_skeleton")))
        
engfunc(EngFunc_RemoveEntityskeletons );



AcidoX 12-27-2008 14:35

Re: [Help] Editing deathbones plugin
 
xPaw: Your version error

Code:

L 12/27/2008 - 21:27:00: Start of error session.
L 12/27/2008 - 21:27:00: Info (map "de_inferno") (file "addons/amxmodx/logs/error_20081227.log")
L 12/27/2008 - 21:27:00: Invalid message argument 2
L 12/27/2008 - 21:27:00: [AMXX] Displaying debug trace (plugin "deathbones.amxx")
L 12/27/2008 - 21:27:00: [AMXX] Run time error 10: native error (native "get_msg_arg_int")
L 12/27/2008 - 21:27:00: [AMXX]    [0] deathbones.sma::eDeath (line 19)
L 12/27/2008 - 21:27:00: Invalid message argument 2

connor: Can you fix your version?

xPaw 12-27-2008 14:50

Re: [Help] Editing deathbones plugin
 
i changed one thing try now


All times are GMT -4. The time now is 23:14.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.