/* Plugin generated by AMXX-Studio */
/* 
W oryginale:
lista_klas - wyswietla id klas

cod_przenies "nick" "id klasy 1." "id klasy 2."

W mojej edycji pluginu:

cod_przenies "nick" "id klasy 1." "id klasy 2." - przenosi expa z jednej klasy na druga, na pierwszej ustawia 0 expa
np. na klasie 1. masz 1000 expa, na klasie 2. masz 500 expa - na klasie 1. ustawia 0 expa, na 2. ustawia 1000 expa

cod_zamien "nick" "id klasy 1." "id klasy 2." - zamienia lvle pomiedzy klasami 
np. na klasie 1. masz 1000 expa, na klasie 2. 5000 expa - na klasie 1. ustawia 5000 expa, na klasie 2. ustawia 1000 expa

cod_sumuj "nick" "id klasy 1." "id klasy 2." - dodaje exp z klasy 1. do klasy 2, na 1. ustawia 0 expa
np. na klasie 1. jest 1000 expa, na klasie 1. 5000 expaa - na klasie 1. ustawia 0 expa, na klasie 2. ustawia 6000 expa

lista_klas - wyswietla id klas 
*/
#include <amxmodx>
#include <codmod>

#define FLAGA ADMIN_IMMUNITY

public plugin_init() {
	register_plugin("Przenoszenie EXPa", "1.0", "Orginal version: byQQ, Edit version: kisiel96");
	
	register_concmd("cod_przenies", "handle_przenies");
	register_concmd("cod_zamien", "handle_zamien");
	register_concmd("cod_zsumuj", "handle_sumuj");
	register_concmd("cod_sumuj", "handle_sumuj");

	register_clcmd("lista_klas", "lista_klas");
}

public handle_przenies(id)
{
	if(get_user_flags(id) & FLAGA)
	{
		new arg[3][33];
		new ids[2];
		
		read_argv(1, arg[0], 32);  // Nick
		read_argv(2, arg[1], 10);  // ID 1
		read_argv(3, arg[2], 10);  // ID 2
		
		new player = find_player("ablj", arg[0]);
		
		if(!player) return PLUGIN_CONTINUE;
				
		ids[0] = str_to_num(arg[1]);
		ids[1] = str_to_num(arg[2]);
				
		new nick[2][33], klasa[2][33];
		get_user_name(id, nick[0], 32);
		get_user_name(player, nick[1], 32);
		
		cod_get_class_name(ids[0], klasa[0], 32);
		cod_get_class_name(ids[1], klasa[1], 32);
		
		cod_set_user_class(player, ids[0], 1);
		new temp = cod_get_user_xp(player);
		cod_set_user_xp(player, 0);
		cod_set_user_class(player, ids[1], 1);
		cod_set_user_xp(player, temp);
		
		client_print(id, print_chat, "Admin %s przeniosl exp %s z %s na %s", nick[0], nick[1], klasa[0], klasa[1]);
	}
	return PLUGIN_CONTINUE;
	
}

public handle_zamien(id)
{
	if(get_user_flags(id) & FLAGA)
	{
		new arg[3][33];
		new ids[2];
		
		read_argv(1, arg[0], 32);  // Nick
		read_argv(2, arg[1], 10);  // ID 1
		read_argv(3, arg[2], 10);  // ID 2
		
		new player = find_player("ablj", arg[0]);
		
		if(!player) return PLUGIN_CONTINUE;
				
		ids[0] = str_to_num(arg[1]);
		ids[1] = str_to_num(arg[2]);
				
		new nick[2][33], klasa[2][33];
		get_user_name(id, nick[0], 32);
		get_user_name(player, nick[1], 32);
		
		cod_get_class_name(ids[0], klasa[0], 32);
		cod_get_class_name(ids[1], klasa[1], 32);
		
		cod_set_user_class(player, ids[0], 1);
		new temp1 = cod_get_user_xp(player);
		cod_set_user_class(player, ids[1], 1);
		new temp2 = cod_get_user_xp(player);
		cod_set_user_xp(player, temp1);
		cod_set_user_class(player, ids[0], 1);
		cod_set_user_xp(player, temp2);
		
		client_print(id, print_chat, "Admin %s zamienil exp %s pomiedzy %s a %s", nick[0], nick[1], klasa[0], klasa[1]);
	}
	return PLUGIN_CONTINUE;
	
}

public handle_sumuj(id)
{
	if(get_user_flags(id) & FLAGA)
	{
		new arg[3][33];
		new ids[2];
		
		read_argv(1, arg[0], 32);  // Nick
		read_argv(2, arg[1], 10);  // ID 1
		read_argv(3, arg[2], 10);  // ID 2
		
		new player = find_player("ablj", arg[0]);
		
		if(!player) return PLUGIN_CONTINUE;
				
		ids[0] = str_to_num(arg[1]);
		ids[1] = str_to_num(arg[2]);
				
		new nick[2][33], klasa[2][33];
		get_user_name(id, nick[0], 32);
		get_user_name(player, nick[1], 32);
		
		cod_get_class_name(ids[0], klasa[0], 32);
		cod_get_class_name(ids[1], klasa[1], 32);
		
		cod_set_user_class(player, ids[0], 1);
		new temp1 = cod_get_user_xp(player);
		cod_set_user_xp(player, 0);
		cod_set_user_class(player, ids[1], 1);
		new temp2 = cod_get_user_xp(player);
		cod_set_user_xp(player, temp1+temp2);
		
		client_print(id, print_chat, "Admin %s zsumowal exp %s z %s i %s", nick[0], nick[1], klasa[0], klasa[1]);
	}
	return PLUGIN_CONTINUE;
	
}

public lista_klas(id)
{
	client_print(id, print_console, "===============================================");
	
	for(new i = 0; i < cod_get_classes_num(); i++)
	{
		new klasa[33]; cod_get_class_name(i, klasa, 32);
		client_print(id, print_console, "ID: %d | Nazwa: %s", i, klasa);
	}
	
	client_print(id, print_console, "===============================================");	
}
