←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

VIP - 1 linijka do poprawy

ogury - zdjęcie ogury 05.01.2012

Spoiler

Trzeba poprawić tą linijkę:
RegisterHam(Ham_Spawn, "player", "fwSpawn", 1);
Ale nie wiem, co zamiast "player" wpisać, aby rzeczy dostawał tylko VIP, a nie każdy gracz (aktualnie tak jest) wystarczy ADMIN_VIP, czy jak?
pozapominałem wszystkiego ;[
Użytkownik ogury edytował ten post 05.01.2012 22:55
Odpowiedz

naXe - zdjęcie naXe 05.01.2012

#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <ColorChat>
#define ADMIN_VIP ADMIN_LEVEL_H
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD (1<<0)
#define SCOREATTRIB_BOMB (1<<1)
#define SCOREATTRIB_VIP (1<<2)
public plugin_init() {
register_plugin("VIP", "1.0", "rozni posklejany kod")
register_clcmd("say /vips", "pokaz_vipow")
RegisterHam(Ham_Spawn, "player", "fwSpawn", 1)
register_clcmd("say /vipy", "pokaz_vipow")
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib")
}
public MessageScoreAttrib(iMsgID, iDest, iReceiver)
{
new iPlayer = get_msg_arg_int(1);
if( is_user_connected(iPlayer) && (get_user_flags(iPlayer) & ADMIN_VIP))
{
set_msg_arg_int( 2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
}
public fwSpawn(id) {
if( is_user_connected(id) && is_user_alive(id) && (get_user_flags(id) & ADMIN_VIP)) {
give_item(id, "weapon_flashbang")
give_item(id, "weapon_deagle")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
set_task(1.0, "zycie", id, _, _, "b")
}
}

public zycie(id) {
if( is_user_alive(id) )
{
new iHealth = get_user_health(id)
if(iHealth < 5)
{
set_user_health(id, 35)
}
else
{
remove_task(id)
}
}
}
public pokaz_vipow(id)
{
new players[32];
new playersNum;
new player;
new vipNum=0;
ColorChat(id, GREEN, "[GetFrag.pl]^x01 Vipy online:");
get_players(players, playersNum,"a");{
vipNum++;
for(new i=0;i<playersNum;i++)
{
player=players[i];
new playerName[32];
get_user_name(player,playerName,31);
if(get_user_flags(player) & ADMIN_LEVEL_H)
{
ColorChat(id,GREEN,"%s",playerName);
}
}
}
if(vipNum==0)
{
ColorChat(id, GREEN, "[GetFrag.pl]^x01 Zaden z vipow nie jest teraz w grze")
}
}
Odpowiedz

respect4umdex - zdjęcie respect4umdex 05.01.2012

nie rozumiem .. chcesz aby Gracz który zakupił vipa go dostawał tak ?
Odpowiedz

ogury - zdjęcie ogury 05.01.2012

Niet. Chodzi o to, że każdy gracz dostaje to, co powinien dostawać vip, czyli armor, deagle itp.
naxe:
dzięki.
Użytkownik ogury edytował ten post 05.01.2012 23:16
Odpowiedz

naXe - zdjęcie naXe 05.01.2012

Zamiast:
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")

Daj:
cs_set_user_bpammo(id, CSW_DEAGLE, 46)
Odpowiedz

ogury - zdjęcie ogury 06.01.2012

Różnicy nie ma, 6 linijek kodu mniej, ale dzięki.
Spoiler

Wszystko działa, oprócz 2 rzeczy. Mianowicie jak vip ma poniżej 5 hp, to powinno mu odnowić do 35, ale tak nie jest.
Po drugie jak jesteś w tt to nie pokazuje VIP w tabeli, tylko w CT.
Użytkownik ogury edytował ten post 06.01.2012 10:29
Odpowiedz