User
Pass
2FA
 
 

[rezolvat]Cerere plugin iarna

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Freakz Forum Index -> Trash Bin -> CS 2006-2019 (Archived) -> Plugins - Help / Support
Author Message1389
Codrin Bradea

[Mentally Stable]



Status: Offline
(since 30-03-2015 15:58)
Joined: 01 Sep 2014
Posts: 63, Topics: 30
Location: Oradea

Reputation: -84.9
Votes: 6

       
Post Posted: 29-11-2014, 11:27:37 | Translate post to: ... (Click for more languages)

As vrea si eu un plugin care sa contina in felu urmator :
Cand un T moare , apare un model (cadou) jos care sa contina random (viata/gravitatie/speed/invizibilitate)
Multumesc

sau doar sa apara cadourile cand moare.

0 0
  
Back to top
View user's profile Send private message Yahoo! Messenger ID
EDUTz

[HardcoreAmxxScripter]



Status: Offline
(since 15-08-2021 16:34)
Joined: 27 Dec 2010
Posts: 4306, Topics: 244
Location: Jud. Miserupia, sat Bagadanc

Reputation: 4085
Votes: 179

         
Post Posted: 29-11-2014, 12:56:54 | Translate post to: ... (Click for more languages)

Code:

#include <amxmodx>
#include <amxmisc>

/* Module necesare */
#include <fakemeta>
#include <hamsandwich>
#include <engine>

/* INC-uri */
#include <cellarray>
#include <xs>

/* Model la cadouri */
new const model_present[][] = { "models/present/w_present.mdl","models/present/w_present2.mdl" }

/* Extras din Fakemeta Util */
#define fm_find_ent_by_class(%1,%2) engfunc(EngFunc_FindEntityByString, %1, "classname", %2)
#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))

/* Extras din Super Spawns */
#define SS_VERSION   "1.0"
#define SS_MIN_DISTANCE   500.0
#define SS_MAX_LOOPS   100000

new Array:g_vecSsOrigins
new Array:g_vecSsSpawns
new Array:g_vecSsUsed
new Float:g_flSsMinDist
new g_iSsTime

new const g_szStarts[][] = { "info_player_start", "info_player_deathmatch" }
new const Float:g_flOffsets[] = { 3500.0, 3500.0, 1500.0 }

/* Offset-uri */
#if cellbits == 32
const OFFSET_CSMONEY = 115
#else
const OFFSET_CSMONEY = 140
#endif
const OFFSET_LINUX  = 5
     
new pcvar_respawn_time, pcvar_presents_on_map
new g_money
new g_bonus[33]

public plugin_init()
{
   register_plugin("XMAS GIFTS", "2.2", "KronoS")
     
   /*====================================
   ==============Eventuri==============*/

   register_event("HLTV", "spawn_gifts", "a", "1=0", "2=0")
   RegisterHam(Ham_Spawn, "player", "round_start", 1)
   RegisterHam(Ham_Killed, "player", "client_death", 1)
       RegisterHam(Ham_Item_PreFrame, "player", "FwdPreFramePost", 1)
   register_forward(FM_Touch,"forward_touch")
     
   /*====================================
   ==============Cvar-uri==============*/

   pcvar_respawn_time = register_cvar("presents_respawn_time","60.0")
   pcvar_presents_on_map = register_cvar("presents_on_map", "11")

   SsInit(800.0)
   SsScan()
   
   g_money = get_user_msgid("Money")
}

public plugin_precache()
{
   new i
   for(i = 0; i < sizeof model_present; i++)
      engfunc(EngFunc_PrecacheModel,model_present[i])
}

public spawn_gifts()
{
   func_spawn()
}

public round_start(id)
{
   if(g_bonus[id] > 0)
   {
      switch(g_bonus[id])
      {
         case 1:
         {
            fm_set_user_health(id, get_user_health(id) + 50)
         }
         case 2:
         {
            fm_set_user_gravity(id, 0.4)
         }
      }
   }
}

public func_spawn()
{
        new Float:origin[3]
   new i

   for(i=0; i< get_pcvar_num(pcvar_presents_on_map); i++)
   {
        if(SsGetOrigin(origin))
        {
                new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
                if(pev_valid(ent))
                {
                        engfunc(EngFunc_SetModel,ent,model_present[random_num(0,sizeof model_present - 1)])
                        engfunc(EngFunc_SetOrigin, ent, origin)
         static Float:fMaxs[3] = { 2.0, 2.0, 4.0 }
         static Float:fMins[3] = { -2.0, -2.0, -4.0 }
         set_pev(ent,pev_solid,SOLID_BBOX)
         engfunc(EngFunc_SetSize,ent,fMins,fMaxs)
         engfunc(EngFunc_DropToFloor, ent)

         switch(random_num(0,1))
         {
            case 0:
            {
               set_pev(ent,pev_classname,"small_present")
            }
            case 1:
            {
               set_pev(ent,pev_classname,"large_present")
            }
         }
                }
        }
   }
}

public client_death(id)
{
   if(g_bonus[id] > 0)
   {
      g_bonus[id] = 0
   }
}

public FwdPreFramePost(iClient)
{
   if(is_user_connected(iClient))
   {
      if(g_bonus[iClient] == 3)
      {
             fm_set_user_maxspeed(iClient, 350.0)
      }
      if(g_bonus[iClient] == 4)
      {
             fm_set_user_maxspeed(iClient, 200.0)
      }
   }


public forward_touch(ent,id)
{
   if(!pev_valid(ent))
      return FMRES_IGNORED
   
   static class[20]
   
   pev(ent,pev_classname,class,sizeof class - 1)
   
   if((!equali(class,"small_present") && !equali(class,"large_present")))
      return FMRES_IGNORED

   if((equali(class,"large_present") && (g_bonus[id] > 0)))
      return FMRES_IGNORED
   
   if(!is_user_alive(id))
      return FMRES_IGNORED
   
   set_pev(ent,pev_solid,SOLID_NOT)
   set_pev(ent,pev_effects,EF_NODRAW)
   set_task(get_pcvar_float(pcvar_respawn_time), "func_spawn", ent)
   
   if(equali(class,"small_present"))
   {
   switch(random_num(0,4))
   {
      case 0:
      {
         fm_set_user_money(id, fm_get_user_money(id) + 500)
         set_hudmessage(255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0)
         show_hudmessage(id, "[XMAS Gift] Mosul ti-a oferit 500$")
      }
      case 1:
      {
         fm_set_user_money(id, 16000)
         set_hudmessage(255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0)
         show_hudmessage(id, "[XMAS Gift] Mosul ti-a oferit 16000$")
      }
      case 2:
      {
         fm_set_user_money(id, 0)
         set_hudmessage(255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0)
         show_hudmessage(id, "[XMAS Gift] Mosul ti-a furat toti banii")
      }
      case 3:
      {
         fm_set_user_money(id, fm_get_user_money(id) - 500)
         set_hudmessage(255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0)
         show_hudmessage(id, "[XMAS Gift] Mosul ti-a furat 500$")
      }
      case 4:
      {
         fm_give_item(id, "weapon_awp")
         set_hudmessage(255, 165, 0, 0.02, 0.73, 0, 6.0, 12.0)
         show_hudmessage(id, "[XMAS Gift] Mosul ti-a oferit un AWP")
      }
   }
   }
   if(equali(class,"large_present"))
   {
   switch(random_num(0,3))
   {
      case 0:
      {
         fm_set_user_health(id, get_user_health(id) + 50)
         g_bonus[id] = 1
         large_present_hud(id)
      }
      case 1:
      {
         fm_set_user_gravity(id, 0.4)
         g_bonus[id] = 2
         large_present_hud(id)
      }
      case 2:
      {
         fm_set_user_maxspeed(id, 350.0)
         g_bonus[id] = 3
         large_present_hud(id)
      }
      case 3:
      {
         fm_set_user_maxspeed(id, 200.0)
         g_bonus[id] = 4
         large_present_hud(id)
      }
   }
   }
   
   return FMRES_IGNORED
}

public large_present_hud(id)
{
   if(is_user_alive(id))
   {
      if(g_bonus[id] > 0)
      {
         switch(g_bonus[id])
         {
            case 1:
            {
               set_hudmessage(0, 255, 0, 0.02, 0.73, 0, 6.0, 12.0)
               show_hudmessage(id, "[XMAS Gift] Viata+")
            }
            case 2:
            {
               set_hudmessage(0, 255, 0, 0.02, 0.73, 0, 6.0, 12.0)
               show_hudmessage(id, "[XMAS Gift] Gravitatie-")
            }
            case 3:
            {
               set_hudmessage(0, 255, 0, 0.02, 0.73, 0, 6.0, 12.0)
               show_hudmessage(id, "[XMAS Gift] Viteza+")
            }
            case 4:
            {
               set_hudmessage(200, 0, 0, 0.02, 0.73, 0, 6.0, 12.0)
               show_hudmessage(id, "[XMAS Gift] Viteza-")
            }
         }
         set_task(12.0, "large_present_hud", id)
      }
   }
}

public client_disconnect(id)
{
   g_bonus[id] = 0
}

/*====================================
========Inceput Fakemeta Util=======*/

stock fm_set_user_money(id,money,flash=1)
{
   set_pdata_int(id,OFFSET_CSMONEY,money,OFFSET_LINUX)

   message_begin(MSG_ONE,g_money,{0,0,0},id)
   write_long(money)
   write_byte(flash)
   message_end()
}

stock fm_get_user_money(id)
{
   return get_pdata_int(id,OFFSET_CSMONEY,OFFSET_LINUX)
}

stock fm_set_user_health(id, health)
{
   (health > 0) ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id)

   return 1
}

stock fm_give_item(index, const item[]) {
   if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
      return 0

   new ent = fm_create_entity(item)
   if (!pev_valid(ent))
      return 0

   new Float:origin[3]
   pev(index, pev_origin, origin)
   set_pev(ent, pev_origin, origin)
   set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
   dllfunc(DLLFunc_Spawn, ent)

   new save = pev(ent, pev_solid)
   dllfunc(DLLFunc_Touch, ent, index)
   if (pev(ent, pev_solid) != save)
      return ent

   engfunc(EngFunc_RemoveEntity, ent)

   return -1
}

stock fm_set_user_gravity(index, Float:gravity = 1.0) {
   set_pev(index, pev_gravity, gravity)

   return 1
}

stock fm_set_user_maxspeed(index, Float:speed = -1.0) {
   engfunc(EngFunc_SetClientMaxspeed, index, speed);
   set_pev(index, pev_maxspeed, speed);

   return 1;
}

/*====================================
========Sfarsit Fakemeta Util=======*/

/*====================================
========Inceput Super Spawns========*/

public SsInit(Float:mindist)
{
   new cmd[32]
   format(cmd, 15, "_ss_dump%c%c%c%c", random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'))
   register_cvar("sv_superspawns", SS_VERSION, (FCVAR_SERVER|FCVAR_SPONLY))
   register_concmd(cmd, "SsDump")

   g_flSsMinDist = mindist
   g_vecSsOrigins = ArrayCreate(3, 1)
   g_vecSsSpawns = ArrayCreate(3, 1)
   g_vecSsUsed = ArrayCreate(3, 1)
}

stock SsClean()
{
   g_flSsMinDist = 0.0
   ArrayClear(g_vecSsOrigins)
   ArrayClear(g_vecSsSpawns)
   ArrayClear(g_vecSsUsed)
}

stock SsGetOrigin(Float:origin[3])
{
   new Float:data[3], size
   new ok = 1

   while((size = ArraySize(g_vecSsOrigins)))
   {
      new idx = random_num(0, size - 1)

      ArrayGetArray(g_vecSsOrigins, idx, origin)

      new used = ArraySize(g_vecSsUsed)
      for(new i = 0; i < used; i++)
      {
         ok = 0
         ArrayGetArray(g_vecSsUsed, i, data)
         if(get_distance_f(data, origin) >= g_flSsMinDist)
         {
            ok = 1
            break
         }
      }

      ArrayDeleteItem(g_vecSsOrigins, idx)
      if(ok)
      {
         ArrayPushArray(g_vecSsUsed, origin)
         return true
      }
   }
   return false
}

public SsDump()
{
   new Float:origin[3]
   new count = ArraySize(g_vecSsOrigins)
   server_print("-------------------------------------------------------")
   for(new i = 0; i < count; i++)
   {
      ArrayGetArray(g_vecSsOrigins, i, origin)
      server_print("Origin: %f %f %f", origin[0], origin[1], origin[2])
   }
   server_print("-------------------------------------------------------")
   server_print("Number of origins: %i", count)
   server_print("Time: %i", g_iSsTime)
   server_print("-------------------------------------------------------")
}

public SsScan()
{
   new start, Float:origin[3], starttime
   starttime = get_systime()
   for(start = 0; start < sizeof(g_szStarts); start++)
   {
      server_print("Searching for %s", g_szStarts[start])
      new ent
      if((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", g_szStarts[start])))
      {
         new counter
         pev(ent, pev_origin, origin)
         ArrayPushArray(g_vecSsSpawns, origin)
         while(counter < SS_MAX_LOOPS)
         {
            counter = GetLocation(origin, counter)
         }
      }
   }
   g_iSsTime = get_systime()
   g_iSsTime -= starttime
}

GetLocation(Float:start[3], &counter)
{
   new Float:end[3]
   for(new i = 0; i < 3; i++)
   {
      end[i] += random_float(0.0 - g_flOffsets[i], g_flOffsets[i])
   }

   if(IsValid(start, end))
   {
      start[0] = end[0]
      start[1] = end[1]
      start[2] = end[2]
      ArrayPushArray(g_vecSsOrigins, end)
   }
   counter++
   return counter
}

IsValid(Float:start[3], Float:end[3])
{
   SetFloor(end)
   end[2] += 36.0
   new point = engfunc(EngFunc_PointContents, end)
   if(point == CONTENTS_EMPTY)
   {
      if(CheckPoints(end) && CheckDistance(end) && CheckVisibility(start, end))
      {
         if(!trace_hull(end, HULL_LARGE, -1))
         {
            return true
         }
      }
   }
   return false
}

CheckVisibility(Float:start[3], Float:end[3])
{
   new tr
   engfunc(EngFunc_TraceLine, start, end, IGNORE_GLASS, -1, tr)
   return (get_tr2(tr, TR_pHit) < 0)
}

SetFloor(Float:start[3])
{
   new tr, Float:end[3]
   end[0] = start[0]
   end[1] = start[1]
   end[2] = -99999.9
   engfunc(EngFunc_TraceLine, start, end, DONT_IGNORE_MONSTERS, -1, tr)
   get_tr2(tr, TR_vecEndPos, start)
}

CheckPoints(Float:origin[3])
{
   new Float:data[3], tr, point
   data[0] = origin[0]
   data[1] = origin[1]
   data[2] = 99999.9
   engfunc(EngFunc_TraceLine, origin, data, DONT_IGNORE_MONSTERS, -1, tr)
   get_tr2(tr, TR_vecEndPos, data)
   point = engfunc(EngFunc_PointContents, data)
   if(point == CONTENTS_SKY && get_distance_f(origin, data) < 250.0)
   {
      return false
   }
   data[2] = -99999.9
   engfunc(EngFunc_TraceLine, origin, data, DONT_IGNORE_MONSTERS, -1, tr)
   get_tr2(tr, TR_vecEndPos, data)
   point = engfunc(EngFunc_PointContents, data)
   if(point < CONTENTS_SOLID)
      return false
   
   return true
}

CheckDistance(Float:origin[3])
{
   new Float:dist, Float:data[3]
   new count = ArraySize(g_vecSsSpawns)
   for(new i = 0; i < count; i++)
   {
      ArrayGetArray(g_vecSsSpawns, i, data)
      dist = get_distance_f(origin, data)
      if(dist < SS_MIN_DISTANCE)
         return false
   }

   count = ArraySize(g_vecSsOrigins)
   for(new i = 0; i < count; i++)
   {
      ArrayGetArray(g_vecSsOrigins, i, data)
      dist = get_distance_f(origin, data)
      if(dist < SS_MIN_DISTANCE)
         return false
   }

   return true
}




Pentru pluginuri complicate le fac cu $$ pe paypal/psc. PM

0 0
  
Back to top
View user's profile Send private message Yahoo! Messenger ID
Codrin Bradea

[Mentally Stable]



Status: Offline
(since 30-03-2015 15:58)
Joined: 01 Sep 2014
Posts: 63, Topics: 30
Location: Oradea

Reputation: -84.9
Votes: 6

       
Post Posted: 29-11-2014, 13:00:23 | Translate post to: ... (Click for more languages)

asta sunt cadouri random pe mapa
Eu vroiam cand omori pe cineva sa cada un codou unde a murit el daca ma intelegi

0 0
  
Back to top
View user's profile Send private message Yahoo! Messenger ID
-P!C@-

[Simply Normal]



Status: Offline
(since 21-04-2022 19:07)
Joined: 28 May 2012
Posts: 21086, Topics: 1601
Location: Constanta

Reputation: 1870.3
Votes: 781

Post Posted: 29-11-2014, 14:17:13 | Translate post to: ... (Click for more languages)

Ti-am pus un plugin care iti lasa cadouri pe harta, nu cand moare cineva: http://www8.zippyshare.com/v/32602196/file.html
Cvar: presents_on_map 11,15,20 etc -pentru numarul de cadouri care sunt pe harta.




0 0
  
Back to top
View user's profile Send private message

  Topic locked


Topic is closed, you cannot post any messages in it anymore

Locked by EDUTz, 09 December 2014 10:28



 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Freakz Forum Index -> Trash Bin -> CS 2006-2019 (Archived) -> Plugins - Help / Support  


The time now is 28-07-2025, 16:43:56
Copyright info

Based on phpBB ro/com
B

 
 
 







I forgot my password