Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <fakemeta>
- #include <hamsandwich>
- #include <dhudmessage>
- #include <sqlx>
- #include <zombieplague>
- #include <zp_level_system>
- native box_number(index)
- native box_set_number(index, num)
- native star_number(index)
- #define STATUS_TASK 36788
- #define HUD_TASK 56343
- #define ID_STATUS (taskid - STATUS_TASK)
- #define ID_TASK (taskid - HUD_TASK)
- enum Quest
- {
- KillerCountOne = 0,
- DamageCountOne,
- KillerCountTwo,
- DamageCountTwo,
- KillerCountThree,
- DamageCountThree,
- CollectBox,
- CollectItem,
- CollectStar,
- BecomeHero,
- BecomeZombie,
- CraftItem
- }
- new g_Quest[33], g_BoxGiver[33] // id player хранящие id от Enuma -> g_PlayerQuest[id][g_Quest]
- new g_PlayerQuest[33][12] // массив для соединения id квара и самого задания -> на выполнение p.s
- // первый квест g_PlayerQuest[id][0] = убить 3 зомби -> записываем при убийстве туда +1, и проверяем на следующий
- new g_PlayerDamage[33]
- new q_Cvar[12], q_Cvar_Reward[2][12] // на каждый следующий квар - следующий квест. 0 соответсвует 0 и так далее
- #define SQL_HOST "-"
- #define SQL_USER "-"
- #define SQL_PASSWORD "-"
- #define SQL_DATABASE "-" // don't change
- #define SQL_TABLENAME "quest_system"
- new Handle:MYSQL_Tuple
- new Handle:MYSQL_Connect
- new g_szQuery[512];
- new bool: UserLoaded[33];
- new UserSteamID[33][34];
- public plugin_init()
- {
- register_plugin("[ZP] Quest-System", "3.0", "Dambas");
- RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage");
- RegisterHam(Ham_Killed, "player", "fw_PlayerKilled");
- // Сколько нужно для выполнения
- q_Cvar[0] = register_cvar("Quest_KillZombie_One", "5");
- q_Cvar[1] = register_cvar("Quest_Damage_One", "10000.0");
- q_Cvar[2] = register_cvar("Quest_Quest_KillZombie_Two", "15");
- q_Cvar[3] = register_cvar("Quest_Damage_Two", "30000.0");
- q_Cvar[4] = register_cvar("Quest_Quest_KillZombie_Three", "40");
- q_Cvar[5] = register_cvar("Quest_Damage_Three", "50000.0");
- q_Cvar[6] = register_cvar("Quest_Collect_Box", "3");
- q_Cvar[7] = register_cvar("Quest_CollectItem", "3");
- q_Cvar[8] = register_cvar("Quest_CollectStar", "3");
- q_Cvar[9] = register_cvar("Quest_BecomeHero", "1");
- q_Cvar[10] = register_cvar("Quest_BecomeZombie", "1");
- q_Cvar[11] = register_cvar("Quest_CraftItem", "1");
- // Аммо
- q_Cvar_Reward[0][0] = register_cvar("Ammo_Reward_One", "4000");
- q_Cvar_Reward[0][1] = register_cvar("Ammo_Reward_Two", "4000");
- q_Cvar_Reward[0][2] = register_cvar("Ammo_Reward_Three", "4000");
- q_Cvar_Reward[0][3] = register_cvar("Ammo_Reward_Four", "4000");
- q_Cvar_Reward[0][4] = register_cvar("Ammo_Reward_Five", "4000");
- q_Cvar_Reward[0][5] = register_cvar("Ammo_Reward_Six", "4000");
- q_Cvar_Reward[0][6] = register_cvar("Ammo_Reward_Seven", "4000");
- q_Cvar_Reward[0][7] = register_cvar("Ammo_Reward_Eight", "4000");
- q_Cvar_Reward[0][8] = register_cvar("Ammo_Reward_Nine", "4000");
- q_Cvar_Reward[0][9] = register_cvar("Ammo_Reward_Ten", "4000");
- q_Cvar_Reward[0][10] = register_cvar("Ammo_Reward_Elev", "4000");
- q_Cvar_Reward[0][11] = register_cvar("Ammo_Reward_Tw", "4000");
- // Опыт
- q_Cvar_Reward[1][0] = register_cvar("XP_Reward_One", "1500");
- q_Cvar_Reward[1][1] = register_cvar("XP_Reward_Two", "1500");
- q_Cvar_Reward[1][2] = register_cvar("XP_Reward_Three", "1500");
- q_Cvar_Reward[1][3] = register_cvar("XP_Reward_Four", "1500");
- q_Cvar_Reward[1][4] = register_cvar("XP_Reward_Five", "1500");
- q_Cvar_Reward[1][5] = register_cvar("XP_Reward_Six", "1500");
- q_Cvar_Reward[1][6] = register_cvar("XP_Reward_Seven", "1500");
- q_Cvar_Reward[1][7] = register_cvar("XP_Reward_Eight", "1500");
- q_Cvar_Reward[1][8] = register_cvar("XP_Reward_Nine", "1500");
- q_Cvar_Reward[1][9] = register_cvar("XP_Reward_Ten", "1500");
- q_Cvar_Reward[1][10] = register_cvar("XP_Reward_Elev", "1500");
- q_Cvar_Reward[1][11] = register_cvar("XP_Reward_Tw", "1500");
- //register_dictionary("zp_quest_system.txt")
- }
- public plugin_natives()
- {
- register_native("get_quest_number", "native_get_quest_number", 1)
- register_native("box_giver", "native_box_giver", 1)
- register_native("get_player_quest_box", "native_get_player_quest_box", 1)
- register_native("set_player_quest_box", "native_set_player_quest_box", 1)
- register_native("get_player_quest_star", "native_get_player_quest_star", 1)
- register_native("set_player_quest_star", "native_set_player_quest_star", 1)
- register_native("get_player_quest_item", "native_get_player_quest_item", 1)
- register_native("set_player_quest_item", "native_set_player_quest_item", 1)
- register_native("get_player_quest_eh", "native_get_player_quest_eh", 1)
- register_native("set_player_quest_eh", "native_set_player_quest_eh", 1)
- register_native("get_player_quest_ez", "native_get_player_quest_ez", 1)
- register_native("set_player_quest_ez", "native_set_player_quest_ez", 1)
- register_native("get_player_quest_ci", "native_get_player_quest_ci", 1)
- register_native("set_player_quest_ci", "native_set_player_quest_ci", 1)
- }
- public native_get_player_quest_ci(id)
- {
- return g_PlayerQuest[id][11]
- }
- public native_set_player_quest_ci(id, num)
- {
- return g_PlayerQuest[id][11] = num;
- }
- public native_get_player_quest_eh(id)
- {
- return g_PlayerQuest[id][9];
- }
- public native_set_player_quest_eh(id, num)
- {
- return g_PlayerQuest[id][9] = num;
- }
- public native_get_player_quest_ez(id)
- {
- return g_PlayerQuest[id][10];
- }
- public native_set_player_quest_ez(id, num)
- {
- g_PlayerQuest[id][10] = num;
- }
- public native_get_player_quest_star(id)
- {
- return g_PlayerQuest[id][8];
- }
- public native_set_player_quest_star(id, num)
- {
- g_PlayerQuest[id][8] = num;
- }
- public native_get_quest_number(id)
- {
- return g_Quest[id];
- }
- public native_box_giver(id)
- {
- return g_BoxGiver[id];
- }
- public native_get_player_quest_box(id)
- {
- return g_PlayerQuest[id][6];
- }
- public native_set_player_quest_box(id, num)
- {
- g_PlayerQuest[id][6] = num;
- }
- public native_get_player_quest_item(id)
- {
- return g_PlayerQuest[id][7];
- }
- public native_set_player_quest_item(id, num)
- {
- g_PlayerQuest[id][7] = num;
- }
- public client_connect(id)
- {
- if(is_user_bot(id))
- return PLUGIN_HANDLED;
- return PLUGIN_HANDLED;
- }
- public plugin_cfg()
- {
- SQL_LoadDebug();
- }
- public plugin_end()
- {
- if(MYSQL_Tuple)
- SQL_FreeHandle(MYSQL_Tuple)
- if(MYSQL_Connect)
- SQL_FreeHandle(MYSQL_Connect)
- }
- public client_putinserver(id)
- {
- LoadData(id)
- set_task(1.0, "show_hudstatus", id+HUD_TASK,_ ,_ , "b");
- set_task(1.0, "check_status_quests", id+STATUS_TASK, _, _, "b");
- }
- public client_disconnect(id)
- {
- if(!UserLoaded[id])
- return;
- //new UserNick[32];
- formatex(g_szQuery, charsmax(g_szQuery), "UPDATE `%s` SET `Quests` = '%d', `QuestExecute` = '%d', `Box` = '%d', `BoxGiver` = '%d' WHERE `%s`.`SteamID` = '%s';", SQL_TABLENAME, g_Quest[id], g_PlayerQuest[id][g_Quest[id]], box_number(id), g_BoxGiver[id], SQL_TABLENAME, UserSteamID[id])
- SQL_ThreadQuery(MYSQL_Tuple, "SQL_Thread", g_szQuery)
- remove_task(id);
- }
- public SQL_LoadDebug()
- {
- new szError[512]
- new iErrorCode
- MYSQL_Tuple = SQL_MakeDbTuple(SQL_HOST, SQL_USER, SQL_PASSWORD, SQL_DATABASE)
- MYSQL_Connect = SQL_Connect(MYSQL_Tuple, iErrorCode, szError, charsmax(szError))
- if(MYSQL_Connect == Empty_Handle)
- set_fail_state(szError)
- if(!SQL_TableExists(MYSQL_Connect, SQL_TABLENAME))
- {
- new Handle:hQueries
- new szQuery[512]
- formatex( szQuery, charsmax(szQuery), "CREATE TABLE IF NOT EXISTS `%s` (SteamID VARCHAR(32) CHARACTER SET cp1250 COLLATE cp1250_general_ci NOT NULL, NickName VARCHAR(32) NOT NULL, Quests INT NOT NULL, QuestExecute INT NOT NULL, Box INT NOT NULL, BoxGiver INT NOT NULL, PRIMARY KEY (SteamID))", SQL_TABLENAME)
- hQueries = SQL_PrepareQuery(MYSQL_Connect, szQuery)
- if(!SQL_Execute(hQueries))
- {
- SQL_QueryError(hQueries, szError, charsmax(szError))
- set_fail_state(szError)
- }
- SQL_FreeHandle(hQueries)
- }
- SQL_QueryAndIgnore(MYSQL_Connect, "SET NAMES utf8")
- }
- public SQL_Query( iState, Handle: hQuery, szError[], iErrorCode, iParams[], iParamsSize)
- {
- switch(iState)
- {
- case TQUERY_CONNECT_FAILED: log_amx("Load - Could not connect to SQL database. [%d] %s", iErrorCode, szError)
- case TQUERY_QUERY_FAILED: log_amx("Load Query failed. [%d] %s", iErrorCode, szError)
- }
- new id = iParams[0]
- new NickName[32];
- get_user_name(id, NickName, 31);
- UserLoaded[id] = true
- if(SQL_NumResults(hQuery) < 1)
- {
- if(equal(UserSteamID[id], "ID_PENDING"))
- return PLUGIN_HANDLED
- formatex(g_szQuery, charsmax(g_szQuery), "REPLACE INTO `%s` (`SteamID`, `NickName`, `Quests`, `QuestExecute`, `Box`, `BoxGiver`) VALUES ('%s', '%s', '%d', '%d', '%d', '%d');", SQL_TABLENAME, UserSteamID[id], NickName, g_Quest[id], g_PlayerQuest[id][g_Quest[id]], box_number(id), g_BoxGiver[id])
- SQL_ThreadQuery(MYSQL_Tuple, "SQL_Thread", g_szQuery)
- return PLUGIN_HANDLED;
- }
- else
- {
- g_Quest[id] = SQL_ReadResult(hQuery, 2)
- g_PlayerQuest[id][g_Quest[id]] = SQL_ReadResult(hQuery, 3)
- box_set_number(id, SQL_ReadResult(hQuery, 4))
- g_BoxGiver[id] = SQL_ReadResult(hQuery, 5)
- }
- return PLUGIN_HANDLED;
- }
- public LoadData(id)
- {
- if(!is_user_connected(id))
- return;
- new iParams[1]
- iParams[0] = id
- get_user_authid(id, UserSteamID[id], charsmax(UserSteamID[]))
- formatex(g_szQuery, charsmax(g_szQuery), "SELECT * FROM `%s` WHERE (`%s`.`SteamID` = '%s')", SQL_TABLENAME, SQL_TABLENAME, UserSteamID[id])
- SQL_ThreadQuery(MYSQL_Tuple, "SQL_Query", g_szQuery, iParams, sizeof iParams)
- }
- public SQL_Thread(iState, Handle: hQuery, szError[], iErrorCode, iParams[], iParamsSize)
- {
- if(iState == 0)
- return;
- log_amx("SQL Error: %d (%s)", iErrorCode, szError)
- }
- public check_status_quests(taskid)
- {
- switch(g_Quest[ID_STATUS])
- {
- case KillerCountOne:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= get_pcvar_num(q_Cvar[g_Quest[ID_STATUS]]))
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case DamageCountOne:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= 1)
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case KillerCountTwo:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= get_pcvar_num(q_Cvar[g_Quest[ID_STATUS]]))
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case DamageCountTwo:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= 1)
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case KillerCountThree:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= get_pcvar_num(q_Cvar[g_Quest[ID_STATUS]]))
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case DamageCountThree:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= 1)
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case CollectBox:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= get_pcvar_num(q_Cvar[g_Quest[ID_STATUS]]))
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case CollectItem:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= get_pcvar_num(q_Cvar[g_Quest[ID_STATUS]]))
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case CollectStar:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= get_pcvar_num(q_Cvar[g_Quest[ID_STATUS]]))
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case BecomeHero:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= get_pcvar_num(q_Cvar[g_Quest[ID_STATUS]]))
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case BecomeZombie:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= get_pcvar_num(q_Cvar[g_Quest[ID_STATUS]]))
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- case CraftItem:
- {
- if(g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] >= get_pcvar_num(q_Cvar[g_Quest[ID_STATUS]]))
- {
- g_PlayerQuest[ID_STATUS][g_Quest[ID_STATUS]] = 0;
- zp_set_user_ammo_packs(ID_STATUS, zp_get_user_ammo_packs(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]))
- zp_set_user_exp(ID_STATUS, zp_get_user_exp(ID_STATUS) + get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- Colorchat(ID_STATUS, "!g[ZP] !g[ZP] !yYou completed the task %d, and got !g%d Ammo !yand !g%d EXP", g_Quest[ID_STATUS], get_pcvar_num(q_Cvar_Reward[0][g_Quest[ID_STATUS]]), get_pcvar_num(q_Cvar_Reward[1][g_Quest[ID_STATUS]]))
- g_Quest[ID_STATUS]++;
- }
- }
- }
- }
- public fw_PlayerKilled(iVictim, iAttacker, iShouldgib)
- {
- if(!is_user_connected(iVictim) || !is_user_connected(iAttacker))
- return HAM_IGNORED;
- if(!zp_get_user_zombie(iAttacker) && zp_get_user_zombie(iVictim))
- {
- switch(g_Quest[iAttacker])
- {
- case KillerCountOne:
- {
- g_PlayerQuest[iAttacker][0]++;
- }
- case KillerCountTwo:
- {
- g_PlayerQuest[iAttacker][2]++;
- }
- case KillerCountThree:
- {
- g_PlayerQuest[iAttacker][4]++;
- }
- }
- }
- return HAM_IGNORED;
- }
- public fw_TakeDamage(iVictim, iInflictor, iAttacker, Float:Damage, DamageType)
- {
- if(iVictim == iAttacker || !is_user_connected(iAttacker))
- return HAM_IGNORED;
- if(DamageType & 1<<24)
- return HAM_SUPERCEDE;
- if(zp_get_user_zombie(iAttacker) == zp_get_user_zombie(iVictim))
- return HAM_SUPERCEDE;
- g_PlayerDamage[iAttacker] += Damage
- switch(g_Quest[iAttacker])
- {
- case DamageCountOne:
- {
- if(g_PlayerDamage[iAttacker] >= get_pcvar_float(q_Cvar[g_Quest[iAttacker]]))
- {
- g_PlayerQuest[iAttacker][1]++;
- g_PlayerDamage[iAttacker] = 0;
- }
- }
- case DamageCountTwo:
- {
- if(g_PlayerDamage[iAttacker] >= get_pcvar_float(q_Cvar[g_Quest[iAttacker]]))
- {
- g_PlayerQuest[iAttacker][3]++;
- g_PlayerDamage[iAttacker] = 0;
- }
- }
- case DamageCountThree:
- {
- if(g_PlayerDamage[iAttacker] >= get_pcvar_float(q_Cvar[g_Quest[iAttacker]]))
- {
- g_PlayerQuest[iAttacker][5]++;
- g_PlayerDamage[iAttacker] = 0;
- }
- }
- }
- return HAM_IGNORED;
- }
- public show_hudstatus(taskid)
- {
- if(is_user_alive(ID_TASK) && is_user_connected(ID_TASK))
- {
- if(g_Quest[ID_TASK] == 12)
- {
- Colorchat(ID_TASK, "!g[ZP] !yВы завершили линейку заданий и получаете 1 ящик!")
- box_set_number(ID_TASK, box_number(ID_TASK) + 1)
- g_BoxGiver[ID_TASK] = 1;
- g_Quest[ID_TASK] = 0;
- return PLUGIN_HANDLED;
- }
- set_dhudmessage(0, 255, 0, 0.75, 0.16, 0, 6.0, 12.0);
- switch(g_Quest[ID_TASK])
- {
- case KillerCountOne:
- show_dhudmessage(ID_TASK, "[Quest %d]^nKill %d Zombies^nProgress[%d/%d]", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]), g_PlayerQuest[ID_TASK][g_Quest[ID_TASK]], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case DamageCountOne:
- show_dhudmessage(ID_TASK, "[Quest %d]^nDo %d Damage", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case KillerCountTwo:
- show_dhudmessage(ID_TASK, "[Quest %d]^nKill %d Zombies^nProgress[%d/%d]", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]), g_PlayerQuest[ID_TASK][g_Quest[ID_TASK]], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case DamageCountTwo:
- show_dhudmessage(ID_TASK, "[Quest %d]^nDo %d Damage", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case KillerCountThree:
- show_dhudmessage(ID_TASK, "[Quest %d]^nKill %d Zombies^nProgress[%d/%d]", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]), g_PlayerQuest[ID_TASK][g_Quest[ID_TASK]], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case DamageCountThree:
- show_dhudmessage(ID_TASK, "[Quest %d]^nDo %d Damage", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case CollectBox:
- show_dhudmessage(ID_TASK, "[Quest %d]^nCollect %d Boxes^nProgress[%d/%d]", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]), g_PlayerQuest[ID_TASK][g_Quest[ID_TASK]], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case CollectItem:
- show_dhudmessage(ID_TASK, "[Quest %d]^nGet %d Items^nProgress[%d/%d]", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]), g_PlayerQuest[ID_TASK][g_Quest[ID_TASK]], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case CollectStar:
- show_dhudmessage(ID_TASK, "[Quest %d]^nCollect %d Stars^nProgress[%d/%d]", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]), g_PlayerQuest[ID_TASK][g_Quest[ID_TASK]], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case BecomeHero:
- show_dhudmessage(ID_TASK, "[Quest %d]^nBecome %d once Hero^nProgress[%d/%d]", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]), g_PlayerQuest[ID_TASK][g_Quest[ID_TASK]], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case BecomeZombie:
- show_dhudmessage(ID_TASK, "[Quest %d]^nBecome %d once Super Zombie^nProgress[%d/%d]", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]), g_PlayerQuest[ID_TASK][g_Quest[ID_TASK]], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- case CraftItem:
- show_dhudmessage(ID_TASK, "[Quest %d]^nCreate %d times items^nProgress[%d/%d]", g_Quest[ID_TASK], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]), g_PlayerQuest[ID_TASK][g_Quest[ID_TASK]], get_pcvar_num(q_Cvar[g_Quest[ID_TASK]]))
- }
- }
- return PLUGIN_HANDLED;
- }
- stock Colorchat(const id, const input[], any:...)
- {
- new count = 1, players[32]
- static msg[191]
- vformat(msg, 190, input, 3)
- replace_all(msg, 190, "!g", "^4")
- replace_all(msg, 190, "!y", "^1")
- replace_all(msg, 190, "!t", "^3")
- if (id) players[0] = id; else get_players(players, count, "ch")
- {
- for(new i = 0; i < count; i++)
- {
- if(is_user_connected(players[i]))
- {
- message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
- write_byte(players[i])
- write_string(msg)
- message_end()
- }
- }
- }
- }
- stock bool: SQL_TableExists(Handle: hDataBase, const szTable[])
- {
- new Handle: hQuery = SQL_PrepareQuery(hDataBase, "SELECT * FROM information_schema.tables WHERE table_name = '%s' LIMIT 1;", szTable)
- new szError[512]
- if(!SQL_Execute(hQuery))
- {
- SQL_QueryError(hQuery, szError, charsmax(szError))
- set_fail_state(szError)
- }
- else if( !SQL_NumResults(hQuery))
- {
- SQL_FreeHandle(hQuery)
- return false;
- }
- SQL_FreeHandle(hQuery)
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement