Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Wklejka 4ytr6iono dodana przez Gość, 25.01.2013 20:48
Typ:



1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
/* ================================================================================================ /
	data  25-1-2013     diablo mod bazujacy na grze dota/dota 2   autor stachu for cs-hedzik.pl
================================================================================================= */
/////  iniclude 
 
 
#include <amxmodx>
#include <amxmisc>
 
#include <engine>
#include <fakemeta> 
#include <csx>
#include <cstrike>
 
#include <fun>
#include <fakemeta_util>
#include <sqlx>
#include <colorchat> 
#include <hamsandwich> 
#include <nvault>
#include <nvault_util> 
#include <xs>
////////////////////////
 
 
 
 
#define ILE_KLAS 3
 
/////////   sql
new Handle:g_SqlTuple
 
new g_sqlTable[64] = "dbmod_tables"
new g_boolsqlOK=0
////////  
 
enum { NONE = 0, Blood}
new Race[ILE_KLAS][26] = { "None","Bloodseeker"}
new race_heal[ILE_KLAS] = { 130,90 }
new race_sila[ILE_KLAS] = {0,15}
new race_zrecznosc[ILE_KLAS] = {0,7}
new race_inteligencja[ILE_KLAS] = {0,5}
 
////////
new player_lvl[33]
new player_class[33]
new asked_klass[33] 
 
 
new const LevelXP[127] = {
0,1500,5100,8700,9900
}
 
 
public plugin_init()
{
///// sql
register_cvar("diablo_sql_host","localhost",FCVAR_PROTECTED)
register_cvar("diablo_sql_user","root",FCVAR_PROTECTED)
register_cvar("diablo_sql_pass","root",FCVAR_PROTECTED)
register_cvar("diablo_sql_database","dbmod",FCVAR_PROTECTED)
register_cvar("diablo_sql_table","dbmod_tablet",FCVAR_PROTECTED)
 
 
 
set_task(1.0, "sql_start");
}
public sql_start() {
if(g_boolsqlOK) return;
 
new host[128], user[64], pass[64], database[64];
 
get_cvar_string("diablo_sql_database", database, 63);
get_cvar_string("diablo_sql_host", host, 127);
get_cvar_string("diablo_sql_user", user, 63);
get_cvar_string("diablo_sql_pass", pass, 63);
 
g_SqlTuple = SQL_MakeDbTuple(host, user, pass, database);
 
get_cvar_string("diablo_sql_table", g_sqlTable, 63);
 
new q_command[512];
formatex(q_command, 511, "CREATE TABLE IF NOT EXISTS `%s` (`zapis` VARCHAR(48),`klasa` INT(2),`lvl` INT(3) DEFAULT 1,`exp` INT(9),`sila` INT(3),
`int` INT(3) ,`zre` INT(3),`misja` INT(3),`kamienie` INT(5),
`postep` INT(3),`art` INT(3),`wyt` INT(3) DEFAULT 0) DEFAULT CHARSET `utf8` COLLATE `utf8_general_ci`", g_sqlTable);
 
SQL_ThreadQuery(g_SqlTuple, "TableHandle", q_command);
}
/////////////
public TableHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) {
if(FailState == TQUERY_CONNECT_FAILED) {
log_to_file("diablo.log", "Could not connect to SQL database.");
return PLUGIN_CONTINUE;
}
if(FailState == TQUERY_QUERY_FAILED) {
log_to_file("diablo.log", "Table Query failed.");
return PLUGIN_CONTINUE;
}
if(Errcode) {
log_to_file("diablo.log", "Error on Table query: %s", Error);
return PLUGIN_CONTINUE;
}
 
g_boolsqlOK = 1;
 
look_for_none()
 
return PLUGIN_CONTINUE;
}
/////////////////
public look_for_none()
{
	for(new i=1;i<ILE_KLAS;i++)
	{
		if(is_user_alive(i) )
		{
			if(player_class[i]==0)
			{
				select_class_query(i)
			}
		}
	}
}
//////////////////
public select_class_query(id) {
	if(asked_klass[id])
		return PLUGIN_HANDLED;
 
	if(g_boolsqlOK) {
		new name[48], data[1], q_command[512];
		data[0] = id;
		formatex(q_command, 511, "SELECT `klasa`, `lvl` FROM `%s` WHERE `zapis`='%s'", g_sqlTable,sprawdz_co_ma(id,name));
 
		SQL_ThreadQuery(g_SqlTuple, "select_class_handle", q_command, data, 1);
 
		asked_klass[id] = 1;
	}
	else sql_start();
 
	return PLUGIN_HANDLED;
}
////////////////////////////
stock sprawdz_co_ma(id,sid[])
{
		get_user_authid(id, sid, 47);
		if(contain(auth, "STEAM_0:0:") != -1 || contain(auth, "STEAM_0:1:") != -1)
                return sid
 
 
		get_user_name(id, sid, 47);
		replace_all(sid, 47, "'", "'");
        return sid;
}
public select_class_handle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) {
	new id = Data[0];
 
	if(FailState == TQUERY_CONNECT_FAILED) {
		log_to_file("diablo.log", "Could not connect to SQL database.");
		asked_klass[id] = 0;
		return PLUGIN_CONTINUE;
	}
	if(FailState == TQUERY_QUERY_FAILED) {
		log_to_file("diablo.log", "select_class_query Query failed.");
		asked_klass[id] = 0;
		return PLUGIN_CONTINUE;
	}
	if(Errcode) {
		log_to_file("diablo.log", "Error on select_class_query query: %s", Error);
		asked_klass[id] = 0;
		return PLUGIN_CONTINUE;
	}
 
	if(SQL_MoreResults(Query)) {
		new i, numklasa, numlvl;
		numklasa = SQL_FieldNameToNum(Query, "klasa");
		numlvl = SQL_FieldNameToNum(Query, "lvl");
		while(SQL_MoreResults(Query)) {
			i = SQL_ReadResult(Query, numklasa);
			player_class_lvl[id][i] = SQL_ReadResult(Query, numlvl);
			SQL_NextRow(Query);
		}
	}
	if(asked_klass[id] == 1) {
		asked_klass[id] = 2;
		select_class(id);
	}
 
	return PLUGIN_CONTINUE;
}
public LoadXP(id, klasa) {
if(is_user_bot(id) || asked_sql[id] || klasa == NONE)
return PLUGIN_HANDLED;
 
if(g_boolsqlOK) {
	new data[2];
	data[0] = id;
	data[1] = klasa;
 
	new sid[48], q_command[512];
	formatex(q_command, 511, "SELECT * FROM `%s` WHERE `zapis`='%s' AND `klasa`='%i'", g_sqlTable, sprawdz_co_ma(id,sid), klasa);
 
	SQL_ThreadQuery(g_SqlTuple, "Load_xp_handle", q_command, data, 2);
 
	asked_sql[id] = 1;
}
else sql_start();
 
return PLUGIN_HANDLED;
}
public Load_xp_handle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) {
new id = Data[0];
asked_sql[id] = 0;
 
if(FailState == TQUERY_CONNECT_FAILED) {
	log_to_file("diablo.log", "Could not connect to SQL database.");
	return PLUGIN_CONTINUE;
}
if(FailState == TQUERY_QUERY_FAILED) {
	log_to_file("diablo.log", "Load_xp Query failed.");
	return PLUGIN_CONTINUE;
}
if(Errcode) {
	log_to_file("diablo.log", "Error on Load_xp query: %s", Error);
	return PLUGIN_CONTINUE;
}
 
new klasa = Data[1];
 
if(SQL_MoreResults(Query)) 
{
	player_class[id] = klasa;
	player_lvl[id] = player_class_lvl[id][klasa];
	player_xp[id] =	SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "exp"));
}
else
	create_klass(id, klasa);
 
	return PLUGIN_CONTINUE;
}
public create_klass(id, class) {
if(g_boolsqlOK) {
if(!is_user_bot(id) && !database_user_created[id]) {
	new data[2];
	data[0] = id;
	data[1] = class;
 
	new name[48], q_command[512];
 
	log_to_file("test_log.log", "*** %s [%s] <%s> *** Create %s ***", sprawdz_co_ma(id,name), Race[class]);
 
	formatex(q_command, 511, "INSERT INTO `%s` (`nick`,`klasa`,`lvl`,`exp`) VALUES ('%s','%i',1,1)", g_sqlTable, sprawdz_co_ma(id,name), class);
 
	SQL_ThreadQuery(g_SqlTuple, "create_klass_handle", q_command, data, 2);
 
	database_user_created[id] = 1;
}
}
else sql_start();
}
public select_class(id)
{
	if(is_user_bot(id)) return PLUGIN_HANDLED;
	asked_klass[id] = 0
 
	new MyMenu=menu_create("Wybierz Strone","select_class_menu");
	menu_additem(MyMenu,"BETA","",0)
 
	menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie");
 
	menu_setprop(MyMenu,MPROP_PERPAGE,7)
 
	menu_display(id, MyMenu,0);
	return PLUGIN_HANDLED;
}
public select_class_menu(id, menu, item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	switch(item) 
	{ 
		case 0: strona1(id)
		}
	return PLUGIN_HANDLED;
}
public strona1(id)
{
	new text1[128]
	format(text1, 127,"BloodSeeker  Lev :%i",player_class_lvl[id][1])
 
	new MyMenu=menu_create("Wybierz","select_strona3");
	menu_additem(MyMenu,text1,"",0,_)
 
	menu_setprop(MyMenu,MPROP_EXITNAME,"Wroc");
 
	menu_setprop(MyMenu,MPROP_PERPAGE,7)
 
	menu_display(id, MyMenu,0);
	return PLUGIN_HANDLED;
}
public select_strona3(id, menu, item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		select_class(id)
		return PLUGIN_HANDLED;
	}
	switch(item) 
	{ 
		case 0:{
			player_class[id] = Blood
			LoadXP(id, player_class[id])
		}
	}
	otwarte_menu[id] = false	
	return PLUGIN_HANDLED;
}
 
 
 
/////////////////////////////////////////////////////////
 
 
/////////////////
public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker)){
		return HAM_IGNORED;
	}
 
 
	damage*=krytyk(idattacker,this)
 
	item_take_dolicz(idattacker,this,damage,weapon)
 
 
	if(damagebits & DMG_ENERGYBEAM||damagebits & DMG_SHOCK){
		pokaz_obr(idattacker,damage)
	}
 
	if(damage>175) player_dmg[idattacker]+=damage/2.0
	else player_dmg[idattacker]+=damage
	dmg_exp(idattacker)
 
	//////inne////////
	if (HasFlag(idattacker,Flag_Ignite)){
		RemoveFlag(idattacker,Flag_Ignite)
	}
 
	SetHamParamFloat(4, damage);
	return HAM_IGNORED;
}
 
new Float:tablica_krytyczne[33][2]
////////  [0]  - szansa na krytyk     np  =  0.01  = 10% 
////////   [1] - wielkosc krytyka 
stock krytyk(at,id)
{
	if(tablica_krytyczne[at][0]<0)
		return 1.0
 
	if(random_float(1*tablica_krytyczne[at][0],1)==1
		return tablica_krytyczne[at][1]
 
}

Dodanych wklejek: 12215
Powered By (Pav32) Pastebin © 2011