#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>
#include <fun>
#include <csx>
#include <nvault>
#define PLUGIN "American Football Mod"
#define VERSION "5.0"
#define AUTHOR "WhooKid"
new MaxPlayers, Football
new dive[33]
new fm_allowdive,
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar("fm_version", VERSION, FCVAR_SERVER|FCVAR_UNLOGGED);
fm_allowdive = register_cvar("fm_allowdive", "1", FCVAR_SERVER|FCVAR_UNLOGGED);
register_clcmd("lastinv", "act_dive", _, "<Initiate a Dive>");
MaxPlayers = get_maxplayers(), model_names[9] = "Terrorists", model_names[20] = "Counter-Terrorists";
}
// resets teams for a new down
public act_reset()
{
new id, user_team
for (id = 1; id <= MaxPlayers; id++)
if (is_user_alive(id))
{
// clear dive
if (dive[id])
dive_reset(id + 62954);
}
}
public fw_start(const id, const uc_handle)
{
if (dive[id])
{
if (!(buttons & IN_DUCK))
set_pev(id, pev_view_ofs, Float:{0.0, 0.0, -15.0});
if (get_user_maxspeed(id) != 1.0)
set_user_maxspeed(id, 1.0);
if (dive[id] == 2)
if (pev(id, pev_flags) & FL_ONGROUND)
dive[id] = 3;
if (dive[id] == 3)
{
static Float:velocity[3], a;
pev(id, pev_velocity, velocity);
if (velocity[0] != 0.0 || velocity[1] != 0.0 || velocity[2] > 40.0)
{
for (a = 0; a < 2; a++)
if (velocity[a] > 4.0) velocity[a] -= 4.0;
else if (velocity[a] < -4.0) velocity[a] += 4.0;
else velocity[a] = 0.0;
if (velocity[2] > 40.0)
velocity[2] = -100.0;
set_pev(id, pev_velocity, velocity);
}
}
}
return FMRES_IGNORED;
}
// sets the animation for the dive
public fw_addtofullpack(es_handle, e, id, host, flags, player)
{
if (id && player && (dive[id] || FieldGoal == id))
{
set_es(es_handle, ES_Sequence, (FieldGoal == id) ? 3 : 8);
set_es(es_handle, ES_Frame, Float:13.0);
set_es(es_handle, ES_FrameRate, Float:0.0);
return FMRES_HANDLED;
}
return FMRES_IGNORED;
}
// perform a dive
public act_dive(id)
{
if (get_pcvar_num(fm_allowdive) && !dive[id] && pev(id, pev_flags) & FL_ONGROUND && get_user_maxspeed(id) != 1.0)
{
new Float:velocity[3];
pev(id, pev_velocity, velocity);
if (velocity[0] != 0.0 || velocity[1] != 0.0)
{
dive[id] = 1;
set_user_maxspeed(id, 1.0);
velocity[2] = (task_exists(id + 905)) ? 1.42 : 1.65;
set_pev(id, pev_velocity, velocity);
emit_sound(id, CHAN_AUTO, "player/pl_fallpain1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
set_task(0.2, "dive_grndchk", id + 63954);
set_task(random_float(2.9, 3.1), "dive_reset", id + 62954);
client_cmd(id, "+duck;+jump");
}
}
return PLUGIN_HANDLED;
}
public dive_grndchk(id){
if (dive[id - 63954] == 1)
dive[id - 63954] = 2;
}
// clear the player after a dive
public dive_reset(id)
{
id -= 62954;
if (dive[id])
if (is_user_alive(id))
{
dive[id] = 0;
set_pev(id, pev_view_ofs, Float:{0.0, 0.0, 17.0});
if (pev(id, pev_solid) > 0)
set_user_maxspeed(id, get_pcvar_num(fm_maxspeed) - 25 : get_pcvar_num(fm_maxspeed)));
client_cmd(id, "-duck;-jump");
}
}
public client_connect(id)
client_cmd(id, "cl_forwardspeed 900;cl_backspeed 900;cl_sidespeed 900");
// player leaves
public client_disconnect(id)
{
if (!Football)
return;
if (dive[id])
client_cmd(id, "-duck;-jump");
}
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.
|
Guest Message by DevFuse
Szary322
Rejestracja: 14.11.2009Aktualnie: Nieaktywny
Poza forum Ostatnio: 25.12.2012 17:23




Statystyki
- Grupa: Użytkownik
- Całość postów: 34
- Odwiedzin: 3 643
- Tytuł: Życzliwy
- Wiek: Wiek nie został ustalony
- Urodziny: Data urodzin nie została podana
-
Płeć
Nie podano
-
Lokalizacja
Białystok
3
Nowy
Narzędzia użytkownika
Znajomi
Szary322 nie posiada znajomych
Moje tematy
Dive/Rzucanie się jak w Footballu
28.11.2012 16:08
Witam ,czy mógłby ktoś mi pomóc w naprawieniu tego ? aby można było rzucać się przed siebie jak w American Football ? Próbowałem to przerabiać inaczej ale w ogóle błędy wywalało
na razie stoję w tym punkcie :< Oczywiście za każdą pomoc lecą plusiki 
Modele dla tt/ct/admin tt i admin CT
27.11.2012 21:24
Witam ,szukam pluginu(jednego ,nie paru) który nadaje modele dla adminów (tt i ct) oraz graczy (tt i ct) ,widziałem setki takich pluginów ale zazwyczaj się bugują albo jeden model zawadza drugiemu itp.
[ROZWIĄZANE] Wall Jump admin
26.11.2012 21:31
Mógłby ktoś mi pomóc to przerobić ? chciałem ustawić by plugin działał tylko dla admina ,ale coś niezbyt to działa.
#include <amxmodx>
#include <engine>
new bool:caughtJump[33]
new bool:doJump[33]
new Float:jumpVeloc[33][3]
new newButton[33]
new numJumps[33]
new wallteam
//====================================================================================================
static const TITLE[] = "Wall Jump VIP"
static const VERSION[] = "0.6"
static const AUTHOR[] = "OneEyed"
//====================================================================================================
public plugin_init()
{
register_plugin(TITLE,VERSION,AUTHOR)
register_cvar("walljump_str","300.0")
register_cvar("walljump_num","2")
register_touch("player", "worldspawn", "Touch_World")
register_touch("player", "func_wall", "Touch_World")
register_touch("player", "func_breakable", "Touch_World")
}
public client_disconnect(id) {
caughtJump[id] = false
doJump[id] = false
for(new x=0;x<3;x++)
jumpVeloc[id][x] = 0.0
newButton[id] = 0
numJumps[id] = 0
}
public client_PreThink(id)
{
new team = (get_user_flags(id) & ADMIN_KICK)
if(is_user_alive(id) && (!wallteam || wallteam == team))
{
newButton[id] = get_user_button(id)
new oldButton = get_user_oldbutton(id)
new flags = get_entity_flags(id)
//reset if we are on ground
if(caughtJump[id] && (flags & FL_ONGROUND))
{
numJumps[id] = 0
caughtJump[id] = false
}
//begin when we jump
if((newButton[id] & IN_JUMP) && (flags & FL_ONGROUND) && !caughtJump[id] && !(oldButton & IN_JUMP) && !numJumps[id])
{
caughtJump[id] = true
entity_get_vector(id,EV_VEC_velocity,jumpVeloc[id])
jumpVeloc[id][2] = get_cvar_float("walljump_str")
}
}
}
public client_PostThink(id)
{
if(is_user_alive(id))
{
if(!access(id, ADMIN_RESERVATION))
//do velocity if we walljumped
if(doJump[id])
{
entity_set_vector(id,EV_VEC_velocity,jumpVeloc[id])
doJump[id] = false
if(numJumps[id] >= get_cvar_num("walljump_num")) //reset if we ran out of jumps
{
numJumps[id] = 0
caughtJump[id] = false
}
}
}
}
public Touch_World(id, world)
{
if(is_user_alive(id))
{
//if we touch wall and have jump pressed, setup for jump
if(caughtJump[id] && (newButton[id] & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND))
{
//reverse velocity
for(new x=0;x<2;x++)
jumpVeloc[id][x] *= -1.0
numJumps[id]++
doJump[id] = true
}
}
}
Czasowy Plugin na włączenie pluginów
26.11.2012 19:53
Witam
Czy istnieje możliwość przerobienia/napisania/udostępnienia mi pluginu który będzie włączać 3 inne pluginy np. Losowo co 3 rundy na 20 sekund.
Czyli co 3 rundy włączą mi się 3 pluginy na X czasu
jak na razie próbowałem przerobić to :
troche jestem słaby w pisaniu pluginów ,i chciałbym poznać w miarę możliwości funkcję dzięki której mogę włączyć dane pluginy (nie jeden a 3 naraz)
Czyli co 3 rundy włączą mi się 3 pluginy na X czasu
jak na razie próbowałem przerobić to :
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#define PLUGIN "Plugin co x czasu"
#define VERSION "0.9"
#define AUTHOR "QTM. Peyote"
#define minut(%1) ((%1)*60.0)
new turn_on
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
turn_on = xxxxxxxxxxxxxxxx nie wiem :<
set_task(1.0, "Sprawdz");
set_task(240.0, "PokazInfo", _, _, _, "b");
}
public Sprawdz()
{
new timestr[3];
get_time("%H", timestr, 2);
new godzina = str_to_num(timestr);
new bool:aktywne;
new odgodziny = get_pcvar_num(pcvarOdgodziny),
dogodziny = get_pcvar_num(pcvarDogodziny);
if(odgodziny > dogodziny)
{
if(godzina >= odgodziny || godzina < dogodziny)
aktywne = true;
}
else
{
if(godzina >= odgodziny && godzina < dogodziny)
aktywne = false;
}
if(aktywne)
{
new num = callfunc_begin("turn_on", "slowmotion.amxx")
callfunc_end()
}
get_time("%M", timestr, 2);
new minuta = str_to_num(timestr);
set_task(minut(60-minuta), "Sprawdz");
}
public PokazInfo()
ColorChat(0, GREEN, "Co X czasu następuje włączenie plugin slowmo");
}
get_time("%M", timestr, 2);
new minuta = str_to_num(timestr);
set_task(minut(60-minuta), "Sprawdz");
}
public PokazInfo()
ColorChat(0, GREEN, "Co X czasu następuje włączenie pluginu slowmo");troche jestem słaby w pisaniu pluginów ,i chciałbym poznać w miarę możliwości funkcję dzięki której mogę włączyć dane pluginy (nie jeden a 3 naraz)
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Tematy: Szary322
- Regulamin


Dodatki SourceMod



Moja zawartość