Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma semicolon 1
- #pragma ctrlchar '\'
- new PLUGIN[12] =
- {
- 88, 51, 77, 32, 124, 32, 65, 114, 101, 110, 97, 0
- }
- new VERSION[4] =
- {
- 49, 46, 48, 0
- }
- new AUTHOR[5] =
- {
- 65, 73, 84, 68, 0
- }
- new gszInfoTarget[12] =
- {
- 105, 110, 102, 111, 95, 116, 97, 114, 103, 101, 116, 0
- }
- new gszBlockModel[17] =
- {
- 109, 111, 100, 101, 108, 115, 47, 97, 114, 101, 110, 97, 46, 109, 100, 108, 0
- }
- new Float:BlockAnglesX[3] =
- {
- 0, 1119092736, 1119092736
- }
- new Float:BlockSizeMinX[3] =
- {
- -1045692416, -1090519040, -1029963776
- }
- new Float:BlockSizeMaxX[3] =
- {
- 1125679104, 1056964608, 1117519872
- }
- new Float:BlockAnglesY[3] =
- {
- 1119092736, 0, 0
- }
- new Float:BlockSizeMinY[3] =
- {
- -1021804544, -1029898240, -1090519040
- }
- new Float:BlockSizeMaxY[3] =
- {
- 1101791232, 1117585408, 1056964608
- }
- new Float:BlockAnglesZ[3];
- new Float:BlockSizeMinZ[3] =
- {
- -1090519040, -1029963776, -1045692416
- }
- new Float:BlockSizeMaxZ[3] =
- {
- 1056964608, 1117519872, 1125679104
- }
- new Float:ArrayArenaA[38][3] =
- {
- {
- 1145896960, -1006338048, -1000767488
- },
- {
- 1148682240, -1006338048, -1000767488
- },
- Error on write global ArrayArenaA: Индекс находился вне границ массива.
- new Float:ArrayArenaB[38][3] =
- {
- {
- 1145896960, -990904320, -1000767488
- },
- {
- 1148682240, -990904320, -1000767488
- },
- Error on write global ArrayArenaB: Индекс находился вне границ массива.
- new bool:g_bArenaCreate[4];
- new ArenaEnt[4][38];
- new ids[33][33];
- new menu[33];
- new mpl;
- new Duel[33];
- new InDuel[33];
- new g_DuelKills[33];
- new g_Origin[4][3] =
- {
- {
- 687, -375, -800
- },
- {
- 1330, -375, -800
- },
- Error on write global g_Origin: Индекс находился вне границ массива.
- new Float:g_Angles[4][3] =
- {
- {
- 0, ...
- },
- {
- 0, 1127481344, 0
- },
- Error on write global g_Angles: Индекс находился вне границ массива.
- set_rendering(index, fx, r, g, b, render, amount)
- {
- entity_set_int(index, EV_INT_renderfx, fx);
- new Float:RenderColor[3];
- RenderColor[0] = float(r);
- RenderColor[1] = float(g);
- RenderColor[2] = float(b);
- entity_set_vector(index, 17, RenderColor);
- entity_set_int(index, EV_INT_rendermode, render);
- entity_set_float(index, EV_FL_renderamt, float(amount));
- return 1;
- }
- fm_set_user_health(index, health)
- {
- !!! Removed Phi
- if (health > 0)
- {
- set_pev(index, pev_health, float(health));
- }
- else
- {
- dllfunc(DLLFunc_ClientKill, index);
- }
- return 1;
- }
- public plugin_precache()
- {
- precache_model(gszBlockModel);
- return 0;
- }
- public plugin_init()
- {
- register_plugin(PLUGIN, "1.0", "AITD");
- register_event("ResetHUD", "eventPlayerSpawn", "b", "");
- register_event("DeathMsg", "eventDeathMsg", "a", "1>0", "4=knife");
- register_clcmd("say /kdc", "show_kdc", -1, "", -1);
- register_clcmd("say /duel", "show_kdc", -1, "", -1);
- register_menucmd(register_menuid("knife duel", 0), 1023, "knifeduel_menu");
- mpl = get_maxplayers();
- set_task(45.00, "arenamsg", 0, "", 0, "b", 0);
- return 0;
- }
- public eventPlayerSpawn(id)
- {
- new var3 = InDuel;
- new var2;
- if (var3[id][0][0])
- {
- new var4 = InDuel;
- new var1;
- switch (var4[id][0][0])
- {
- case 1:
- {
- if (cs_get_user_team(id, 0) != 1)
- {
- cs_set_user_team(id, 1, _}:0);
- }
- new var6 = g_Origin;
- set_user_origin(id, var6[0][0][var6]);
- new var7 = g_Angles;
- set_pev(id, pev_angles, var7[0][0][var7]);
- set_pev(id, pev_fixangle, 1);
- var1 = Heap_-4;
- }
- case 2:
- {
- if (cs_get_user_team(id, 0) != 2)
- {
- cs_set_user_team(id, 2, _}:0);
- }
- set_user_origin(id, g_Origin[1][0]);
- set_pev(id, pev_angles, g_Angles[1][0]);
- set_pev(id, pev_fixangle, 1);
- var1 = Heap_-4;
- }
- case 3:
- {
- if (cs_get_user_team(id, 0) != 1)
- {
- cs_set_user_team(id, 1, _}:0);
- }
- set_user_origin(id, g_Origin[2][0]);
- set_pev(id, pev_angles, g_Angles[2][0]);
- set_pev(id, pev_fixangle, 1);
- var1 = Heap_-4;
- }
- case 4:
- {
- if (cs_get_user_team(id, 0) != 2)
- {
- cs_set_user_team(id, 2, _}:0);
- }
- set_user_origin(id, g_Origin[3][0]);
- new var5 = g_Angles[3];
- set_pev(id, pev_angles, var5[0]);
- var1 = var5;
- }
- default:
- {
- var1 = var4;
- }
- }
- fm_set_user_health(id, 35);
- give_item(id, "weapon_knife");
- var2 = var1;
- }
- else
- {
- var2 = var3;
- }
- return 0;
- }
- public eventDeathMsg()
- {
- new killer = read_data(1);
- new victim = read_data(2);
- new var6 = InDuel;
- new var1;
- new var2;
- if (var6[killer][0][0])
- {
- new var7 = InDuel;
- if (var7[victim][0][0])
- {
- var2 = var7;
- if (ERROR: Phi)
- {
- new killerName[32];
- new victimName[32];
- get_user_name(killer, killerName, 31);
- get_user_name(victim, victimName, 31);
- g_DuelKills[killer]++;
- ColorMessage(killer, "\4[ %s ] \1%s \4vs \1%s - \4%d \1/ \4%d", PLUGIN, killerName, victimName, g_DuelKills[killer], g_DuelKills[victim]);
- ColorMessage(victim, "\4[ %s ] \1%s \4vs \1%s - \4%d \1/ \4%d", PLUGIN, victimName, killerName, g_DuelKills[victim], g_DuelKills[killer]);
- new var8 = g_DuelKills;
- new var5;
- if (var8[killer][0][0] == 10)
- {
- new var9 = InDuel;
- new var3;
- new var4;
- if (var9[killer][0][0] == 1)
- {
- var3 = var9;
- }
- else
- {
- new var10 = InDuel;
- if (var10[killer][0][0] == 2)
- {
- var3 = var10;
- }
- var4 = var10;
- if (ERROR: Phi)
- {
- deleteArena(0);
- }
- else
- {
- deleteArena(1);
- }
- g_DuelKills[killer] = 0;
- g_DuelKills[victim] = 0;
- InDuel[killer] = 0;
- new var11 = InDuel[victim];
- var11 = 0;
- var5 = var11;
- }
- var4 = var3;
- if (ERROR: Phi)
- {
- deleteArena(0);
- }
- else
- {
- deleteArena(1);
- }
- g_DuelKills[killer] = 0;
- g_DuelKills[victim] = 0;
- InDuel[killer] = 0;
- new var11 = InDuel[victim];
- var11 = 0;
- var5 = var11;
- }
- else
- {
- var5 = var8;
- }
- new svIndex[2];
- svIndex[0] = killer;
- svIndex[1] = victim;
- set_task(0.50, "respawn", 0, svIndex, 2, "", 0);
- }
- return 0;
- }
- var1 = var7;
- }
- else
- {
- var1 = var6;
- }
- var2 = var1;
- if (ERROR: Phi)
- {
- new killerName[32];
- new victimName[32];
- get_user_name(killer, killerName, 31);
- get_user_name(victim, victimName, 31);
- g_DuelKills[killer]++;
- ColorMessage(killer, "\4[ %s ] \1%s \4vs \1%s - \4%d \1/ \4%d", PLUGIN, killerName, victimName, g_DuelKills[killer], g_DuelKills[victim]);
- ColorMessage(victim, "\4[ %s ] \1%s \4vs \1%s - \4%d \1/ \4%d", PLUGIN, victimName, killerName, g_DuelKills[victim], g_DuelKills[killer]);
- new var8 = g_DuelKills;
- new var5;
- if (var8[killer][0][0] == 10)
- {
- new var9 = InDuel;
- new var3;
- new var4;
- if (var9[killer][0][0] == 1)
- {
- var3 = var9;
- }
- else
- {
- new var10 = InDuel;
- if (var10[killer][0][0] == 2)
- {
- var3 = var10;
- }
- var4 = var10;
- if (ERROR: Phi)
- {
- deleteArena(0);
- }
- else
- {
- deleteArena(1);
- }
- g_DuelKills[killer] = 0;
- g_DuelKills[victim] = 0;
- InDuel[killer] = 0;
- new var11 = InDuel[victim];
- var11 = 0;
- var5 = var11;
- }
- var4 = var3;
- if (ERROR: Phi)
- {
- deleteArena(0);
- }
- else
- {
- deleteArena(1);
- }
- g_DuelKills[killer] = 0;
- g_DuelKills[victim] = 0;
- InDuel[killer] = 0;
- new var11 = InDuel[victim];
- var11 = 0;
- var5 = var11;
- }
- else
- {
- var5 = var8;
- }
- new svIndex[2];
- svIndex[0] = killer;
- svIndex[1] = victim;
- set_task(0.50, "respawn", 0, svIndex, 2, "", 0);
- }
- return 0;
- }
- public respawn(String:svIndex[])
- {
- new vIndex = svIndex[0];
- new vIndex2 = svIndex[1];
- spawn(vIndex);
- spawn(vIndex2);
- return 0;
- }
- public show_kdc(id)
- {
- !!! Removed Phi
- if (InDuel[id][0][0])
- {
- ColorMessage(id, "\4[ %s ] \1please wait\4!", PLUGIN);
- }
- else
- {
- if (g_bArenaCreate[0][0] && g_bArenaCreate[1][0])
- {
- ColorMessage(id, "\4[ %s ] \1no free arenas\4!", PLUGIN);
- }
- menu[id] = 0;
- show_duel_menu(id, 0);
- }
- return 0;
- }
- public show_duel_menu(id, pos)
- {
- !!! Removed Phi
- if (0 > pos)
- {
- return 1;
- }
- new body[1024];
- new name[32];
- new keys = 512;
- new len = 0;
- new num = 0;
- new pid = 0;
- new key = 0;
- new p = 0;
- while (p < mpl)
- {
- if (!is_user_connected(p) || is_user_bot(p) || is_user_hltv(p))
- {
- }
- else
- {
- num++;
- ids[id][0][0][num] = p;
- }
- p++;
- }
- new start = pos * 8;
- if (start > num)
- {
- return show_duel_menu(id, pos + -1);
- }
- new end = start + 8;
- if (end > num)
- {
- end = num;
- }
- len = format(body, 1023, "\w[ \r%s\w ]\n\n", PLUGIN);
- new i = start;
- while (i < end)
- {
- pid = ids[id][0][0][i];
- get_user_name(pid, name, 31);
- if (get_user_userid(pid) == get_user_userid(id))
- {
- key++;
- len = format(body[len], 1023 - len, "\d%d. %s \n", key, name) + len;
- i++;
- }
- else
- {
- if (InDuel[pid][0][0])
- {
- key++;
- len = format(body[len], 1023 - len, "\d%d. \w%s \r (\win duel\r) \n", key, name) + len;
- i++;
- }
- keys = 1 << key | keys;
- key++;
- len = format(body[len], 1023 - len, "\r%d. \w%s\n", key, name) + len;
- i++;
- }
- i++;
- }
- if (num != end)
- {
- new var2;
- if (pos)
- {
- var2 = 8796;
- }
- else
- {
- var2 = 8816;
- }
- format(body[len], 1023 - len, "\n\r9.\w%L\n\r0.\w%L", id, "MORE", id, var2);
- keys |= 256;
- }
- else
- {
- new var3;
- if (pos)
- {
- var3 = 8876;
- }
- else
- {
- var3 = 8896;
- }
- format(body[len], 1023 - len, "\n\r0.\w%L", id, var3);
- }
- show_menu(id, keys, body, -1, "knife duel");
- return 1;
- }
- public knifeduel_menu(id, key)
- {
- switch (key)
- {
- case 8:
- {
- new var2 = menu[id];
- var2++;
- return show_duel_menu(id, var2[0][0]);
- }
- case 9:
- {
- new var1 = menu[id];
- var1--;
- return show_duel_menu(id, var1[0][0]);
- }
- default:
- {
- new pid = ids[id][0][0][key + menu[id][0][0] * 8];
- if (!is_user_connected(pid))
- {
- ColorMessage(id, "\4[ %s ] \1This player has left the server\4!", PLUGIN);
- return show_duel_menu(id, menu[id][0][0]);
- }
- if (id == pid)
- {
- return show_duel_menu(id, menu[id][0][0]);
- }
- if (InDuel[pid][0][0])
- {
- ColorMessage(id, "\4[ %s ] \1This player in duel\4!", PLUGIN);
- return show_duel_menu(id, menu[id][0][0]);
- }
- OpponentMenu(pid, id);
- return 1;
- }
- }
- }
- public OpponentMenu(id, opponent)
- {
- new szOppName[32];
- get_user_name(opponent, szOppName, 31);
- Duel[id] = opponent;
- new szTitle[64];
- formatex(szTitle, 63, "\w[ \r%s\w ] - Play vs. \r%s", PLUGIN, szOppName);
- new menu = menu_create(szTitle, "opponent_menu_handler", 0);
- menu_additem(menu, "\wYes", "1", 0, -1);
- menu_additem(menu, "\wNo", "2", 0, -1);
- menu_setprop(menu, 6, 1);
- menu_display(id, menu, 0);
- return 0;
- }
- public opponent_menu_handler(id, menu, item, pid)
- {
- if (item == -3)
- {
- menu_destroy(menu);
- return 1;
- }
- new data[6];
- new szName[64];
- new access = 0;
- new callback = 0;
- menu_item_getinfo(menu, item, access, data, 5, szName, 63, callback);
- new key = str_to_num(data);
- new var3;
- switch (key)
- {
- case 1:
- {
- new opponent = Duel[id][0][0];
- if (!is_user_connected(opponent))
- {
- ColorMessage(id, "\4[ %s ] \1This player has left the server\4!", PLUGIN);
- return 1;
- }
- new var5 = InDuel;
- new var2;
- if (var5[opponent][0][0])
- {
- ColorMessage(id, "\4[ %s ] \1This player in duel\4!", PLUGIN);
- var2 = var5;
- }
- else
- {
- new var1;
- if (!g_bArenaCreate[0][0])
- {
- Duel[opponent] = id;
- InDuel[opponent] = 1;
- new var6 = InDuel[id];
- var6 = 2;
- createArenaA(id);
- spawn(id);
- spawn(opponent);
- var1 = var6;
- }
- else
- {
- if (!g_bArenaCreate[1][0])
- {
- Duel[opponent] = id;
- InDuel[opponent] = 3;
- new var7 = InDuel[id];
- var7 = 4;
- createArenaB(id);
- spawn(id);
- spawn(opponent);
- var1 = var7;
- }
- ColorMessage(id, "\4[ %s ] \1no free arenas, please wait\4!", PLUGIN);
- var1 = var5;
- }
- var2 = var1;
- }
- var3 = var2;
- }
- case 2:
- {
- new szOppName[32];
- get_user_name(id, szOppName, 31);
- new var4 = Duel;
- ColorMessage(var4[id][0][0], "\4[\1%s\4] \1%s \4refused duel!", PLUGIN, szOppName);
- var3 = var4;
- }
- default:
- {
- var3 = szName;
- }
- }
- menu_destroy(menu);
- return 1;
- }
- public client_connect(id)
- {
- g_DuelKills[id] = 0;
- InDuel[id] = 0;
- return 0;
- }
- public client_disconnect(id)
- {
- new opponent = Duel[id][0][0];
- new var6 = InDuel;
- new var1;
- new var2;
- if (var6[id][0][0] == 1)
- {
- var1 = var6;
- }
- else
- {
- new var7 = InDuel;
- if (var7[id][0][0] == 2)
- {
- var1 = var7;
- }
- var2 = var7;
- if (ERROR: Phi)
- {
- deleteArena(0);
- }
- else
- {
- new var8 = InDuel;
- new var3;
- new var4;
- if (var8[id][0][0] == 3)
- {
- var3 = var8;
- }
- else
- {
- new var9 = InDuel;
- if (var9[id][0][0] == 4)
- {
- var3 = var9;
- }
- var4 = var9;
- if (ERROR: Phi)
- {
- deleteArena(1);
- }
- }
- var4 = var3;
- if (ERROR: Phi)
- {
- deleteArena(1);
- }
- }
- g_DuelKills[id] = 0;
- g_DuelKills[opponent] = 0;
- InDuel[id] = 0;
- new var10 = InDuel;
- new var5;
- if (var10[opponent][0][0])
- {
- new var11 = InDuel[opponent];
- var11 = 0;
- spawn(opponent);
- var5 = var11;
- }
- else
- {
- var5 = var10;
- }
- return 0;
- }
- var2 = var1;
- if (ERROR: Phi)
- {
- deleteArena(0);
- }
- else
- {
- new var8 = InDuel;
- new var3;
- new var4;
- if (var8[id][0][0] == 3)
- {
- var3 = var8;
- }
- else
- {
- new var9 = InDuel;
- if (var9[id][0][0] == 4)
- {
- var3 = var9;
- }
- var4 = var9;
- if (ERROR: Phi)
- {
- deleteArena(1);
- }
- }
- var4 = var3;
- if (ERROR: Phi)
- {
- deleteArena(1);
- }
- }
- g_DuelKills[id] = 0;
- g_DuelKills[opponent] = 0;
- InDuel[id] = 0;
- new var10 = InDuel;
- new var5;
- if (var10[opponent][0][0])
- {
- new var11 = InDuel[opponent];
- var11 = 0;
- spawn(opponent);
- var5 = var11;
- }
- else
- {
- var5 = var10;
- }
- return 0;
- }
- public arenamsg()
- {
- new iPlayers[32];
- new iNum = 0;
- new i = 0;
- get_players(iPlayers, iNum, "c", "");
- i = 0;
- while (i <= iNum)
- {
- new id = iPlayers[i];
- if (is_user_connected(id))
- {
- ColorMessage(id, "\4[ %s ] \1write \4/kdc \1or \4/duel \1for play\4 1vs1", PLUGIN);
- }
- i++;
- }
- return 0;
- }
- ColorMessage(id, String:input[])
- {
- new count = 1;
- new players[32];
- static msg[191];
- vformat(msg, 190, input, 3);
- if (id)
- {
- players[0] = id;
- }
- else
- {
- get_players(players, count, "ch", "");
- }
- new i = 0;
- while (i < count)
- {
- if (is_user_connected(players[i]))
- {
- message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), 11092, players[i]);
- write_byte(players[i]);
- write_string("");
- message_end();
- i++;
- }
- i++;
- }
- return 0;
- }
- public createArenaA(id)
- {
- if (g_bArenaCreate[0][0])
- {
- return 1;
- }
- new i = 0;
- while (i < 24)
- {
- createBlock(0, i, ArrayArenaA[i][0][0], BlockAnglesY, BlockSizeMinY, BlockSizeMaxY);
- i++;
- }
- new i = 24;
- while (i < 32)
- {
- createBlock(0, i, ArrayArenaA[i][0][0], BlockAnglesX, BlockSizeMinX, BlockSizeMaxX);
- i++;
- }
- new i = 32;
- while (i < 38)
- {
- createBlock(0, i, ArrayArenaA[i][0][0], BlockAnglesZ, BlockSizeMinZ, BlockSizeMaxZ);
- i++;
- }
- g_bArenaCreate[0] = 1;
- return 1;
- }
- public createArenaB(id)
- {
- if (g_bArenaCreate[1][0])
- {
- return 1;
- }
- new i = 0;
- while (i < 24)
- {
- createBlock(1, i, ArrayArenaB[i][0][0], BlockAnglesY, BlockSizeMinY, BlockSizeMaxY);
- i++;
- }
- new i = 24;
- while (i < 32)
- {
- createBlock(1, i, ArrayArenaB[i][0][0], BlockAnglesX, BlockSizeMinX, BlockSizeMaxX);
- i++;
- }
- new i = 32;
- while (i < 38)
- {
- createBlock(1, i, ArrayArenaB[i][0][0], BlockAnglesZ, BlockSizeMinZ, BlockSizeMaxZ);
- i++;
- }
- g_bArenaCreate[1] = 1;
- return 1;
- }
- deleteArena(arenaID)
- {
- new i = 0;
- while (i < 38)
- {
- remove_entity(ArenaEnt[arenaID][0][0][i]);
- i++;
- }
- g_bArenaCreate[arenaID] = 0;
- return 0;
- }
- createBlock(arenaID, blockNum, Float:vOrigin[3], Float:vAngles[3], Float:vSizeMin[3], Float:vSizeMax[3])
- {
- new ent = create_entity("info_target");
- ArenaEnt[arenaID][0][0][blockNum] = ent;
- if (is_valid_ent(ent))
- {
- entity_set_int(ent, EV_INT_solid, 2);
- entity_set_int(ent, EV_INT_movetype, 0);
- entity_set_model(ent, "models/arena.mdl");
- entity_set_vector(ent, 6, vAngles);
- entity_set_size(ent, vSizeMin, vSizeMax);
- entity_set_origin(ent, vOrigin);
- if (blockNum > 11)
- {
- set_rendering(ent, 19, 0, 0, 0, 1, 0);
- }
- return ent;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement