Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Klasa

Przerobienie klasy[stawianie worków - klasa premium]

klasa

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 LtBlue

    Życzliwy

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:39
  • Imię:Kuba
  • Lokalizacja:Rzeszow
Offline

Napisano 08.03.2013 19:51

Witam . Jest to klasa premium [H]

Chciałbym aby została ona przerobiona tak ,aby każdy mógł ja wybrać i nia grać : )
Podaje niżej sma

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <xs>
#include <colorchat>

#define AUTHOR "SAMURAI & kisiel96 & DarkGL" // dziekuje w tym miejscu DarkGL za pomoc :]

/* ***** KONFIGURACJA ***** */
#define ILOSC_WORKOW_GRACZA 5
//#define PREMIUM
#define ODDAJWORKI
/* ***** KONFIGURACJA ***** */

#define PALLET_MINS Float:{ -27.260000, -22.280001, -22.290001 }
#define PALLET_MAXS Float:{ 27.340000, 26.629999, 29.020000 }
#define fm_find_ent_by_class(%1,%2) engfunc(EngFunc_FindEntityByString, %1, "classname", %2)
#define fm_remove_entity(%1) engfunc(EngFunc_RemoveEntity, %1)
#define fm_drop_to_floor(%1) engfunc(EngFunc_DropToFloor,%1)

new g_class[] = "amxx_pallets";

new phealth;

new losuj;

new bool:ma_klase[33];
new ilosc_workow_gracza[33];
new max_ilosc_workow_gracza[33];
new tryb[33];

new const nazwa[] = "Pomagier";
new const opis[] = "Moze ukladac worki z piaskiem. Im ma wiecej inteligencji, tym worki sa mocniejsze";
new const bronie = 1<<CSW_M249 | 1<<CSW_DEAGLE;
new const zdrowie = 20;
new const kondycja = -30;
new const inteligencja = 0;
new const wytrzymalosc = 20;

public plugin_init()
{
register_plugin(nazwa, "1.0", "AUTHOR");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

phealth = register_cvar("pomagier_health","250");

register_event("ResetHUD", "ResetHUD", "abe");

register_event("HLTV","event_newround", "a","1=0", "2=0");
register_forward(FM_PlayerPreThink, "PlayerPreThink")
register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1)
register_forward(FM_CmdStart,"fwd_CmdStart")
}

public plugin_natives()
{
register_native("cod_get_user_class_sandbag", "PobierzIlosc", 1);
register_native("cod_get_user_class_max_sandbag", "PobierzIloscMax", 1);
}

public plugin_precache()
{
precache_model("models/pallet_with_bags.mdl");
precache_model("models/pallet_with_bags2.mdl");
}

}
#endif
ma_klase[id] = true;
ilosc_workow_gracza[id] = ILOSC_WORKOW_GRACZA;
max_ilosc_workow_gracza[id] = ILOSC_WORKOW_GRACZA;
tryb[id] = 0;
return COD_CONTINUE;
}

public cod_class_disabled(id)
{
ma_klase[id] = false;
}

public ResetHUD(id)
{
ilosc_workow_gracza[id] = ILOSC_WORKOW_GRACZA;
tryb[id] = 0;
}

public cod_class_skill_used(id)
{
switch(tryb[id])
{
case 0:
{
client_print(id, print_center, "Tryb stawiania workow");
tryb[id] = 1;
}
case 1:
{
client_print(id, print_center, "Tryb usuwania workow");
tryb[id] = 2;
}
case 2:
{
client_print(id, print_center, "Tryb strzelania");
tryb[id] = 0
}
}
}

public PlayerPreThink(id)
{
if(!is_user_connected(id) || !is_user_alive(id))
{
return FMRES_IGNORED;
}
if(!is_user_alive(id))
{
return FMRES_IGNORED;
}
if(!ma_klase[id])
{
return FMRES_IGNORED;
}

switch(tryb[id])
{
case 1:
{
set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK);
return FMRES_HANDLED;
}
case 2:
{
set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK);
return FMRES_HANDLED;
}
}
return FMRES_HANDLED;
}

public UpdateClientData_Post(id, sendweapons, cd_handle)
{
if(!is_user_connected(id) || !is_user_alive(id))
{
return FMRES_IGNORED;
}
if(!is_user_alive(id))
{
return FMRES_IGNORED;
}
if(!ma_klase[id])
{
return FMRES_IGNORED;
}
switch(tryb[id])
{
case 1:
{
set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001 );
}
case 2:
{
set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001 );
}
}
return FMRES_HANDLED;
}

public fwd_CmdStart(id, uc_handle, seed)
{
if(!is_user_connected(id) || !is_user_alive(id))
{
return FMRES_IGNORED;
}
if(!is_user_alive(id))
{
return FMRES_IGNORED;
}
if(!ma_klase[id])
{
return FMRES_IGNORED;
}

new buttons = get_uc(uc_handle, UC_Buttons)
new oldbuttons = get_user_oldbutton(id);

if((buttons & IN_ATTACK) || !(oldbuttons & IN_ATTACK))
{
return FMRES_IGNORED;
}
switch(tryb[id])
{
case 1:
{
PostawWorek(id);
set_uc(uc_handle, UC_Buttons, buttons & ~IN_ATTACK);
return FMRES_HANDLED;
}
case 2:
{
UsunWorek(id);
set_uc(uc_handle, UC_Buttons, buttons & ~IN_ATTACK);
return FMRES_HANDLED;
}
}
return FMRES_IGNORED;
}

public PostawWorek(id)
{
if(!ilosc_workow_gracza[id])
{
client_print(id, print_center, "Nie mozesz postawic juz wiecej workow z piaskiem! Przywrocono tryb strzelania");
tryb[id] = 0;
return PLUGIN_CONTINUE;
}

if(is_user_alive(id))
{
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_wall"));

set_pev(ent,pev_classname,g_class);

losuj = random(2);
switch(losuj)
{
case 0:
{
engfunc(EngFunc_SetModel,ent,"models/pallet_with_bags.mdl");
}
case 1:
{
engfunc(EngFunc_SetModel,ent,"models/pallet_with_bags2.mdl");
}
}

static Float:xorigin[3];
get_user_hitpoint(id,xorigin);

if(engfunc(EngFunc_PointContents,xorigin) == CONTENTS_SKY)
{
client_print(id, print_center, "Nie mozesz tu postawic workow! Przywrocono tryb strzelania");
tryb[id] = 0;
return PLUGIN_HANDLED;
}


static Float:p_mins[3], Float:p_maxs[3];
p_mins = PALLET_MINS;
p_maxs = PALLET_MAXS;
xorigin[2] += 30.0;
if(!checkBagsPlace(xorigin, p_mins, p_maxs))
{
client_print(id, print_center, "Nie mozesz tu postawic workow! Przywrocono tryb strzelania");
tryb[id] = 0;
return PLUGIN_HANDLED;
}
xorigin[2] -= 30.0

engfunc(EngFunc_SetSize, ent, p_mins, p_maxs);
set_pev(ent, pev_mins, p_mins);
set_pev(ent, pev_maxs, p_maxs );
set_pev(ent, pev_absmin, p_mins);
set_pev(ent, pev_absmax, p_maxs );

engfunc(EngFunc_SetOrigin, ent, xorigin);

set_pev(ent,pev_solid,SOLID_BBOX);

set_pev(ent,pev_movetype,MOVETYPE_FLY);

new Float:p_cvar_health = get_pcvar_float(phealth)+float(cod_get_user_intelligence(id, 1, 1, 1));
set_pev(ent,pev_health,p_cvar_health);
set_pev(ent,pev_takedamage,DAMAGE_YES);

static Float:rvec[3];
pev(id,pev_v_angle,rvec);

rvec[0] = 0.0;

set_pev(ent,pev_angles,rvec);

fm_drop_to_floor(ent);

ilosc_workow_gracza[id]--;

return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}

public UsunWorek(id)
{
new ent, body, class[32];
get_user_aiming(id, ent, body);

if(ilosc_workow_gracza[id] == max_ilosc_workow_gracza[id])
{
client_print(id, print_center, "Nie postawiles jeszcze zadnego worka z piaskiem! Przywrocono tryb strzelania");
tryb[id] = 0;
return PLUGIN_CONTINUE;
}

if(pev_valid(ent) && ilosc_workow_gracza[id] != max_ilosc_workow_gracza[id])
{
pev(ent, pev_classname, class, 31);

if (equal(class, g_class))
{
fm_remove_entity(ent);
#if defined ODDAJWORKI
ilosc_workow_gracza[id]++;
#endif
return PLUGIN_CONTINUE;
}
else
{
client_print(id, print_center, "Wyceluj w worek! Przywrocono tryb strzelania");
tryb[id] = 0;
return PLUGIN_CONTINUE;
}
}
else
{
client_print(id, print_center, "Wyceluj w worek! Przywrocono tryb strzelania");
tryb[id] = 0;
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}

public event_newround()
{
remove_allpalletswbags();
}

bool:checkBagsPlace(Float: fOrigin[3],Float: fMins[3],Float: fMaxs[3])
{
new Float:fOriginTmp[3]

xs_vec_copy(fOrigin,fOriginTmp)

fOriginTmp[0] += fMins[0];
fOriginTmp[1] += fMaxs[1];
fOriginTmp[2] += fMaxs[2];
if(!traceTo(fOrigin,fOriginTmp))
{
return false;
}
xs_vec_copy(fOrigin,fOriginTmp)

fOriginTmp[0] += fMaxs[0];
fOriginTmp[1] += fMaxs[1];
fOriginTmp[2] += fMaxs[2];
if(!traceTo(fOrigin,fOriginTmp))
{
return false;
}
xs_vec_copy(fOrigin,fOriginTmp)

fOriginTmp[0] += fMins[0];
fOriginTmp[1] += fMins[1];
fOriginTmp[2] += fMaxs[2];
if(!traceTo(fOrigin,fOriginTmp))
{
return false;
}
xs_vec_copy(fOrigin,fOriginTmp)

fOriginTmp[0] += fMaxs[0];
fOriginTmp[1] += fMins[1];
fOriginTmp[2] += fMaxs[2];
if(!traceTo(fOrigin,fOriginTmp))
{
return false;
}
xs_vec_copy(fOrigin,fOriginTmp)

fOriginTmp[0] += fMins[0];
fOriginTmp[1] += fMaxs[1];
fOriginTmp[2] += fMins[2];
if(!traceTo(fOrigin,fOriginTmp))
{
return false;
}
xs_vec_copy(fOrigin,fOriginTmp)

fOriginTmp[0] += fMaxs[0];
fOriginTmp[1] += fMaxs[1];
fOriginTmp[2] += fMins[2];
if(!traceTo(fOrigin,fOriginTmp))
{
return false;
}
xs_vec_copy(fOrigin,fOriginTmp)

fOriginTmp[0] += fMins[0];
fOriginTmp[1] += fMins[1];
fOriginTmp[2] += fMins[2];
if(!traceTo(fOrigin,fOriginTmp))
{
return false;
}
xs_vec_copy(fOrigin,fOriginTmp)

fOriginTmp[0] += fMaxs[0];
fOriginTmp[1] += fMins[1];
fOriginTmp[2] += fMins[2];
if(!traceTo(fOrigin,fOriginTmp))
{
return false;
}
xs_vec_copy(fOrigin,fOriginTmp)

return true;
}

bool:traceTo(const Float:fFrom[3],const Float:fTo[3])
{
new tr = create_tr2();

engfunc(EngFunc_TraceLine, fFrom, fTo,DONT_IGNORE_MONSTERS, 0, tr);

new Float:fFrac;
get_tr2(tr, TR_flFraction, fFrac);
free_tr2(tr);

return (fFrac == 1.0);
}

stock get_user_hitpoint(id, Float:hOrigin[3])
{
if (!is_user_alive(id))
return 0;

new Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3];
new Float:fTemp[3];

pev(id, pev_origin, fOrigin);
pev(id, pev_v_angle, fvAngle);
pev(id, pev_view_ofs, fvOffset);

xs_vec_add(fOrigin, fvOffset, fvOrigin);

engfunc(EngFunc_AngleVectors, fvAngle, feOrigin, fTemp, fTemp);

xs_vec_mul_scalar(feOrigin, 9999.9, feOrigin);
xs_vec_add(fvOrigin, feOrigin, feOrigin);

engfunc(EngFunc_TraceLine, fvOrigin, feOrigin, 0, id);
global_get(glb_trace_endpos, hOrigin);

return 1;
}

stock remove_allpalletswbags()
{
new pallets = -1;
while((pallets = fm_find_ent_by_class(pallets, g_class)))
fm_remove_entity(pallets);
}

public PobierzIlosc(id)
{
if(ma_klase[id])
return ilosc_workow_gracza[id]
return 0;
}

public PobierzIloscMax(id)
{
if(ma_klase[id])
return max_ilosc_workow_gracza[id]
return 0;
}

//////END OF FILE//////

Użytkownik LtBlue edytował ten post 08.03.2013 19:54


#2 Play 4FuN

    Wszechmogący

  • Power User

Reputacja: 418
Wszechobecny

  • Postów:691
  • Lokalizacja:de_dust2
Offline

Napisano 10.03.2013 11:11

Sprawdź:
Załączony plik  codclass_hud_p_pomagier.sma   11,1 KB  20 Ilość pobrań
  codclass_hud_p_pomagier.amxx
  • +
  • -
  • 1

b_350_20_FFAD41_E98100_000000_591F11.png


#3 LtBlue

    Życzliwy

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:39
  • Imię:Kuba
  • Lokalizacja:Rzeszow
Offline

Napisano 10.03.2013 12:07

Close .





Również z jednym lub większą ilością słów kluczowych: klasa

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych