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
 

asior2 - zdjęcie

asior2

Rejestracja: 08.12.2015
Aktualnie: Nieaktywny
Poza forum Ostatnio: 26.12.2015 14:11
-----

Moje tematy

Prośba o wytłumaczenie przedrostków na u@

20.12.2015 15:11

Cześć, mam na serwerze VIP'a na flagę T.

 

I jak ktoś napisze u@, wyświetla się;

 

[ADMIN]nick  tekst

 

Chciałbym zmienić [admin] na swój tekst tam w środku, i jeżeli jest to na flagę to chciałbym to też zmienić.

Prośba o wyjaśnienie/przerobienie pluginu paintballgun tak aby poprawnie działały wszys...

19.12.2015 14:25

Cześć, mam problem z pluginem paintball.

 

Do VIP'a czasem dodaje super marker (jako p90) np. w 1 rundzie mapy. Ale w 2 już nie, nawet jeśli przeżyję. I co pare rund (chyba losowo) dodaje p90 vipowi, ale nie zawsze.

 

chciałbym aby dodawało zawsze mu p90 zabierając standardowy marker, czyli mp5.

 

Plugin;

 

Ogółem rzecz biorąc;

VIP (flaga t, i flaga S) ma mieć co rundę super marker, zamiast normalnego markera (mp5), supermarker  jako p90 i do niego model, a to mi nie działa.

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


#define PLUGIN "Paintball Gun"
#define VERSION "3.4"
#define AUTHOR "WhooKid"


#define MAX_PAINTBALLS 200
#define TASK_PB_RESET 1000
#define TASK_RELOAD 2000


new g_paintballs[MAX_PAINTBALLS], g_pbstatus[MAX_PAINTBALLS], g_pbcount, Float:lastshot[33], Float:nextattack[33], freezetime;
new pbgun, pbgunvip, pbusp, pbglock, color, shots, veloc, speed, blife, sound, bglow, damge, friendlyfire, tgun, ctgun, beamspr;
new bool:ma_noz[33];


static const g_shot_anim[4] = {0, 3, 9, 5};
static const g_pbgun_models[11][] = {"models/v_pbgun.mdl", "models/v_pbgun1.mdl", "models/v_pbgun2.mdl", "models/v_pbgun3.mdl", "models/v_pbgun4.mdl", "models/v_pbgun5.mdl", "models/v_pbgun6.mdl", "models/v_pbgun7.mdl", "models/v_pbgun8.mdl", "models/v_pbgun9.mdl", "models/v_pbgun10.mdl"};


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar("paintballgun", VERSION, FCVAR_SERVER|FCVAR_UNLOGGED);
register_clcmd("say /ent", "ent_info", ADMIN_SLAY);
pbgun = register_cvar("amx_pbgun", "1");
pbgunvip= register_cvar("amx_pbgunvip", "1");
pbusp = register_cvar("amx_pbusp", "1");
pbglock = register_cvar("amx_pbglock", "1");


if (get_pcvar_num(pbgun) || get_pcvar_num(pbusp) || get_pcvar_num(pbglock))
{
register_event("CurWeapon", "ev_curweapon", "be");
register_logevent("ev_roundstart", 2, "0=World triggered", "1=Round_Start");
if (get_cvar_num("mp_freezetime") > 0)
register_event("HLTV", "ev_freezetime", "a", "1=0", "2=0");


register_forward(FM_Touch, "fw_touch");
register_forward(FM_SetModel, "fw_setmodel");
register_forward(FM_SetModel, "fw_setmodelvip");
register_forward(FM_PlayerPreThink, "fw_playerprethink", 1);
register_forward(FM_UpdateClientData, "fw_updateclientdata", 1);


color = register_cvar("pbgun_color", "2");
shots = register_cvar("pbgun_shots", "100");
veloc = register_cvar("pbgun_velocity", "2000");
speed = register_cvar("pbgun_speed", "0.08");
blife = register_cvar("pbgun_life", "15");
sound = register_cvar("pbgun_sound", "1");
bglow = register_cvar("pbgun_glow", "a");
damge = register_cvar("pbgun_damage", "100");
friendlyfire = get_cvar_pointer("mp_friendlyfire");


new a, max_ents_allow = global_get(glb_maxEntities) - 5;
for (a = 1; a <= get_pcvar_num(shots); a++)
if (a < MAX_PAINTBALLS)
if (engfunc(EngFunc_NumberOfEntities) < max_ents_allow)
{
g_paintballs[a] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if (pev_valid(g_paintballs[a]))
{
set_pev(g_paintballs[a], pev_effects, pev(g_paintballs[a], pev_effects) | EF_NODRAW);
g_pbcount++;
}
}
if (g_pbcount < 1)
set_fail_state("[AMXX] Failed to load Paintball Gun (unable to create ents)");


server_print("*** %s v%s by %s Enabled ***", PLUGIN, VERSION, AUTHOR);
}
}


public plugin_precache()
{
register_cvar("amx_pbgun", "1");
register_cvar("amx_pbgunvip", "1");
register_cvar("amx_pbusp", "1");
register_cvar("amx_pbglock", "1");
register_cvar("pbgun_tgun", "3");
register_cvar("pbgun_ctgun", "7");
tgun = get_cvar_num("pbgun_tgun");
ctgun = get_cvar_num("pbgun_ctgun");
if (get_cvar_num("amx_pbgun")) {
precache_model(g_pbgun_models[tgun]);
precache_model(g_pbgun_models[ctgun]);
precache_model((ctgun) ? "models/p_pbgun1.mdl" : "models/p_pbgun.mdl");
precache_model("models/w_pbgun.mdl");
}
if (get_cvar_num("amx_pbgunvip")) {
precache_model("models/v_pbgun2.mdl");
}
if (get_cvar_num("amx_pbusp")) {
precache_model("models/v_pbusp.mdl");
precache_model("models/p_pbusp.mdl");
}
if (get_cvar_num("amx_pbglock")) {
precache_model("models/v_pbglock.mdl");
precache_model("models/p_pbglock.mdl");
}
if (get_cvar_num("amx_pbgun") || get_cvar_num("amx_pbusp") || get_cvar_num("amx_pbglock")) {
precache_sound("misc/pb1.wav");
precache_sound("misc/pb2.wav");
precache_sound("misc/pb3.wav");
precache_sound("misc/pb4.wav");
precache_sound("misc/pbg.wav");
precache_model("models/w_paintball.mdl");
precache_model("sprites/paintball.spr");
}
beamspr = precache_model("sprites/laserbeam.spr");
}


public ent_info(id)
client_print(id, print_chat, "[AMXX] [Ent Info (Current/Max)] Paintballs: (%d/%d)   Entities: (%d/%d)", g_pbcount, get_pcvar_num(shots), engfunc(EngFunc_NumberOfEntities), global_get(glb_maxEntities));


public ev_curweapon(id)
{
new model[25];
pev(id, pev_viewmodel2, model, 24);
if (equali(model, "models/v_mp5.mdl") && get_pcvar_num(pbgun))
{
set_pev(id, pev_viewmodel2, (get_user_team(id) == 1) ? g_pbgun_models[tgun] : g_pbgun_models[ctgun]);
set_pev(id, pev_weaponmodel2, (ctgun) ? "models/p_pbgun1.mdl" : "models/p_pbgun.mdl");
}
else if (equali(model, "models/v_usp.mdl") && get_pcvar_num(pbusp))
{
set_pev(id, pev_viewmodel2, "models/v_pbusp.mdl");
set_pev(id, pev_weaponmodel2, "models/p_pbusp.mdl");
}
else if (equali(model, "models/v_glock18.mdl") && get_pcvar_num(pbglock))
{
set_pev(id, pev_viewmodel2, "models/v_pbglock.mdl");
set_pev(id, pev_weaponmodel2, "models/p_pbglock.mdl");
}
else if (equali(model, "models/v_p90.mdl") && get_pcvar_num(pbgunvip))
{
set_pev(id, pev_viewmodel2, "models/v_pbgun2.mdl");
set_pev(id, pev_weaponmodel2, (ctgun) ? "models/p_pbgun1.mdl" : "models/p_pbgun.mdl");
}
if(get_user_weapon(id) == CSW_KNIFE)
ma_noz[id]=true;
else
ma_noz[id]=false;
}


public fw_setmodel(ent, model[]) 
{
    if (equali(model, "models/w_mp5.mdl")) 
        if (get_pcvar_num(pbgun))
{
engfunc(EngFunc_SetModel, ent, "models/w_pbgun.mdl");
return FMRES_SUPERCEDE;
}
    return FMRES_IGNORED;
}
public fw_setmodelvip(ent, model[]) 
{
if (equali(model, "models/w_p90.mdl")) 
if (get_pcvar_num(pbgunvip))
{
engfunc(EngFunc_SetModel, ent, "models/w_pbgun.mdl");
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}


public fw_updateclientdata(id, sw, cd_handle)
{
if (user_has_pbgun(id) && cd_handle && !ma_noz[id])
{
set_cd(cd_handle, CD_ID, 1);
get_cd(cd_handle, CD_flNextAttack, nextattack[id]);
//set_cd(cd_handle, CD_flNextAttack, 10.0);
return FMRES_HANDLED;
}
return FMRES_IGNORED;
}


public fw_playerprethink(id)
{
new my_pbgun = user_has_pbgun(id);
if (my_pbgun && !ma_noz[id])
{
new buttons = pev(id, pev_button);
if (buttons & IN_ATTACK)
{
new ammo, null = get_user_weapon(id, ammo, null);
if (ammo)
{
set_pev(id, pev_button, buttons & ~IN_ATTACK);
new Float:gametime = get_gametime(), Float:g_speed;
if (my_pbgun == 1)
g_speed = get_pcvar_float(speed);
else
g_speed = (my_pbgun == 2) ? get_pcvar_float(speed) * 2.0 : get_pcvar_float(speed) * 3.0;
if (gametime-lastshot[id] > g_speed  && nextattack[id] < 0.0 && !freezetime)
{
if (paint_fire(id))
{
lastshot[id] = gametime;
set_user_clip(id, ammo - 1);
set_pev(id, pev_punchangle, Float:{-0.5, 0.0, 0.0});
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id);
write_byte(g_shot_anim[my_pbgun]);
write_byte(0);
message_end();
if (get_pcvar_num(sound))
emit_sound(id, CHAN_AUTO, "misc/pbg.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
}
}
}
}
return FMRES_IGNORED;
}


public paint_fire(id)
{
new a, ent;
while (a++ < g_pbcount - 1 && !ent)
if (g_pbstatus[a] == 0)
ent = g_pbstatus[a] = g_paintballs[a];
if (!ent)
while (a-- > 1 && !ent)
if (g_pbstatus[a] == 2)
ent = g_pbstatus[a] = g_paintballs[a];


if (pev_valid(ent) && is_user_alive(id) && !ma_noz[id])
{
new Float:vangles[3], Float:nvelocity[3], Float:voriginf[3], vorigin[3], clr;
set_pev(ent, pev_classname, "pbBullet");
set_pev(ent, pev_owner, id);
engfunc(EngFunc_SetModel, ent, "models/w_paintball.mdl");
engfunc(EngFunc_SetSize, ent, Float:{-1.0, -1.0, -1.0}, Float:{1.0, 1.0, 1.0});


switch (get_pcvar_num(color))
{
case 2: clr = (get_user_team(id) == 1) ? 0 : 1;
case 3: clr = (get_user_team(id) == 1) ? 4 : 3;
case 4: clr = (get_user_team(id) == 1) ? 2 : 5;
default: clr = random_num(0, 6);
}
set_pev(ent, pev_skin, clr);


get_user_origin(id, vorigin, 1);
IVecFVec(vorigin, voriginf);
engfunc(EngFunc_SetOrigin, ent, voriginf);


vangles[0] = random_float(-180.0, 180.0);
vangles[1] = random_float(-180.0, 180.0);
set_pev(ent, pev_angles, vangles);


pev(id, pev_v_angle, vangles);
set_pev(ent, pev_v_angle, vangles);
pev(id, pev_view_ofs, vangles);
set_pev(ent, pev_view_ofs, vangles);


set_pev(ent, pev_solid, 2);
set_pev(ent, pev_movetype, 5);


velocity_by_aim(id, get_pcvar_num(veloc), nvelocity);
set_pev(ent, pev_velocity, nvelocity);
set_pev(ent, pev_effects, pev(ent, pev_effects) & ~EF_NODRAW);


set_task(0.1, "paint_glow", ent);
set_task(15.0 , "paint_reset", ent+TASK_PB_RESET);
}


return ent;
}


public fw_touch(bullet, ent)
{
new class[20];
pev(bullet, pev_classname, class, 19);
if (!equali(class, "pbBullet"))
return FMRES_IGNORED;


new Float:origin[3], class2[20], owner = pev(bullet, pev_owner), is_ent_alive = is_user_alive(ent);
pev(ent, pev_classname, class2, 19);
pev(bullet, pev_origin, origin);


if (is_ent_alive)
{
if (owner == ent || pev(ent, pev_takedamage) == DAMAGE_NO)
return FMRES_IGNORED;
if (get_user_team(owner) == get_user_team(ent))
if (!get_pcvar_num(friendlyfire))
return FMRES_IGNORED;


ExecuteHam(Ham_TakeDamage, ent, owner, owner, float(get_pcvar_num(damge)), 4098);
}


if (!equali(class, class2))
{ 
set_pev(bullet, pev_velocity, Float:{0.0, 0.0, 0.0});
set_pev(bullet, pev_classname, "pbPaint");
set_pev(bullet, pev_solid, 0);
set_pev(bullet, pev_movetype, 0);
engfunc(EngFunc_SetModel, bullet, "sprites/paintball.spr");


new a, findpb = 0;
while (a++ < g_pbcount && !findpb)
if (g_paintballs[a] == bullet)
findpb = g_pbstatus[a] = 2;


remove_task(bullet);
remove_task(bullet+TASK_PB_RESET);


if (get_pcvar_num(sound))
{
static wav[20];
formatex(wav, 20, is_ent_alive ? "player/pl_pain%d.wav" : "misc/pb%d.wav", is_ent_alive ? random_num(4,7) : random_num(1,4));
emit_sound(bullet, CHAN_AUTO, wav, 1.0, ATTN_NORM, 0, PITCH_NORM);
}


new bool:valid_surface = (is_ent_alive || containi(class2, "door") != -1) ? false : true;
if (pev(ent, pev_health) && !is_ent_alive)
{
ExecuteHam(Ham_TakeDamage, ent, owner, owner, float(pev(ent, pev_health)), 0);
valid_surface = false;
}
if (valid_surface)
{
paint_splat(bullet);
set_task(float(get_pcvar_num(blife)), "paint_reset", bullet+TASK_PB_RESET);
}
else
paint_reset(bullet+TASK_PB_RESET);


return FMRES_HANDLED; 
}


return FMRES_IGNORED;
}


public paint_splat(ent)
{
new Float:origin[3], Float:norigin[3], Float:viewofs[3], Float:angles[3], Float:normal[3], Float:aiming[3];
pev(ent, pev_origin, origin);
pev(ent, pev_view_ofs, viewofs);
pev(ent, pev_v_angle, angles);


norigin[0] = origin[0] + viewofs[0];
norigin[1] = origin[1] + viewofs[1];
norigin[2] = origin[2] + viewofs[2];
aiming[0] = norigin[0] + floatcos(angles[1], degrees) * 1000.0;
aiming[1] = norigin[1] + floatsin(angles[1], degrees) * 1000.0;
aiming[2] = norigin[2] + floatsin(-angles[0], degrees) * 1000.0;


engfunc(EngFunc_TraceLine, norigin, aiming, 0, ent, 0);
get_tr2(0, TR_vecPlaneNormal, normal);


vector_to_angle(normal, angles);
angles[1] += 180.0;
if (angles[1] >= 360.0) angles[1] -= 360.0;
set_pev(ent, pev_angles, angles);
set_pev(ent, pev_v_angle, angles);


origin[0] += (normal[0] * random_float(0.3, 2.7));
origin[1] += (normal[1] * random_float(0.3, 2.7));
origin[2] += (normal[2] * random_float(0.3, 2.7));
engfunc(EngFunc_SetOrigin, ent, origin);
set_pev(ent, pev_frame, float(random_num( (pev(ent, pev_skin) * 18), (pev(ent, pev_skin) * 18) + 17 ) ));
if (pev(ent, pev_renderfx) != kRenderFxNone)
set_rendering(ent);
}


public paint_glow(ent)
{
if (pev_valid(ent))
{
static pbglow[5], clr[3];
get_pcvar_string(bglow, pbglow, 4);
switch (get_pcvar_num(color))
{
case 2: clr = (get_user_team(pev(ent, pev_owner))==1) ? {255, 0, 0} : {0, 0, 255};
default: clr = {255, 255, 255};
}
if (read_flags(pbglow) & (1 << 0))
set_rendering(ent, kRenderFxGlowShell, clr[0], clr[1], clr[2], kRenderNormal, 255);
if (read_flags(pbglow) & (1 << 1))
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW);
write_short(ent);
write_short(beamspr);
write_byte(4);
write_byte(2);
write_byte(clr[0]);
write_byte(clr[1]);
write_byte(clr[2]);
write_byte(255);
message_end();
}
}
}


public paint_reset(ent)
{
remove_task(ent);
ent -= TASK_PB_RESET;
new a, findpb = 1;
while (a++ <= g_pbcount && findpb)
if (g_paintballs[a] == ent)
findpb = g_pbstatus[a] = 0;


set_pev(ent, pev_effects, pev(ent, pev_effects) | EF_NODRAW);
engfunc(EngFunc_SetSize, ent, Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0});
set_pev(ent, pev_velocity, Float:{0.0, 0.0, 0.0});
engfunc(EngFunc_SetOrigin, ent, Float:{-2000.0, -2000.0, -2000.0});
if (pev(ent, pev_renderfx) != kRenderFxNone)
set_rendering(ent);
}


public ev_roundstart()
{
for (new a = 1; a <= g_pbcount; a++)
if (g_pbstatus[a] != 0)
paint_reset(g_paintballs[a]+TASK_PB_RESET);
if (freezetime)
freezetime = 0;
}


public ev_freezetime()
freezetime = 1;


stock user_has_pbgun(id)
{
if (is_user_alive(id) && !ma_noz[id])
{
new model[25];
pev(id, pev_viewmodel2, model, 24);
if (containi(model, "models/v_pbgun") != -1)
return 1;
else if (containi(model, "models/v_pbgun2")  != -1)
return 1;
else if (equali(model, "models/v_pbusp.mdl"))
return 2;
else if (equali(model, "models/v_pbglock.mdl"))
return 3;
}
return 0;
}


stock set_user_clip(id, ammo)
{
new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
get_weaponname(weapon, weaponname, 31);
while ((weaponid = engfunc(EngFunc_FindEntityByString, weaponid, "classname", weaponname)) != 0)
if (pev(weaponid, pev_owner) == id) {
set_pdata_int(weaponid, 51, ammo, 4);
return weaponid;
}
return 0;
}


// teame06's function
stock set_rendering(index, fx=kRenderFxNone, r=0, g=0, b=0, render=kRenderNormal, amount=16)
{
set_pev(index, pev_renderfx, fx);
new Float:RenderColor[3];
RenderColor[0] = float(r);
RenderColor[1] = float(g);
RenderColor[2] = float(b);
set_pev(index, pev_rendercolor, RenderColor);
set_pev(index, pev_rendermode, render);
set_pev(index, pev_renderamt, float(amount));
}

 

Prośba o skompilowanie VIPa tak, aby były w nim wszystkie potrzebne rzeczy podane w tem...

16.12.2015 22:38

Siema, mam problem z kompialcją vipa, bo musiałem wkleić sam kod dodawania broni p90, do gotowego sma vipa. Ale nie wiedziałem gdzie je wkleić. W którym miejscu.

 

Więc wkleiłem tam gdzie uważałem to za słuszne. Chcę aby; 

- Co rundę była dodawana broń p90 ale DOSŁOWNIE przed rozpoczęciem rundy, to znaczy; freezetime jest 3, i jak jest 0:00 to dopiero sie dodaje broń, bo usuwa mi plugin paintballa bron która jest dodana przed rozpoczęciem rundy.

Chciałym też żeby znalazła się tam szybkostrzelność z p90 ale nie umiem tego zrobić. (nie odsyłajcie mnie do generatora, bo nie potrafię wykorzystać samego kodu sma, dodając go do gotowca vipa.)

 

I w związku z tym że jest to paintball, a Ja tym modem się posługiwać nie umiem, prosiłbym o dodanie modelu broni i tych całych kulek, bo nie potrafię tego zrobić bo jestem inny i nie łapie amxxa, poza przerabianiem łatwtych pluginów :V

#include <amxmodx>
#include <colorchat>
#include <cstrike>
#include <csx>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define FL_ONGROUND (1<<9)
#define FL_WATERJUMP (1<<11)
#define client_PreThinkVip

forward amxbans_admin_connect(id);

new Array:g_Array, bool:g_Vip[33], g_Hudmsg, skoki[33], weapon_id;

new const g_Langcmd[][]={"say /svips","say_team /svips","say /svipy","say_team /svipy"};
new const g_Prefix[] = "Vip Chat";

public plugin_init(){
	register_plugin("VIP Ultimate", "12.3.0.2", "benio101 & speedkill");
	RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
	register_forward(FM_CmdStart, "CmdStartPre");
	register_event("DeathMsg", "DeathMsg", "a");
	g_Array=ArrayCreate(64,32);
	for(new i;i<sizeof g_Langcmd;i++){
		register_clcmd(g_Langcmd[i], "ShowVips");
	}
}
	register_clcmd("say /supervip", "ShowMotd");
	set_task(30.0, "ShowAdv",.flags = "b");
	register_clcmd("say_team", "VipChat");
	register_message(get_user_msgid("SayText"),"handleSayText");
	g_Hudmsg=CreateHudSyncObj();
}
public client_authorized(id){
	if(get_user_flags(id) & 262144 == 262144){
		client_authorized_vip(id);
	}
}
public client_authorized_vip(id){
	g_Vip[id]=true;
	new g_Name[64];
	get_user_name(id,g_Name,charsmax(g_Name));
	
	new g_Size = ArraySize(g_Array);
	new szName[64];
	
	for(new i = 0; i < g_Size; i++){
		ArrayGetString(g_Array, i, szName, charsmax(szName));
		
		if(equal(g_Name, szName)){
			return 0;
		}
	}
}
	ArrayPushString(g_Array,g_Name);
	set_hudmessage(24, 190, 220, 0.25, 0.2, 0, 6.0, 6.0);
	ShowSyncHudMsg(0, g_Hudmsg, "Super VIP %s wbija na serwer !",g_Name);
	
	return PLUGIN_CONTINUE;
}
public client_disconnect(id){
	if(g_Vip[id]){
		client_disconnect_vip(id);
	}
}
public client_disconnect_vip(id){
	g_Vip[id]=false;
	new Name[64];
	get_user_name(id,Name,charsmax(Name));
	
	new g_Size = ArraySize(g_Array);
	new g_Name[64];
	
	for(new i = 0; i < g_Size; i++){
		ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
		
		if(equal(g_Name,Name)){
			ArrayDeleteItem(g_Array,i);
			break;
		}
	}
}
public SpawnedEventPre(id){
	if(g_Vip[id]){
		if(is_user_alive(id)){
			SpawnedEventPreVip(id);
		}
	}
}
public SpawnedEventPreVip(id){
	set_user_footsteps(id,1);
	skoki[id]=2;
	set_user_health(id, get_user_health(id)+50);
	give_item(id, "weapon_p90");
	give_item(id, "ammo_57mm");
	weapon_id=find_ent_by_owner(-1, "weapon_p90", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 100);
	cs_set_user_bpammo(id, CSW_P90, 1000);
}
public CmdStartPre(id, uc_handle){
	if(g_Vip[id]){
		if(is_user_alive(id)){
			CmdStartPreVip(id, uc_handle);
		}
	}
}
public CmdStartPreVip(id, uc_handle){
	new flags = pev(id, pev_flags);
	if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id]>0){
		--skoki[id];
		new Float:velocity[3];
		pev(id, pev_velocity,velocity);
		velocity[2] = random_float(265.0,285.0);
		set_pev(id,pev_velocity,velocity);
	} else if(flags & FL_ONGROUND && skoki[id]!=-1){
		skoki[id] = 2;
	}
}
public DeathMsg(){
	new killer=read_data(1);
	new victim=read_data(2);
	
	if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){
		DeathMsgVip(killer,victim,read_data(3));
	}
}
public DeathMsgVip(kid,vid,hs){
	cs_set_user_money(kid, cs_get_user_money(kid)+(hs?600:400));
}
public ShowVips(id){
	return PLUGIN_CONTINUE;
}
public client_infochanged(id){
	if(g_Vip[id]){
		new szName[64];
		get_user_info(id,"name",szName,charsmax(szName));
		
		new Name[64];
		get_user_name(id,Name,charsmax(Name));
		
		if(!equal(szName,Name)){
			ArrayPushString(g_Array,szName);
			
			new g_Size=ArraySize(g_Array);
			new g_Name[64];
			for(new i = 0; i < g_Size; i++){
				ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
				
				if(equal(g_Name,Name)){
					ArrayDeleteItem(g_Array,i);
					break;
				}
			}
		}
	}
}
public plugin_end(){
	ArrayDestroy(g_Array);
}
public ShowMotd(id){
	show_motd(id, "supervip.txt", "Informacje o vipie");
}
public ShowAdv(){
	ColorChat(0, NORMAL, "[Super VIP]^x04 Chcesz dowiedziec sie co posiada Super VIP? Napisz na say'u /supervip");
}
public VipChat(id){
	if(g_Vip[id]){
		new g_Msg[256],
		g_Text[256];
		
		read_args(g_Msg,charsmax(g_Msg));
		remove_quotes(g_Msg);
		
		if(g_Msg[0] == '!' && g_Msg[1]){
			new g_Name[64];
			get_user_name(id,g_Name,charsmax(g_Name));
			
			formatex(g_Text,charsmax(g_Text),"^x01(%s) ^x03%s : ^x04%s",g_Prefix, g_Name, g_Msg[1]);
			
			for(new i=1;i<33;i++){
				if(is_user_connected(i) && g_Vip[i])
				ColorChat(i, GREEN, "%s", g_Text);
			}
			return PLUGIN_HANDLED_MAIN;
		}
	}
	return PLUGIN_CONTINUE;
}
public handleSayText(msgId,msgDest,msgEnt){
	new id = get_msg_arg_int(1);
	
	if(is_user_connected(id) && g_Vip[id]){
		new szTmp[256],szTmp2[256];
		get_msg_arg_string(2,szTmp, charsmax(szTmp))
		
		new szPrefix[64] = "^x04[Super VIP]";
		
		if(!equal(szTmp,"#Cstrike_Chat_All")){
			add(szTmp2,charsmax(szTmp2),szPrefix);
			add(szTmp2,charsmax(szTmp2)," ");
			add(szTmp2,charsmax(szTmp2),szTmp);
		}
		else{
			add(szTmp2,charsmax(szTmp2),szPrefix);
			add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 :  %s2");
		}
		set_msg_arg_string(2,szTmp2);
	}
	return PLUGIN_CONTINUE;
}
public bomb_planted(id){
	if(is_user_alive(id) && g_Vip[id]){
		cs_set_user_money(id,cs_get_user_money(id) + 400);
	}
}
public bomb_defused(id){
	if(is_user_alive(id) && g_Vip[id]){
		cs_set_user_money(id,cs_get_user_money(id) + 400);
	}
}
public client_PreThink(id){
	if(g_Vip[id] && is_user_alive(id)){
		client_PreThinkVip(id);
	}
	return PLUGIN_CONTINUE;
}
public amxbans_admin_connect(id){
	client_authorized(id);
}

Plugin podmieniający bronie na PaintBall mod nie działa poprawnie

16.12.2015 17:20

Siema, mam serwer paintball, próbowałem dodawać do VIP'a / SuperVIP'a p90 jako dodatkowy 'super marker', ale na początku rundy zawsze usuwało wszystkie bronie i dodawało mp5, glocka/usp i tyle.

 

Czy jeżeli zmienię dodawanie broni z mp5 na p90+mp5, lub dodam opcję przy nowym vipie żeby nie usuwało broni głównej gdy dodaje mp5, to będzie działało?

 

Nie chciałbym popsuć VIP'a / Svipa, bo nie umiem tego dodać/zmienić. Prosiłbym może o dodanie p90 + modelu do vipa / supervipa, i przy okazji, jeżeli to nie problem, żeby był wybór w menu;

 

Supermarker - jako p90

Zwykly Marker - jako mp5

 

VIP'y mam stąd;

http://amxx.pl/topic...p-na-paintball/- odpowiedź ST3FAN

 

Resztę potrafię ustawić sam. Chcę tylko aby było to menu z bronią, i modele. Bo nie mogę znaleźć modeli do tego.

Szukam vipa na Paint Ball

14.12.2015 16:13

Siema, szukam vipa na paintball;

101 hp

menu broni;

mp5 (zwykły marker)

p90 (specjalny marker)

+ modele do tego z tymi kuleczkami całymi śmiesznymi xD

podwójny skok

motd które napiszę sam

 

 

Nie mogę skorzystać z generatora bo nie daje On takiej opcji, a potrzebuję go też na szybko.