Cere plugin Free slot [rezolvat]

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Dabules
Membru, skill 0
Membru, skill 0
Posts: 19
Joined: 04 Feb 2016, 12:10
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

06 Feb 2016, 22:11

Salut,

As vrea si eu un plugin simplu de oferire slot doar cu nickname si parola atunci cand playerii fac X ore pe server.

Am tot cautat alte pluginuri inclusiv aici, dar nu am gasit fix ce imi doresc.

Pluginul sa aibe particularitatile:

- Sa nu se lege de Dproto (am auzit ca nu este indicat sa ne bagam nasul acolo)
- Sa nu se lege de users.ini, ci sa faca un fisier separat
-Sa apara doar conturile create, unele pluginuri arata si cand X s-a logat,ceea ce duce la "dezordine" in fisier

Daca ma poate ajuta cineva multumesc, daca nu, macar sa imi spuna ca este greu de implementat si sa ma resemnez :D
RoyalServer
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

06 Feb 2016, 22:15

poate ti-l fac eu zilele astea (nu promit)
Dabules
Membru, skill 0
Membru, skill 0
Posts: 19
Joined: 04 Feb 2016, 12:10
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

06 Feb 2016, 22:40

Ok multumesc, dar ma gandesc ca poate nu esti singurul care se pricepe pe aici si mai sare cineva :D
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

06 Feb 2016, 23:19

am gasit si asta pe care l-am facut mai de mult doar ca nu e cu fisier extern e tot cu users ini cereri-pluginuri/cerere-plugin-slot-t30 ... l#p2395260
Dabules
Membru, skill 0
Membru, skill 0
Posts: 19
Joined: 04 Feb 2016, 12:10
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

07 Feb 2016, 11:54

Frumos pluginul , dar nu inregistreaza timpul, adica si dupa 2 minute daca dau /ore am 0 minute pe server :(
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

07 Feb 2016, 21:13

testeaza,l-am facut acum nu l-am testat:
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <nvault>

new const
	PLUGIN[] = "",
	VERSION[] = "1.0",
	AUTHOR[] = "S.Cosmin";

new iTime[33],Password[33][32],bool:HaveSlot[33] = false
new pcvar_hours,PasswordFieldCvarPointer,g_vault

new Trie:eData

public plugin_init() {
	register_plugin(PLUGIN,VERSION,AUTHOR)
	
	register_clcmd("say /slot","cmdSlot")
	register_clcmd("say /ore","cmdOre")
	
	PasswordFieldCvarPointer = get_cvar_pointer("amx_password_field")
	pcvar_hours = register_cvar("cvar_hours_slot","10")
	eData = TrieCreate()
	g_vault = nvault_open("PlayedTime")
	if(g_vault == INVALID_HANDLE)
	{
		set_fail_state("Eroare la deschiderea bazei de date din folderul vault.")
	}
	
	new File[28],FilePointer,FileData[256],szName[32],szPassword[32]
	get_configsdir(File,charsmax(File))
	format(File,charsmax(File),"%s/%s",File,"slot.ini")
	FilePointer = fopen(File,"rt")
	if(FilePointer)
	{
		while(!feof(FilePointer))
		{
			fgets(FilePointer,FileData,charsmax(FileData))
			parse(FileData,szName,charsmax(szName),szPassword,charsmax(szPassword))
			TrieSetString(eData,szName,szPassword)
		}
		fclose(FilePointer)
	}
}
public cmdSay(id) {
	new szArgs[32]
	read_args(szArgs,charsmax(szArgs))
	remove_quotes(szArgs)

	if(HaveSlot[id])
	{
		if(equal(szArgs,""))
		{
			client_print(id,print_chat,"Adauga parola!")
			client_cmd(id,"messagemode")
			return
		}
		if(strlen(szArgs) < 6 || strlen(szArgs) > 20)
		{
			client_print(id,print_chat,"Parola ori este prea scurta ori prea lunga,minim 6 caractere,maxim 20!")
			client_cmd(id,"messagemode")
			return
		}
		copy(Password[id],charsmax(Password[]),szArgs)
		give_slot(id)
		return
	}
}
public cmdSlot(id) {
	new szName[32]
	get_user_name(id,szName,charsmax(szName))

	if(TrieKeyExists(eData,szName))
	{
		client_print(id,print_chat,"Ai deja slot!")
		HaveSlot[id] = false
		return
	}
	new time = (get_user_time(id,1) / 60) + iTime[id]
	new time2 = time / 3600
	
	if(time2 >= get_pcvar_num(pcvar_hours))
	{
		client_print(id,print_chat,"Adauga parola,dupa care scrii in consola setinfo _pw <parola>")
		client_cmd(id,"messagemode")
		HaveSlot[id] = true
	}
}
public cmdOre(id)
{
	new player_minutes
	player_minutes = iTime[id] + (get_user_time(id) / 60)
	
	if(player_minutes < 60)
	{
		client_print(id,print_chat,"Ai %i minute pe server",player_minutes)
		return
	}
	new player_seconds,player_hours
	player_seconds = (iTime[id] * 60) + get_user_time(id)
	player_hours = player_seconds / 3600
	client_print(id,print_chat,"Ai %i ore pe server",player_hours)
}
public client_connect(id)
{
	new PlayerPassword[32],PasswordField[5],szName[32],szPassword[32]
	get_pcvar_string(PasswordFieldCvarPointer,PasswordField,charsmax(PasswordField))
	get_user_info(id,PasswordField,PlayerPassword,charsmax(PlayerPassword))
	get_user_name(id,szName,charsmax(szName))

	if(TrieKeyExists(eData,szName))
	{
		TrieGetString(eData,szName,szPassword,charsmax(szPassword))
		if(!equal(PlayerPassword,szPassword))
		{
			server_cmd("kick #%i ^"Acest nume este rezervat pe server!^"",get_user_userid(id))
		}
	}
	LoadData(id)
}
public client_disconnect(id)
{
	iTime[id] = iTime[id] + (get_user_time(id) / 60)
	SaveData(id)
	HaveSlot[id] = false
}
public client_infochanged(id) {
	SaveData(id)
	new oldname[32],newname[32]
	get_user_name(id,oldname,charsmax(oldname))
	get_user_info(id,"name",newname,charsmax(newname))

	if(!equal(newname,oldname))
	{
		set_task(0.1,"client_connect",id)
		set_task(0.1,"LoadData",id)
	}
}
public SaveData(id)
{
	new name[32],vaultkey[64],vaultdata[256]
	get_user_name(id,name,charsmax(name))
	formatex(vaultkey,charsmax(vaultkey),"%s-OreJucate",name)
	formatex(vaultdata,charsmax(vaultdata),"%i ",iTime[id])
	nvault_set(g_vault,vaultkey,vaultdata)
}
public LoadData(id)
{ 
	new name[32],vaultkey[64],vaultdata[256],time[32]
	get_user_info(id,"name",name,charsmax(name))
	formatex(vaultkey,charsmax(vaultkey),"%s-OreJucate",name)
	formatex(vaultdata,charsmax(vaultdata),"%i ",iTime[id])
	nvault_get(g_vault,vaultkey,vaultdata,charsmax(vaultdata)) 	
	parse(vaultdata,time,charsmax(time))
	iTime[id] = str_to_num(time)
}
public give_slot(id)
{
	new File[128],name[32],FilePointer
	get_user_name(id,name,charsmax(name))
	get_configsdir(File,charsmax(File))
	format(File,charsmax(File),"%s/%s",File,"slot.ini")
	
	if(!file_exists(File))
	{
		FilePointer = fopen(File,"w+")
		fclose(FilePointer)
	}
	
	FilePointer = fopen(File,"a")
	if(FilePointer)
	{
		fprintf(FilePointer,"%s %s^n",name,Password[id])
		client_print(id,print_chat,"Ai fost adaugat cu succes,Nume: %s Parola: %s",name,Password[id])
		fclose(FilePointer)
	}
}
public plugin_end()
{
	nvault_close(g_vault)
	TrieDestroy(eData)
}
comanda /slot pentru a lua slot la x ore pe care le setezi prin cvar cvar_hours_slot "50" 50 e un exemplu la cate ore sa primesti slot
comanda /ore vezi cate ore ai

nu garantez ca functioneaza,l-am facut cam repede si nu prea m-am mai ocupat in ultimul timp.
Dabules
Membru, skill 0
Membru, skill 0
Posts: 19
Joined: 04 Feb 2016, 12:10
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

09 Feb 2016, 21:47

Merge. Multumesc mult.
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

10 Feb 2016, 14:22

Defapt ai spus asta deoarece nici macar nu l-ai testat,l-am testat eu acum si nu merge,asta e varianta buna:
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <nvault>

new const
	PLUGIN[] = "",
	VERSION[] = "2.0",
	AUTHOR[] = "S.Cosmin";

new iTime[33],Password[33][32],bool:HaveSlot[33] = false
new pcvar_hours,PasswordFieldCvarPointer,g_vault

new Trie:eData

public plugin_init() {
	register_plugin(PLUGIN,VERSION,AUTHOR)
	
	register_clcmd("say","cmdSay")
	register_clcmd("say /ore","cmdOre")
	register_clcmd("amx_slot","cmdSlot")
	
	PasswordFieldCvarPointer = get_cvar_pointer("amx_password_field")
	pcvar_hours = register_cvar("cvar_hours_slot","10")
	eData = TrieCreate()
	g_vault = nvault_open("PlayedTime")
	if(g_vault == INVALID_HANDLE)
	{
		set_fail_state("Eroare la deschiderea bazei de date din folderul vault.")
	}
	refresh()
}
public refresh()
{
	new File[128],FilePointer,FileData[256],szName[32],szPassword[32]
	get_configsdir(File,charsmax(File))
	format(File,charsmax(File),"%s/%s",File,"slot.ini")
	if(!file_exists(File))
	{
		FilePointer = fopen(File,"w+")
		fclose(FilePointer)
	}
	FilePointer = fopen(File,"rt")
	if(FilePointer)
	{
		while(!feof(FilePointer))
		{
			fgets(FilePointer,FileData,charsmax(FileData))
			parse(FileData,szName,charsmax(szName),szPassword,charsmax(szPassword))
			TrieSetString(eData,szName,szPassword)
		}
		fclose(FilePointer)
	}
}
public cmdSay(id) {
	new szArgs[192],name[32],bool:bSlot = false
	read_args(szArgs,charsmax(szArgs))
	get_user_name(id,name,charsmax(name))
	remove_quotes(szArgs)

	if(HaveSlot[id])
	{
		if(TrieKeyExists(eData,name))
		{
			color(id,"!team[AMXX]!yAi deja slot pe acest nick.")
			HaveSlot[id] = false
			bSlot = true
			return 1
		}
		if(strlen(szArgs) < 6 || strlen(szArgs) > 20 || equal(szArgs,"") || !szArgs[0])
		{
			color(id,"!team[AMXX]!yParola invalida,minim 6 caractere,maxim 20.")
			client_cmd(id,"messagemode")
			return 1
		}
		copy(Password[id],charsmax(Password[]),szArgs)
		give_slot(id)
		return 1
	}
	if(equali(szArgs,"/slot"))
	{
		if(bSlot)
		{
			color(id,"!team[AMXX]!yAi deja slot pe acest nick.")
			return 1
		}
		replace_all(szArgs,charsmax(szArgs),"/","")
		client_cmd(id,"amx_%s",szArgs)
	}
	return 0
}

public cmdSlot(id) {
	new szName[32]
	get_user_name(id,szName,charsmax(szName))
	
	if(TrieKeyExists(eData,szName))
	{
		color(id,"!team[AMXX]!yAi deja slot pe acest nick.")
		HaveSlot[id] = false
		return 1
	}
	new player_seconds,player_minutes,player_hours
	player_seconds = (iTime[id] * 60) + get_user_time(id)
	player_minutes = iTime[id] + (get_user_time(id) / 60)
	player_hours = player_seconds / 3600
	
	client_print(id,print_chat,"ai %i ore",player_hours)
	if(player_hours >= get_pcvar_num(pcvar_hours))
	{
		HaveSlot[id] = true
		color(id,"!team[AMXX]!yAdauga parola,dupa care scrii in consola !gsetinfo _pw !teamparola.")
		client_cmd(id,"messagemode")
	}
	else
	{
		color(id,"!team[AMXX]!yPana in acest moment aveti doar !g%i !yor%s (!g%i !yminut%s),mai aveti nevoie de !g%i !yor%s.",player_hours,player_hours == 1 ? "a": "e",player_minutes,player_minutes == 1 ? "" : "e",get_pcvar_num(pcvar_hours) - player_hours,get_pcvar_num(pcvar_hours) - player_hours == 1 ? "a" : "e")
		return 1
	}
	return 0
}
public cmdOre(id)
{
	new player_minutes
	player_minutes = iTime[id] + (get_user_time(id) / 60)
	
	if(player_minutes < 60)
	{
		color(id,"!team[AMXX]!yPana in acest moment aveti !g%i !yminut%s pe server.",player_minutes,player_minutes == 1 ? "" : "e")
		return
	}
	new player_seconds,player_hours
	player_seconds = (iTime[id] * 60) + get_user_time(id)
	player_hours = player_seconds / 3600
	color(id,"!team[AMXX]!yPana in acest moment aveti !g%i !yminute pe server (!g%d !yor%s).",player_minutes,player_hours,player_hours == 1? "a" : "e")
}
public client_connect(id)
{
	new PlayerPassword[32],PasswordField[5],szName[32],szPassword[32]
	get_pcvar_string(PasswordFieldCvarPointer,PasswordField,charsmax(PasswordField))
	get_user_info(id,PasswordField,PlayerPassword,charsmax(PlayerPassword))
	get_user_name(id,szName,charsmax(szName))

	if(TrieKeyExists(eData,szName))
	{
		TrieGetString(eData,szName,szPassword,charsmax(szPassword))
		if(!equal(PlayerPassword,szPassword))
		{
			server_cmd("kick #%i ^"Acest nume este rezervat pe server!^"",get_user_userid(id))
			return 1
		}
	}
	return 0
}
public client_disconnect(id)
{
	iTime[id] = iTime[id] + (get_user_time(id) / 60)
	SaveData(id)
	HaveSlot[id] = false
}
public client_infochanged(id) {
	SaveData(id)
	new oldname[32],newname[32]
	get_user_name(id,oldname,charsmax(oldname))
	get_user_info(id,"name",newname,charsmax(newname))

	if(!equal(newname,oldname))
	{
		set_task(0.1,"client_connect",id)
		set_task(0.1,"LoadData",id)
	}
}
public give_slot(id)
{
	new File[128],name[32],FilePointer
	get_user_name(id,name,charsmax(name))
	get_configsdir(File,charsmax(File))
	format(File,charsmax(File),"%s/%s",File,"slot.ini")
	
	if(!file_exists(File))
	{
		FilePointer = fopen(File,"w+")
		fclose(FilePointer)
	}

	FilePointer = fopen(File,"a")
	if(FilePointer)
	{
		fprintf(FilePointer,"%s %s^n",name,Password[id])
		color(id,"!team[AMXX]!yAi fost adaugat cu succes in baza noastra de date,Nume: !g%s !yParola: !g%s",name,Password[id])
		fclose(FilePointer)
	}
	refresh()
}
public client_putinserver(id)
{
	if(is_user_bot(id) || is_user_hltv(id))
		return
	LoadData(id)
}
public SaveData(id)
{
	new name[32],vaultkey[64],vaultdata[256]
	get_user_name(id,name,charsmax(name))
	formatex(vaultkey,charsmax(vaultkey),"%s-OreJucate",name)
	formatex(vaultdata,charsmax(vaultdata),"%i ",iTime[id])
	nvault_set(g_vault,vaultkey,vaultdata)
}
public LoadData(id)
{ 
	new name[32],vaultkey[64],vaultdata[256],time[32]
	get_user_info(id,"name",name,charsmax(name))
	formatex(vaultkey,charsmax(vaultkey),"%s-OreJucate",name)
	formatex(vaultdata,charsmax(vaultdata),"%i ",iTime[id])
	nvault_get(g_vault,vaultkey,vaultdata,charsmax(vaultdata)) 	
	parse(vaultdata,time,charsmax(time))
	iTime[id] = str_to_num(time)
}
public plugin_end()
{
	nvault_close(g_vault)
	TrieDestroy(eData)
}
stock color(const id,const input[ ],any:...)
{
	new count = 1,players[32]
	static msg[191]
	vformat(msg,190,input,3)
	replace_all(msg,190,"!g","^4")	//verde
	replace_all(msg,190,"!y","^1") //- galben
	replace_all(msg,190,"!team","^3") //- echipa
	replace_all(msg,190,"!n","^0") //- normal

	if(id) players[0] = id; else get_players(players,count,"ch")
	{
		for(new i = 0; i < count; i++)
		{
			if(is_user_connected(players))
			{
				message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players)
				write_byte(players)
				write_string(msg)
				message_end()
			}
		}
	}
}

comanda /slot pentru a lua slot la x ore pe care le setezi prin cvar cvar_hours_slot "10" 10 e un exemplu la cate ore sa primesti slot
comanda /ore vezi cate ore ai
imagini:
| Afiseaza codul
Image
Image
Image
Image
Image
Image
Image
User avatar
Madbrain
Membru, skill +1
Membru, skill +1
Posts: 259
Joined: 14 Aug 2009, 11:50
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com!
Detinator server CS: Da
Location: Birmingham

10 Feb 2016, 20:54

O sa il bag si eu la mine pe server sa vad daca merge bine.Are ceva daca am si un plugin pe server care iti arata cate ore ai jucat pe server?
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

10 Feb 2016, 21:01

si asta iti arata orele,nu are nimic numai sa nu aiba comenzile la fel gen asta al meu are /ore si /slot
User avatar
Madbrain
Membru, skill +1
Membru, skill +1
Posts: 259
Joined: 14 Aug 2009, 11:50
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com!
Detinator server CS: Da
Location: Birmingham

10 Feb 2016, 21:14

Are comenzile /time si /orejucate.
Ma uitam prin el si nu am vazut sa fie si un anunt care sa apara in chat la 10 ore poti sa ai slot direct pe server, sau ceva de genul asta.Sau nu am vazut eu bine?
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

10 Feb 2016, 21:33

spune-mi ce mesaj vrei si iti bag acum.
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 13 guests