Simple Level Mod Reparare Save XP

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 .
Post Reply
User avatar
Hathlze2002
Membru, skill 0
Membru, skill 0
Posts: 22
Joined: 09 Dec 2020, 17:54
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CS.CSUNDERWORLD.RO
Fond eXtream: 0
Has thanked: 8 times

13 Dec 2020, 12:36

Plugin Cerut: Simple Level Mod Save XP
Descriere (adica ce face el mai exact): Acest plugin cu toate ca are savexp, nu isi face deloc efectul. Am jucat cateva zile si cand intram sau mai dadeam un restart la sv, de la Level 5 ca exemplu, aveam din nou Level 1. As vrea ca cineva sa rezolve problema cu salvarea statusului.
Serverul impune conditii strict HLDS/REHLDS?: HLDS
Ai cautat pluginul?(daca da, precizeaza cum): pluginuri-extream/simple-level-mod-t268437.html
Necesita mod special?: NU
RoyalServer
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:

13 Dec 2020, 14:07

pui sv off, ștergi vechiul vault, pui plg ăsta, dai start sv, apoi îi mulțumești lu levin

Code: Select all

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

#pragma tabsize 0

static const
	PLUGIN[] = "Simple Level Mod",
	VERSION[] = "2.0",
	AUTHOR[] = "scosmyn";

#define MAX_LEVELS	7

new const Kills[MAX_LEVELS] =
{
	0,					//1
	100,					//2
	450,					//3
	900,					//4
	2000,					//5
	4000,					//6
	99999999				//nu se sterge
}

new const szTag[MAX_LEVELS - 1][] =
{
	"",
	"Bot",
	"Beginner",
	"Professional",
	"Master",
	"Dumnezeu"
}

new Level[33],Kill[33],szName[32],g_vault,g_sync
new pcvar_hs,pcvar_kill,pcvar_knife,pcvar_he,pcvar_efect,pcvar_r,pcvar_g,pcvar_b,pcvar_hp_lvl,pcvar_ap_lvl

public plugin_init() {
	register_plugin(PLUGIN,VERSION,AUTHOR)
	register_event("DeathMsg","ev_msg","a")
	RegisterHam(Ham_Spawn,"player","player_spawn",1)
	
	pcvar_hs = register_cvar("cvar_hs_bonus","3")
	pcvar_kill = register_cvar("cvar_normal_bonus","1")
	pcvar_knife = register_cvar("cvar_knife_bonus","3")
	pcvar_he = register_cvar("cvar_he_bonus","3")
	pcvar_efect = register_cvar("cvar_effect_lvl","3")
	pcvar_r = register_cvar("cvar_red","255")
	pcvar_g = register_cvar("cvar_green","0")
	pcvar_b = register_cvar("cvar_blue","0")
	pcvar_hp_lvl = register_cvar("cvar_hp_lvl","5")
	pcvar_ap_lvl = register_cvar("cvar_ap_lvl","10")
	
	g_vault = nvault_open("simple_lvl_mod")
	g_sync = CreateHudSyncObj()
	
	if(g_vault == INVALID_HANDLE)
		set_fail_state("Eroare la deschiderea bazei de date din vault.")
}

public player_spawn(id) {
	if(!is_user_alive(id) || is_user_bot(id))
		return HAM_HANDLED
	
	if(Level[id] < 1)
		Level[id] = 1

	set_user_health(id,get_user_health(id) + get_pcvar_num(pcvar_hp_lvl) * Level[id])
	set_user_armor(id,get_user_armor(id) + get_pcvar_num(pcvar_ap_lvl) * Level[id])

	set_task(0.1,"iteme",id)
	return HAM_HANDLED
}

public ev_msg( ) {
	static kiler; 	kiler = read_data(1)
	static hs; 		hs = read_data(3)
	
	if(kiler == read_data(2) || !is_user_alive(kiler))
		return

	if(hs)
		Kill[kiler]+= get_pcvar_num(pcvar_hs)
	else
		Kill[kiler]+= get_pcvar_num(pcvar_kill)
	
	if(get_user_weapon(kiler) == CSW_KNIFE && !hs)
		Kill[kiler]+= get_pcvar_num(pcvar_knife)
	if(get_user_weapon(kiler) == CSW_HEGRENADE && !hs)
		Kill[kiler]+= get_pcvar_num(pcvar_he)

	if(Level[kiler] < MAX_LEVELS)
	{
		while(Kill[kiler] >= Kills[Level[kiler]])
		{
			Level[kiler]++
			color(kiler,"!teamFelicitari,ai ajuns la level %i (!g%s!team).",Level[kiler],szTag[Level[kiler]])
			screen_fade(kiler, get_pcvar_num(pcvar_efect), get_pcvar_num(pcvar_r), get_pcvar_num(pcvar_g), get_pcvar_num(pcvar_b), 115)
			return
		}
	}
	SaveData(kiler)
}

public client_putinserver(id) {
	if(!is_user_bot(id))
	{
		LoadData(id)
		set_task(1.0,"show_hud",id+0x4332,_,_,"b")
	}
}

public client_disconnect(id) {
	remove_task(id+0x4332)
	SaveData(id)
}

public show_hud(id) {
	id-=0x4332
	get_user_name(id,szName,charsmax(szName))

	if(is_user_alive(id))
	{
		set_hudmessage(0, 255, 0, 0.0, 0.24, 0, 6.0, 1.0)
		ShowSyncHudMsg(id,g_sync,"Name: %s^nLevel: %d^nStatus: %s^nKill's: %i/%i.",szName,Level[id],szTag[Level[id]],Kill[id],Kills[Level[id]])
	}
}

public SaveData(id)
{
	static name[33],vaultkey[65],vaultdata[256]
	get_user_name(id,name,charsmax(name))
	formatex(vaultkey,charsmax(vaultkey),"%s-Mod",name)
	formatex(vaultdata,charsmax(vaultdata),"^%d^" ^"%d^"",Kill[id],Level[id])
	nvault_set(g_vault,vaultkey,vaultdata)
}

public LoadData(id)
{
	static name[33],vaultkey[65],vaultdata[256],iTS
	get_user_name(id,name,charsmax(name))
	formatex(vaultkey,charsmax(vaultkey),"%s-Mod",name)
	if(nvault_lookup(g_vault,vaultkey,vaultdata,charsmax(vaultdata),iTS)){
		static kill[32],level[32]
		parse(vaultdata, kill, charsmax(kill), level, charsmax(level))
		Kill[id] = str_to_num(kill)
		Level[id] = str_to_num(level)
	}
	else{
		Kill[id] = 0
		Level[id] = 0
	}
}
public plugin_end() nvault_close(g_vault)
public iteme(id) {
	switch(Level[id])
	{
		case 1:
		{
			give_item(id,"weapon_deagle")
			cs_set_user_bpammo(id,CSW_DEAGLE,35)
		}
		case 2:
		{
			give_item(id,"weapon_mp5navy")
			give_item(id,"weapon_deagle")
			cs_set_user_bpammo(id,CSW_DEAGLE,35)
			cs_set_user_bpammo(id,CSW_MP5NAVY,120)
		}
		case 3:
		{
			if(get_user_team(id) == 1)
			{
				give_item(id,"weapon_ak47")
				give_item(id,"weapon_deagle")
				cs_set_user_bpammo(id,CSW_AK47,90)
				cs_set_user_bpammo(id,CSW_DEAGLE,35)
			}
			else
			{
				give_item(id,"weapon_m4a1")
				give_item(id,"weapon_deagle")
				cs_set_user_bpammo(id,CSW_M4A1,90)
				cs_set_user_bpammo(id,CSW_DEAGLE,35)
			}
		}
		case 4:
		{
			give_item(id,"weapon_deagle")
			cs_set_user_bpammo(id,CSW_DEAGLE,35)
			give_item(id,"weapon_awp")
			cs_set_user_bpammo(id,CSW_AWP,30)
		}
		case 5:
		{
			random_weapons(id)
		}
	}
}

stock random_weapons(id) {
	new wp = random_num(0,2)
	
	switch(wp)
	{
		case 0:
		{
			give_item(id,"weapon_m4a1")
			cs_set_user_bpammo(id,CSW_M4A1,90)
		}
		case 1:
		{
			give_item(id,"weapon_ak47")
			cs_set_user_bpammo(id,CSW_AK47,90)
		}
		case 2:
		{
			give_item(id,"weapon_awp")
			cs_set_user_bpammo(id,CSW_AWP,30)
		}
	}
}
stock screen_fade(id,holdtime,r,g,b,a)
{
   message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("ScreenFade"),{ 0, 0, 0 },id);
   write_short(seconds_to_units(holdtime));
   write_short(seconds_to_units(holdtime));
   write_short(0);
   write_byte(r);
   write_byte(g);
   write_byte(b);
   write_byte(a);
   message_end();
}

stock seconds_to_units(time)
{
   return((1 << 12) * (time))
}

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[ i ] ) )
		{
			message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] )
			write_byte( players[ i ] );
			write_string( msg );
			message_end( );
		}
	}
}
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
Hathlze2002
Membru, skill 0
Membru, skill 0
Posts: 22
Joined: 09 Dec 2020, 17:54
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CS.CSUNDERWORLD.RO
Fond eXtream: 0
Has thanked: 8 times

13 Dec 2020, 17:27

Mersi :)). Foarte tare la faza cu : apoi îi mulțumești lu levin.
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 26 guests