Editare plugin Steam Bonus

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
ABobeanu
Membru, skill 0
Membru, skill 0
Posts: 8
Joined: 04 Jun 2020, 01:12
Detinator Steam: Da
CS Status: omw to hell
Detinator server CS: cs.s3if.ro
SteamID: abobeanu
Fond eXtream: 0
Has thanked: 3 times

12 Mar 2023, 11:24

Plugin Cerut: plugin steam bonus

Descriere (adica ce face el mai exact):
Salut , am un plugin de Steam Bonus care nu functioneaza chiar cum ar trebui.
Primesc beneficiile chiar si in afara intervalului setat (23-9) si in eventul de VIP (23-9)
As vrea ca in intervalul orar selectat sa nu primesc si nici cei care au flag de VIP.

Code: Select all

#include <amxmodx>
#include <cromchat>
#include <cstrike>
#include <fun>
#include <hamsandwich>

#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif

#define VIP_FLAG ADMIN_LEVEL_F
#define server_exe server_exec

new g_pStart, g_pEnd, g_pMoney
new g_iStart, g_iEnd

new bool:g_bSteam[MAX_PLAYERS + 1]

public plugin_init()
{
	register_plugin("Steam Bonus", "1.0", "OciXCrom")
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
	g_pMoney = register_cvar("steam_bonus_money", "2500")
	g_pStart = register_cvar("steam_bonus_start", "23")
	g_pEnd = register_cvar("steam_bonus_end", "9")
}

public client_authorized(id)
{
	g_bSteam[id] = is_user_steam(id)
}

public plugin_cfg()
{
	g_iStart = get_pcvar_num(g_pStart)
	g_iEnd = get_pcvar_num(g_pEnd)
}

public OnPlayerSpawn(id)
{
	// Don't give extras if player is not Steam or dead
	if(!g_bSteam[id] || !is_user_alive(id))
	{
		return
	}

	// Don't give extras if player Happy Hour is active + player is VIP
	if(is_current_time(g_iStart, g_iEnd) && (get_user_flags(id) & VIP_FLAG))
	{
		return
	}

	switch(random(3))
	{
		case 0:
		{
			new iMoney = get_pcvar_num(g_pMoney)
			cs_set_user_money(id, cs_get_user_money(id) + iMoney)
			CC_SendMessage(id, "Ai primit &x04%i$ &x01 &x03Steam Bonus&x01.", iMoney)
		}
		case 1:
		{
			give_item(id, "weapon_hegrenade")
			give_item(id, "weapon_flashbang")
			give_item(id, "weapon_smokegrenade")
			CC_SendMessage(id, "Ai primit &x04[HE, Flash, Smoke] &x01 &x03Steam Bonus&x01.")
		}
		case 2:
		{
			cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
			CC_SendMessage(id, "Ai primit &x04[ARMOR + VEST] &x01 &x03Steam Bonus&x01.")
		}
	}
}

bool:is_user_steam(id)
{
	static iPointer

	if(iPointer || (iPointer = get_cvar_pointer("dp_r_id_provider")))
	{
		server_cmd("dp_clientinfo %d", id); server_exe()
		return get_pcvar_num(iPointer) == 2
	}

	return false
}

bool:is_current_time(const iStart, const iEnd)
{
    static iHour; time(iHour)
    return bool:(iStart < iEnd ? (iStart <= iHour < iEnd) : (iStart <= iHour || iHour <= iEnd))
}
Atributul pentru VIP este "r"
Serverul ruleaza (HLDS/ReHLDS): Nu stiu unde sa verific 🥺
Versiune AMX Mod X: AMX Mod X 1.9.0.5271
Modul Serverului: Normal
RoyalServer 2
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

12 Mar 2023, 20:49

timpul pe server este la fel cu cel al calculatorul de pe care compilezi plg?
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
ABobeanu
Membru, skill 0
Membru, skill 0
Posts: 8
Joined: 04 Jun 2020, 01:12
Detinator Steam: Da
CS Status: omw to hell
Detinator server CS: cs.s3if.ro
SteamID: abobeanu
Fond eXtream: 0
Has thanked: 3 times

12 Mar 2023, 21:20

Da, timpul este acelasi cu al PC-ului. Are importanta daca fac compilarea online sau local?
PS: Am incercat sa-l compilez local si tot asa face.
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

12 Mar 2023, 23:02

at e ceva greșit la stocku de timp

Code: Select all

#include <amxmodx>
#include <cromchat>
#include <cstrike>
#include <fun>
#include <hamsandwich>

#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif

#define VIP_FLAG ADMIN_LEVEL_F
#define server_exe server_exec

new g_pStart, g_pEnd, g_pMoney
new g_iStart, g_iEnd

new bool:g_bSteam[MAX_PLAYERS + 1]

public plugin_init()
{
	register_plugin("Steam Bonus", "1.0", "OciXCrom")
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
	g_pMoney = register_cvar("steam_bonus_money", "2500")
	g_pStart = register_cvar("steam_bonus_start", "23")
	g_pEnd = register_cvar("steam_bonus_end", "9")
}

public client_authorized(id)
{
	g_bSteam[id] = evo_check_player_steam(id)
}

public plugin_cfg()
{
	g_iStart = get_pcvar_num(g_pStart)
	g_iEnd = get_pcvar_num(g_pEnd)
}

public OnPlayerSpawn(id)
{
	// Don't give extras if player is not Steam or dead
	if(!g_bSteam[id] || !is_user_alive(id))
	{
		return
	}

	// Don't give extras if is Happy Hour active + player is VIP
	if(evo_check_happy_hour(g_iStart, g_iEnd) && (get_user_flags(id) & VIP_FLAG))
	{
		return
	}

	switch(random(3))
	{
		case 0:
		{
			new iMoney = get_pcvar_num(g_pMoney)
			cs_set_user_money(id, cs_get_user_money(id) + iMoney)
			CC_SendMessage(id, "Ai primit &x04%i$ &x01 &x03Steam Bonus&x01.", iMoney)
		}
		case 1:
		{
			give_item(id, "weapon_hegrenade")
			give_item(id, "weapon_flashbang")
			give_item(id, "weapon_smokegrenade")
			CC_SendMessage(id, "Ai primit &x04[HE, Flash, Smoke] &x01 &x03Steam Bonus&x01.")
		}
		case 2:
		{
			cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
			CC_SendMessage(id, "Ai primit &x04[ARMOR + VEST] &x01 &x03Steam Bonus&x01.")
		}
	}
}

stock bool:evo_check_player_steam(const id)
{
	if(!cvar_exists("dp_r_id_provider"))
	{
		server_print("[AMXX] stock 'evo_check_player_steam' error")
		return false
	}
    static dp_pointer
    if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
    {
        server_cmd("dp_clientinfo %d", id)
        server_exec()
        return (get_pcvar_num(dp_pointer) == 2)?true:false
    }
    return false
}
stock bool:evo_check_happy_hour(const iStart, const iEnd)
{
    new iHour; time(iHour)
    return bool:(iStart < iEnd ? (iStart <= iHour < iEnd) : (iStart <= iHour || iHour < iEnd))
}
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
ABobeanu
Membru, skill 0
Membru, skill 0
Posts: 8
Joined: 04 Jun 2020, 01:12
Detinator Steam: Da
CS Status: omw to hell
Detinator server CS: cs.s3if.ro
SteamID: abobeanu
Fond eXtream: 0
Has thanked: 3 times

12 Mar 2023, 23:15

Am incercat codul dat de tine iar cand e VIP Event, nimeni nu mai primeste Steam Bonus ❤️
Ce nu functioneaza, dar nu ma deranjeaza absolut deloc, e ca nu tine cont steam_bonus_start "23" si steam_bonus_end "9"

Multumesc frumos de ajutor, you saved my server 😁
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

12 Mar 2023, 23:30

încearcă stocku ăsta

Code: Select all

stock bool:evo_check_happy_hour(const iStart, const iEnd)
{
    new iHour; time(iHour)
    return bool:(iStart < iEnd ? (iStart <= iHour <= iEnd) : (iStart <= iHour || iHour <= iEnd))
}
Last edited by levin on 13 Mar 2023, 22:41, edited 2 times in total.
Reason: stock fix..
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
ABobeanu
Membru, skill 0
Membru, skill 0
Posts: 8
Joined: 04 Jun 2020, 01:12
Detinator Steam: Da
CS Status: omw to hell
Detinator server CS: cs.s3if.ro
SteamID: abobeanu
Fond eXtream: 0
Has thanked: 3 times

13 Mar 2023, 22:26

Salut,
Am facut tot felul de teste si nu functioneaza sa il restrictionez in functie de ora.
Am observat ca e blocat de flag-ul de VIP iar cand incepe eventul nu mai da beneficii (ceea ce e ok :D )

E ok asa cum e, ma bucura ca nu mai da bonusul in timpul eventului :)

Multumesc de ajutor! 😁

EDIT: Tot asa :ily_gesture:
Last edited by levin on 13 Mar 2023, 22:38, edited 1 time in total.
Reason: vezi că am fixat stocku
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 10 guests