Русское сообщество по скриптингу

error 088: number of arguments does not match definition

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

error 088: number of arguments does not match definition

Сообщение Marsh » 25 апр 2018, 20:38

error 088: number of arguments does not match definition при компиле выбивает ошибку
Код: Выделить всё
#include <amxmodx>
#include <engine>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <fun>
#include <colorchat>
#include <dhudmessage>
#include <zombieplague>

 

#define SNOW_MAN         "models/snowman.mdl"
#define SNOW_MAN_HP      10000.0
#define SNOW_MAN_HIT     20
#define SNOW_MAN_CLASS_NAME      "show_man"

 

#define SNOW_MAN_SOUND_IDLE      "snow_idle.wav"
#define SNOW_MAN_SOUND_DIE       "snow_die.wav"

 
new spr_blood_drop
, spr_blood_spray
new g_NpcDead
;
new Float:g_vecSnowManSpawnPos[3];
new g_iRound;

public plugin_init()

{
register_plugin("ShowMans", "0.1", "fl0wer")
register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0")
register_logevent("Event_NewRoundStarted", 2, "1=Round_Start")
register_logevent("Event_NewRoundEnd", 2, "1=Round_End")
register_clcmd("coord_snowman", "clcmd_coord_snowman", ADMIN_BAN)
register_clcmd("say show", "clcmd_show")

RegisterHam(Ham_Think, "info_target", "Entity_Think")

RegisterHam(Ham_TakeDamage, "info_target", "Entity_TakeDamage_Post", 1)

RegisterHam(Ham_Killed, "info_target", "Entity_Killed")

RegisterHam(Ham_TraceAttack, "info_target", "Entity_TraceAttack")

}

 

public coord_snowman
(id)

{

if (cs_get_user_team(id) == CS_TEAM_T)

{

ColorChat(id, GREEN, "[Fayting] ^1Доступно только для ^4омона")

}

else

{

ColorChat(id,RED, "[Fayting] Респавн снеговиков добавлен!")

}

}

 

public plugin_precache
()

{

spr_blood_drop = precache_model("sprites/blood.spr") 

spr_blood_spray 
= precache_model("sprites/bloodspray.spr")

 

precache_model
(SNOW_MAN)

 

precache_sound
(SNOW_MAN_SOUND_IDLE)

precache_sound(SNOW_MAN_SOUND_DIE)

load_spawn()

}

 

public clcmd_coord_snowman
(id, access)

{

if(!(
get_user_flags(id) & access))

return PLUGIN_CONTINUE;

 

new Float
:vecOrigin[3], szOrigin[39];

 

pev
(id, pev_origin, vecOrigin)

formatex(szOrigin, charsmax(szOrigin), "%f %f %f", vecOrigin[0], vecOrigin[1], vecOrigin[2])

 

new szFile
[32];

 

get_mapname
(szFile, charsmax(szFile))

 

format
(szFile, charsmax(szFile), "maps/%s.snowman", szFile)

 

write_file
(szFile, szOrigin, 0)

 

return PLUGIN_HANDLED
;

}

 

public Event_RoundStart
()

{

g_iRound--;

 

if(g_iRound < 0)

g_iRound = 4;

 

static entity
;

entity = -1;

while((
entity = engfunc(EngFunc_FindEntityByString, entity, "classname", SNOW_MAN_CLASS_NAME)))

{

engfunc(EngFunc_RemoveEntity, entity)

}

}

 

public Event_NewRoundStarted
()

{

if(
g_iRound)

set_task(10.0, "clcmd_show")

}

 

public Event_NewRoundEnd
()

{

remove_task()

}

 

public Entity_Think
(ent) 

{ 

if(!is_valid_ent(ent))

return;

 

static szClassName
[32]; 

entity_get_string
(ent, EV_SZ_classname, szClassName, charsmax(szClassName)) 

 

if(!equali(szClassName, SNOW_MAN_CLASS_NAME)) 

return;

 

if(g_NpcDead) 

return;

 

entity_set_float
(ent, EV_FL_animtime, get_gametime()) 

entity_set_float
(ent, EV_FL_framerate, 1.0) 

entity_set_int
(ent, EV_INT_sequence, 1)

 

entity_set_float
(ent, EV_FL_nextthink, get_gametime() + random_float(5.0, 10.0))

}

 

public Entity_TakeDamage_Post
(victim, inflicator, attacker, Float:damage, damage_type)

{

if(!
is_user_connected(attacker))

return;

 

new szClassName
[32];

entity_get_string(victim, EV_SZ_classname, szClassName, charsmax(szClassName))

 

if(equal(szClassName, SNOW_MAN_CLASS_NAME)) 

{

emit_sound(victim, CHAN_VOICE, SNOW_MAN_SOUND_IDLE, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)

zp_get_user_ammo_packs(attacker, zp_get_user_ammo_packs(attacker) + SNOW_MAN_HIT)

}

}

 

public Entity_Killed
(victim, attacker, shouldgin)

{

new szClassName[32];

entity_get_string(victim, EV_SZ_classname, szClassName, charsmax(szClassName))

 

if(!equal(szClassName, SNOW_MAN_CLASS_NAME)) 

return HAM_IGNORED
;

 

entity_set_float
(victim, EV_FL_animtime, get_gametime()); 

entity_set_float
(victim, EV_FL_framerate, 1.0)

entity_set_int(victim, EV_INT_sequence, 7)

 

entity_set_int
(victim, EV_INT_solid, SOLID_NOT)

 

emit_sound
(victim, CHAN_VOICE, SNOW_MAN_SOUND_DIE, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)

 

g_NpcDead 
= true;

 

return HAM_SUPERCEDE
;

}

 

public Entity_TraceAttack
(ent, attacker, Float:damage, Float:direction[3], trace, damage_type) 

{ 

if(!is_valid_ent(ent)) 

return; 

 

new szClassName
[32]; 

entity_get_string
(ent, EV_SZ_classname, szClassName, charsmax(szClassName)) 

 

if(!equali(szClassName, SNOW_MAN_CLASS_NAME)) 

return; 

 

new Float
:end[3];

get_tr2(trace, TR_vecEndPos, end)

 

message_begin
(MSG_BROADCAST,SVC_TEMPENTITY)

write_byte(TE_BLOODSPRITE)

engfunc(EngFunc_WriteCoord, end[0])

engfunc(EngFunc_WriteCoord, end[1])

engfunc(EngFunc_WriteCoord, end[2])

write_short(spr_blood_spray)

write_short(spr_blood_drop)

write_byte(247)

write_byte(random_num(5, 10))

message_end()

}

 

public clcmd_show
(id)

{

new ent = create_entity("info_target");

 

if(!is_valid_ent(ent))

return;

 

entity_set_string
(ent, EV_SZ_classname, SNOW_MAN_CLASS_NAME)

entity_set_model(ent, SNOW_MAN)

entity_set_size(ent, Float:{ -16.0, -16.0, -36.0 }, Float:{ 16.0, 16.0, 36.0 })

entity_set_float(ent, EV_FL_health, SNOW_MAN_HP)

entity_set_float(ent, EV_FL_takedamage, DAMAGE_AIM)

entity_set_int(ent, EV_INT_solid, SOLID_BBOX)

entity_set_int(ent, EV_INT_sequence, 0)

entity_set_float(ent, EV_FL_nextthink, get_gametime() + 0.01)

entity_set_origin(ent, g_vecSnowManSpawnPos)

drop_to_floor(ent)

g_NpcDead = false;

}

 

load_spawn
()

{

new szFile[32], szSpawn[39], szSpawns[3][13];

 

get_mapname
(szFile, charsmax(szFile))

 

format
(szFile, charsmax(szFile), "maps/%s.snowman", szFile)

 

if(!file_exists(szFile))

return;

 

new iLen
;

 

read_file
(szFile, 0, szSpawn, charsmax(szSpawn), iLen)

 

parse
(szSpawn, szSpawns[0], 12, szSpawns[1], 12, szSpawns[2], 12)

 

g_vecSnowManSpawnPos
[0] = floatstr(szSpawns[0]);

g_vecSnowManSpawnPos[1] = floatstr(szSpawns[1]);

g_vecSnowManSpawnPos[2] = floatstr(szSpawns[2]);

}
Аватара пользователя
Marsh
 
Сообщения: 6
Зарегистрирован: 24 мар 2018, 13:18
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: C++
PascalABC

Re: error 088: number of arguments does not match definition

Сообщение Mandar1n » 26 апр 2018, 00:51

У тебя в 256 строчке
Код: Выделить всё
zp_get_user_ammo_packs

должно быть
Код: Выделить всё
zp_set_user_ammo_packs
Аватара пользователя
Mandar1n
 
Сообщения: 133
Зарегистрирован: 08 дек 2013, 14:08
Благодарил (а): 38 раз.
Поблагодарили: 4 раз.
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 4

cron