Existing user? Sign in
Sign up
Games
Servers
Useful
User
Pass
2FA
Atentie! Aceasta este versiunea LowFi a topicului! Click
aici
pentru varianta originala.
[PLUGIN] ZP Points System with Shop [Final Version + All Code Rewritten] [EDIT4]
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Plugins
Author
Message
12831
Legendary.
[Banned user]
Posted: 10-09-2016, 22:46:39
| Translate post to:
... (
Click for more languages
)
EDIT: Codul a fost putin modificat cu ce mi-a sugerat destroi sa modific.
EDIT2: Am adaugat salvare de tipul nValut in loc de fValut.
EDIT3: Am modificat comenzile de dat si luat puncte, acum nu poti sa ii iei unui jucator o suma mai mare de puncte decat atat cat are, acum se pot seta punctele pe 0 (zp_points <nume> 0), codul a fost optimizat, etc..
EDIT4: Am adaugat MySql la cerere, am nevoie de cineva sa-l testeze.
Descriere*:
Plugin de Puncte pentru Zombie Plague
Descarcare*:
Spoiler:
Code:
/*
v1.0 - Relase
v2.0 - Added FVault
v3.0 - Added Admin Commands
v4.0 - Added Log Files with Cvar
v5.0 - Added Shop Menu
v6.0 - Added Colored Messages
v7.0 - Added Commas
v8.0 - Fixed Bug's
v8.1 - Fixed More Bugs
v8.2 - Modified Commands
v8.3 - Added MySql
*** By Remus Tucã a.k.a Legendary (IceCreamCandy) ***
*/
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fakemeta>
#include <hamsandwich>
#include <ColorChat>
#include <sqlx>
#include <zombieplague>
#define PLUGIN "ZP Points"
#define VERSION "8.3"
#define AUTHOR "Legendary"
#define is_user_valid_connected(%1) (1 <= %1 <= g_maxplayers && g_isconnected[%1])
#pragma tabsize 0
new Points[32]
new g_isconnected[33]
new g_playername[33][32]
new cvar_logcommands, save_type
new g_maxplayers, g_msgSayText, g_MsgSync, g_vault;
new mysqlx_host, mysqlx_user, mysqlx_db, mysqlx_pass;
new Handle:g_hTuple;
new bool:g_GodMode[33]
new bool:g_Damage[33]
new bool:g_Password[33]
new const szTables[][] =
{
"CREATE TABLE IF NOT EXISTS `mytable` ( `Points` varchar(32) NOT NULL, PRIMARY KEY (`player_id`) ) TYPE=MyISAM;"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
cvar_logcommands = register_cvar("zp_logpoints", "1")
save_type = register_cvar("zp_points_savetype","1"); // Save Points to: 1 = MySQL, 0 = NVault.
mysqlx_host = register_cvar ("zp_points_host", ""); // The host from the db
mysqlx_user = register_cvar ("zp_points_user", ""); // The username from the db login
mysqlx_pass = register_cvar ("zp_points_pass", ""); // The password from the db login
mysqlx_db = register_cvar ("zp_points_dbname", ""); // The database name
register_concmd("zp_points", "datpuncte", ADMIN_CVAR, " - <nume> <puncte>");
register_concmd("zp_take_points", "luatpuncte", ADMIN_CVAR, " - <nume> <puncte>");
register_clcmd("say /shop", "command_Buy");
register_clcmd("say shop", "command_Buy");
register_clcmd("INTRODUCETI_PAROLA", "points_sistem");
register_menucmd(register_menuid("Meniu"), 1023, "BuyMenu")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
g_msgSayText = get_user_msgid("SayText")
g_MsgSync = CreateHudSyncObj()
g_maxplayers = get_maxplayers()
g_vault = nvault_open( "Points System" );
if( g_vault == INVALID_HANDLE)
{
set_fail_state( "nValut returned invalid handle!" );
}
MySQLx_Init()
}
public plugin_natives()
{
register_native( "zp_get_user_points", "native_get_user_points", 1 )
register_native( "zp_set_user_points", "native_set_user_points", 1 )
}
public client_putinserver(id)
{
Points[id] = 0;
LoadData(id)
}
public client_disconnect(id)
{
if (g_GodMode[id]) g_GodMode[id] = false;
if (g_Damage[id]) g_Damage[id] = false;
if (g_Password[id]) g_Password[id] = false;
SaveData(id)
}
public fw_PlayerSpawn_Post(id)
{
if (g_GodMode[id])
{
g_GodMode[id] = false;
fm_set_user_godmode(id, 1);
}
if (g_Damage[id])
{
g_Damage[id] = false;
}
}
public fw_PlayerKilled(victim, attacker, shouldgib)
{
if (is_user_connected(victim) && g_Damage[victim]) g_Damage[victim] = false
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if (g_Damage[attacker])
{
damage *= 2.0;
SetHamParamFloat(4, damage);
}
}
public native_get_user_points(id)
{
return Points[id];
}
public native_set_user_points(id, points)
{
Points[id] += points;
}
public command_Buy(id)
{
new menuBody[2025];
add(menuBody, 2024, "\r| \wMeniu Cumparare \y(Puncte) \r|^n^n");
add(menuBody, 2024, "\r|1|\w God Mode \r(80 Puncte) \y[Runda Urmatoare]^n");
add(menuBody, 2024, "\r|2|\w Damage Dublu \r(40 Puncte) \y[Runda Urmatoare]^n");
add(menuBody, 2024, "\r|3|\w Cumpara \rSlot Rezervat \wpe Server \r(450 Puncte)^n");
add(menuBody, 2024, "\r|4|\w 100 Credite \r(50 Puncte)^n");
add(menuBody, 2024, "\r|5|\w 250 Credite \r(125 Puncte)^n");
add(menuBody, 2024, "\r|6|\w 500 Credite \r(250 Puncte)^n");
add(menuBody, 2024, "\r|7|\w 1,000 Credite \r(500 Puncte) \y[Nou]^n");
add(menuBody, 2024, "\r|8|\w 5,000 Credite \r(2,000 Puncte) \y[Nou]^n^n");
add(menuBody, 2024, "\r|0|\y Anulare^n");
show_menu(id, (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<8 | 1<<9), menuBody, -1, "Meniu");
}
public BuyMenu(id, key)
{
new name[32];
get_user_name(id, name, 31);
switch(key)
{
case 0:
{
if (Points[id] >= 80)
{
g_GodMode[id] = true;
set_hudmessage(25, 10, 250, -1.0, 0.7, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_MsgSync, "%s a cumparat God Mode!", name)
zp_colored_print(0, "^1[^4Points^1] ^4%s ^1a cumparat ^3God Mode^1.", name);
Points[id] -= 80
}
else
zp_colored_print(id, "^1[^4Points^1] Nu ai destule ^3Puncte^1! Iti trebuie^4 80 Puncte^1.");
}
case 1:
{
if (Points[id] >= 40)
{
g_Damage[id] = true;
set_hudmessage(25, 250, 10, -1.0, 0.7, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_MsgSync, "%s a cumparat Damage Dublu!", name)
zp_colored_print(0, "^1[^4Points^1] ^4%s ^1a cumparat ^3Damage Dublu^1.", name);
Points[id] -= 40
}
else
zp_colored_print(id, "^1[^4Points^1] Nu ai destule ^3Puncte^1! Iti trebuie^4 40 Puncte^1.");
}
case 2:
{
if (Points[id] >= 450)
{
if (get_user_flags(id) & ADMIN_RESERVATION)
{
zp_colored_print(id, "^1[^4Points^1] ^3Tu ai deja, of of.");
return PLUGIN_HANDLED;
}
else
{
g_Password[id] = true;
client_cmd(id, "messagemode INTRODUCETI_PAROLA");
zp_colored_print(id, "^1[^4Points^1] Va rugam introduceti o parola si apasati ^4ENTER^1.");
zp_colored_print(id, "^1[^4Points^1] Va rugam introduceti o parola si apasati ^4ENTER^1.");
zp_colored_print(id, "^1[^4Points^1] Va rugam introduceti o parola si apasati ^4ENTER^1.");
zp_colored_print(id, "^1[^4Points^1] Va rugam introduceti o parola si apasati ^4ENTER^1.");
}
}
else
zp_colored_print(id, "^1[^4Points^1] Nu ai destule ^3Puncte^1! Iti trebuie^4 450 Puncte^1.");
}
case 3:
{
if (Points[id] >= 50)
{
zp_set_user_ammo_packs(id, 100)
zp_colored_print(0, "^1[^4Points^1] ^4%s ^1a cumparat^3 100 Credite^1.", name);
Points[id] -= 50
}
else
zp_colored_print(id, "^1[^4Points^1] Nu ai destule ^3Puncte^1! Iti trebuie^4 50 Puncte^1.");
}
case 4:
{
if (Points[id] >= 125)
{
zp_set_user_ammo_packs(id, 250)
zp_colored_print(0, "^1[^4Points^1] ^4%s ^1a cumparat^3 250 Credite^1.", name);
Points[id] -= 125
}
else
zp_colored_print(id, "^1[^4Points^1] Nu ai destule ^3Puncte^1! Iti trebuie^4 125 Puncte^1.");
}
case 5:
{
if (Points[id] >= 250)
{
zp_set_user_ammo_packs(id, 500)
zp_colored_print(0, "^1[^4Points^1] ^4%s ^1a cumparat^3 500 Credite^1.", name);
Points[id] -= 250
}
else
zp_colored_print(id, "^1[^4Points^1] Nu ai destule ^3Puncte^1! Iti trebuie^4 250 Puncte^1.");
}
case 6:
{
if (Points[id] >= 500)
{
zp_set_user_ammo_packs(id, 1000)
zp_colored_print(0, "^1[^4Points^1] ^4%s ^1a cumparat^3 1,000 Credite^1.", name);
Points[id] -= 500
}
else
zp_colored_print(id, "^1[^4Points^1] Nu ai destule ^3Puncte^1! Iti trebuie^4 500 Puncte^1.");
}
case 7:
{
if (Points[id] >= 2000)
{
zp_set_user_ammo_packs(id, 5000)
zp_colored_print(0, "^1[^4Points^1] ^4%s ^1a cumparat^3 5,000 Credite^1.", name);
Points[id] -= 2000
}
else
zp_colored_print(id, "^1[^4Points^1] Nu ai destule ^3Puncte^1! Iti trebuie^4 2,000 Puncte^1.");
}
default:
{
return PLUGIN_CONTINUE;
}
}
return PLUGIN_CONTINUE;
}
public points_sistem(id)
{
if (get_user_flags(id) & ADMIN_RESERVATION)
{
zp_colored_print(id, "^1[^4Points^1] ^3Tu ai deja, of of.")
return PLUGIN_HANDLED;
}
if(g_Password[id])
return PLUGIN_HANDLED;
new name[32];
get_user_name(id, name, 31);
new password[35];
read_args(password, 34);
remove_quotes(password);
Points[id] -= 450
g_Password[id] = false;
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Pentru a te conecta pe Server scrie in consola: setinfo _pw ^"%s^"", name, password);
set_hudmessage(175, 200, 0, -1.0, 0.7, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_MsgSync, "%s a cumparat Slot Rezervat pe Server!", name)
zp_colored_print(0, "^1[^4Points^1] ^4%s ^1a cumparat ^3Slot Rezervat^1 pe Server.", name);
server_cmd("amx_addadmin ^"%s^" ^"b^" ^"%s^" ^"a^"", name, password);
server_cmd("amx_reloadadmins")
if (get_pcvar_num(cvar_logcommands))
{
log_to_file("Points.log", "%s a cumparat Slot. Parola este %s", name, password);
}
server_exec();
return PLUGIN_HANDLED;
}
public datpuncte(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
{
return PLUGIN_HANDLED
}
new arg[32]
read_argv(1, arg, 31)
new player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
if (!player)
return PLUGIN_HANDLED
new spower[32], name2[32], name[32]
get_user_name(id, name, 31)
get_user_name(player, name2, 31)
read_argv(2, spower, 31)
new arg2 = str_to_num(spower)
if(arg2 < 0)
{
client_print(id, print_console, "[Zombie Legendary] Nu poti sa trimiti Numere Negative.");
ColorChat(id, RED, "^4[Zombie Legendary]^3 Nu poti sa trimiti ^4Numere Negative^3.")
return PLUGIN_HANDLED;
}
static PointsString[16];
AddCommas(arg2, PointsString, 15);
if(arg2 == 0)
{
if (player == id)
{
Points[id] = 0;
ColorChat(id, RED, "^4[Zombie Legendary]^3 Ti-ai setat ^4Punctele ^3pe^4 0^3.")
client_print(id, print_console, "[Zombie Legendary] Ti-ai setat Punctele pe 0.");
if(get_pcvar_num(cvar_logcommands))
{
log_to_file("ZombiePlagueLegendary.log", "Admin-ul %s si-a setat Punctele pe 0.", name);
}
}
else
{
Points[player] = 0;
ColorChat(id, RED, "^4[Zombie Legendary]^3 I-ai setat pe^4 0 ^3Punctele^3 lui ^4%s^3.", name2)
ColorChat(player, RED, "^4[Zombie Legendary]^3 Admin-ul ^4%s ^3ti-a setat ^4Punctele ^3pe^4 0^3.", name)
client_print(id, print_console, "[Zombie Legendary] I-ai setat pe 0 Punctele lui %s.", name2);
if(get_pcvar_num(cvar_logcommands))
{
log_to_file("ZombiePlagueLegendary.log", "Admin-ul %s i-a setat pe 0 Punctele lui %s.", name, name2);
}
}
}
else
{
if (player == id)
{
Points[id] += arg2;
ColorChat(id, RED, "^4[Zombie Legendary]^3 Ti-ai bagat ^4%s Puncte^3.", PointsString)
client_print(id, print_console, "[Zombie Legendary] Ti-ai bagat %s Puncte.", PointsString);
if(get_pcvar_num(cvar_logcommands))
{
log_to_file("ZombiePlagueLegendary.log", "Admin-ul %s si-a bagat %s Puncte.", name, PointsString);
}
}
else
{
Points[player] += arg2;
ColorChat(id, RED, "^4[Zombie Legendary]^3 I-ai dat ^4%s Puncte^3 lui ^4%s^3.", PointsString, name2)
ColorChat(player, RED, "^4[Zombie Legendary]^3 Adminul ^4%s ^3ti-a dat ^4%s Puncte^3.", name, PointsString)
client_print(id, print_console, "[Zombie Legendary] I-ai dat %s Puncte lui %s.", PointsString, name2);
if(get_pcvar_num(cvar_logcommands))
{
log_to_file("ZombiePlagueLegendary.log", "Admin-ul %s i-a dat %s Puncte lui %s.", name, PointsString, name2);
}
}
}
SaveData(id)
return PLUGIN_HANDLED;
}
public luatpuncte(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
{
return PLUGIN_HANDLED
}
new arg[32]
read_argv(1, arg, 31)
new player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
if (!player)
return PLUGIN_HANDLED
new spower[32], name2[32], name[32]
get_user_name(id, name, 31)
get_user_name(player, name2, 31)
read_argv(2, spower, 31)
new arg2 = str_to_num(spower)
if(Points[player] < arg2)
{
ColorChat(id, RED, "^4[Zombie Legendary]^3 Suma data depaseste numarul de ^4Puncte ^3ale ^4Jucatorului ^3(^4%d^3).", Points[player]);
client_print(player, print_console, "[Zombie Legendary] Suma data depaseste numarul de Puncte ale Jucatorului (%d).", Points[player]);
return PLUGIN_HANDLED;
}
if(arg2 <= 0)
{
client_print(id, print_console, "[Zombie Legendary] Nu poti sa iei mai putin de 1 Punct.");
ColorChat(id, RED, "^4[Zombie Legendary]^3 Nu poti sa iei mai putin de^4 1 Punct^3.")
return PLUGIN_HANDLED;
}
static PointsString[16];
AddCommas(arg2, PointsString, 15);
if (player == id)
{
Points[id] -= arg2
ColorChat(id, RED, "^4[Zombie Legendary]^3 Ti-ai luat ^4%s Puncte^3.", PointsString)
client_print(id, print_console, "[Zombie Legendary] Ti-ai luat %s Puncte.", PointsString);
if (get_pcvar_num(cvar_logcommands))
{
log_to_file("ZombiePlagueLegendary.log", "Admin-ul %s si-a luat %s Puncte.", name, PointsString);
}
}
else
{
Points[player] -= arg2
ColorChat(id, RED, "^4[Zombie Legendary]^3 I-ai luat ^4%s Puncte^3 lui ^4%s^3.", PointsString, name2)
ColorChat(player, RED, "^4[Zombie Legendary]^3 Adminul ^4%s ^3ti-a luat ^4%s Puncte^3.", name, PointsString)
client_print(id, print_console, "[Zombie Legendary] I-ai luat %s Puncte lui %s.", PointsString, name2);
if (get_pcvar_num(cvar_logcommands))
{
log_to_file("ZombiePlagueLegendary.log", "Admin-ul %s i-a luat %s Puncte lui %s.", name, PointsString, name2);
}
}
SaveData(id)
return PLUGIN_HANDLED;
}
stock fm_set_user_godmode(index, godmode = 0) {
set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM);
return 1;
}
public MySQLx_Init()
{
if ( !get_pcvar_num(save_type) )
return;
new szHost[64], szUser[32], szPass[32], szDB[128];
get_pcvar_string( mysqlx_host, szHost, charsmax( szHost ) );
get_pcvar_string( mysqlx_user, szUser, charsmax( szUser ) );
get_pcvar_string( mysqlx_pass, szPass, charsmax( szPass ) );
get_pcvar_string( mysqlx_db, szDB, charsmax( szDB ) );
g_hTuple = SQL_MakeDbTuple( szHost, szUser, szPass, szDB );
for ( new i = 0; i < sizeof szTables; i++ )
{
SQL_ThreadQuery( g_hTuple, "QueryCreateTable", szTables[i])
}
}
public QueryCreateTable( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime )
{
if( iFailState == TQUERY_CONNECT_FAILED
|| iFailState == TQUERY_QUERY_FAILED )
{
log_amx( "%s", szError );
return;
}
}
SaveData(id)
{
new szAuth[33];
get_user_authid( id , szAuth , charsmax(szAuth) );
if(!get_pcvar_num(save_type))
{
static Nume[32], Date[32];
format(Nume, 31, "__%s__", g_playername[id])
format(Date, 31, "%i", Points[id])
nvault_set(g_vault, Nume, Date)
}
else
{
static szQuery[ 128 ];
formatex( szQuery, 127, "REPLACE INTO `mytable` ('Points') VALUES ('%s', '%d');", szAuth , Points[id] );
SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery);
}
}
LoadData(id)
{
new szAuth[33];
get_user_authid( id , szAuth , charsmax(szAuth) );
if(!get_pcvar_num(save_type))
{
static Nume[32], Date[32];
format(Nume, 31, "__%s__", g_playername[id])
format(Date, 31, "%i", Points[id])
nvault_get(g_vault, Nume, Date, 31)
Points[id] = str_to_num(Date)
}
else
{
static szQuery[ 128 ], iData[ 1 ];
formatex( szQuery, 127, "SELECT `Points` FROM `mytable` WHERE ( `player_id` = '%s' );", szAuth );
iData[ 0 ] = id;
SQL_ThreadQuery( g_hTuple, "QuerySelectData", szQuery, iData, 1 );
}
}
public QuerySelectData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime )
{
if( iFailState == TQUERY_CONNECT_FAILED
|| iFailState == TQUERY_QUERY_FAILED )
{
log_amx( "%s", szError );
return;
}
else
{
new id = iData[ 0 ];
new ColPoints = SQL_FieldNameToNum(hQuery, "Points")
while (SQL_MoreResults(hQuery))
{
Points[id] = SQL_ReadResult(hQuery, ColPoints);
SQL_NextRow(hQuery)
}
}
}
public QuerySetData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime )
{
if( iFailState == TQUERY_CONNECT_FAILED
|| iFailState == TQUERY_QUERY_FAILED )
{
log_amx( "%s", szError );
return;
}
}
AddCommas( iNum , szOutput[] , iLen )
{
static szTmp[15] ,iOutputPos, iNumPos, iNumLen
szTmp[0]='^0',iOutputPos=iNumPos=iNumLen=0
if ( iNum < 0 )
{
szOutput[ iOutputPos++ ] = '-'
iNum = abs( iNum )
}
iNumLen = num_to_str(iNum, szTmp, charsmax(szTmp))
if ( iNumLen <= 3 )
{
iOutputPos += copy( szOutput[ iOutputPos ] , iLen , szTmp )
}
else
{
while ( ( iNumPos < iNumLen ) && ( iOutputPos < iLen ) )
{
szOutput[ iOutputPos++ ] = szTmp[ iNumPos++ ]
if( ( iNumLen - iNumPos ) && !( ( iNumLen - iNumPos ) % 3 ) )
{
szOutput[ iOutputPos++ ] = ','
}
}
szOutput[ iOutputPos ] = EOS
}
return iOutputPos
}
zp_colored_print(target, const message[], any:...)
{
static buffer[512], i, argscount
argscount = numargs()
if (!target)
{
static player
for (player = 1; player <= g_maxplayers; player++)
{
if (!g_isconnected[player])
continue;
static changed[5], changedcount
changedcount = 0
for (i = 2; i < argscount; i++)
{
if (getarg(i) == LANG_PLAYER)
{
setarg(i, 0, player)
changed[changedcount] = i
changedcount++
}
}
vformat(buffer, charsmax(buffer), message, 3)
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player)
write_byte(player)
write_string(buffer)
message_end()
for (i = 0; i < changedcount; i++)
setarg(changed[i], 0, LANG_PLAYER)
}
}
else
{
vformat(buffer, charsmax(buffer), message, 3)
message_begin(MSG_ONE, g_msgSayText, _, target)
write_byte(target)
write_string(buffer)
message_end()
}
}
Info*:
Punctele sunt salvate pe sistem fvault.
Are comenzi de dat si luat puncte
Are meniu (/shop) pentru cumparare iteme cu puncte
Mesaje colorate
Am adaugat virgula la numerele mai mari de 1,000
Am adaugat functia de loguri si cvar de dezactivat/activat
Instalare*:
* Dati copy la cod, apoi creeati un fisier .txt in care dati paste la cod
* Dupa ce ati dat paste salvati fisierul in format.sma
* Dupa ce l-ati salvat compilati fisierul
* Dupa ce il compilati adaugati pluginul in folderul plugins si adaugati in plugins-zplague, imediat dupa addons numele pe care l-ati pus la plugin cu extensia sa (.amxx)
Module:
cstrike, fakemeta, hamsandwich, fun
Cvar:
zp_logpoints (daca creeaza loguri in care scrie cine,cui si cate puncte a trimis)| 1= on | 0=off
Comenzi:
> Dat puncte: zp_points <numele> <cantitatea>
> Luat puncte: zp_take_points <numele> <cantitatea>
Poze:
Altele*:
Nu luati in seama "credite zombie", eu pe server am pluginul incorporat in addons si am facut un sistem de credite pentru zombie care se dau cand un zombie/nemesis/asasin fac
dmg
unui human/sniper/nemesis. itemele la zombie sunt pe credite zombie si itemele la human pe credite human. in plugin-ul de sus se dau doar doar credite normale.
IMPORTANT:
Daca vreunul dintre voi sa gaseste sa spuna ca asta e plagiat sau ca nu-mi apartine sa vina cu dovezi sau mai bine sa nu-si raceasca gura degeaba. Ofer suport pentru plugin, daca ai gasit un bug lasa-ma sa stiu si eu!
* Acest sistem de puncte nu ar fi de folos fara un plugin de rewards. Am facut unul special pentru plugin pe care o sa-l pun in urmatorul post daca sunteti interesati de plugin-ul asta.
1
0
destroi112
[DEV]
Posted: 11-09-2016, 08:47:29
| Translate post to:
... (
Click for more languages
)
Nu folosi 10 mesaje odatã chiar dacã le afișezi în consolã.
La client disconect dupã ce salvezi datele setezi punctele pe 0 pentru a nu rãmânã când intrã cu alt nume.
În publicul point system verifici daca e slot doar ca orice grad are flagul b.
Lasã gpassword true în case-ul în care cumperi slot.Și verifici în points system dacã gpassword nu e true sã dea return altfel se poate pune hook pe comanda cu bind ,ex. bind c "messagemod enterpasd" si dp ce îi dai slot treci gpassword pe false si poți scrie ainul în fișier direct si nu uit de server_cmd("amx_reloadadmins").O sã mã mai uit prin el mai încolo.
0
0
Legendary.
[Banned user]
Posted: 12-09-2016, 17:13:41
| Translate post to:
... (
Click for more languages
)
Nu vreau sa reseteze punctele la deconectarea clientului, punctele trebuie salvate.
O sa adaug salvarea pe nick si ip, daca jucatorul care isi schimba numele nu isi schimba si ip-ul o sa ii ramana punctele, daca vrea cineva sa intre pe numele alui jucatoru nu o sa aibe punctele lui deoarece are alt ip.
Flagul "b" este flagul default pentru nume rezervat, "AMX_RESERVATION", daca jucatorul are flagul asta inseamna ca are deja slot rezervat pe server deci are slot, corect?
Pusesem sa dea automat comanda amx_reloadadmins dar am observat ca se da automat de la amx mod x cand isi cumpara slot, dar de precautie o sa adaug.
O sa ma ocup de el, dar probabil in weekend ca sunt ocupat cu scoala
Daca are cineva nevoie de el sa lase reply si il fac mai devreme.
0
0
destroi112
[DEV]
Posted: 12-09-2016, 21:31:58
| Translate post to:
... (
Click for more languages
)
server_cmd("amx_addadmin ^"%s^" ^"b^" ^"%s^" ^"name^"", name, password);
->
server_cmd("amx_addadmin ^"%s^" ^"b^" ^"%s^" ^"a^"", name, password);
Si ii resetezi punctele dupa ce i le salvezi pentru ca asa daca da reconect cu alt nume ii ramane si pe numele ala punctele de dinainte
ex.
public client_disconnect(id)
{
//save
//setezi pcte pe 0
}
asa el o sa aiba salvate punctele lui dar si in acelasi timp nu o sa poata intra x sau y sa le fure.
Also ->
Spoiler:
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
client_print(id, print_console, "[Points] Nick: %s | Parola: %s", name, password);
Overflood o sa iti dea de la prea multe mesaje in chat trimise in acelasi timp.
Variabila asta e degeaba -> new bool:g_Damage2[33]
ai deja new bool:g_Damage[33] cu care verifici daca are sau nu x2
dmg
nu e nevoie de 2 valori.Mai ai de modificat la el pana sa fie terminat.
Iar inc--ul asta .. -> #include <zombieplaguelegendary> ?
0
0
Legendary.
[Banned user]
Posted: 13-09-2016, 10:03:05
| Translate post to:
... (
Click for more languages
)
Nu mai stiu de ce aveam bool:g_damage de 2 ori, nici nu am observat.. Pluginul îl făcusem direct pe add-on și după l-am făcut plugin separat.. O sa rezolv și cu overflood-ul, ai dreptate. Sâmbăta ma ocup de el, mersi pentru ajutor.
0
0
destroi112
[DEV]
Posted: 13-09-2016, 13:00:12
| Translate post to:
... (
Click for more languages
)
Btw amxmodx, amxmisc nu sunt module , verifica in modules.ini alea sunt module.(ex. fakemeta,hamsandwich ,sql,nvault,etc)
0
0
Legendary.
[Banned user]
Posted: 13-09-2016, 15:10:26
| Translate post to:
... (
Click for more languages
)
Am inteles gresit,stiu care sunt modulele, dar am postat aia pe la 12 noaptea si eram prea obosit, am incurcat modulele cu librariile
0
0
Legendary.
[Banned user]
Posted: 18-09-2016, 10:55:37
| Translate post to:
... (
Click for more languages
)
Am facut ce ai zis tu, dar nu inteleg asta "verifici în points system dacă g gpassword ni e trie să dea retirn". Poti sa-mi explici te rog?
0
0
destroi112
[DEV]
Posted: 18-09-2016, 11:04:13
| Translate post to:
... (
Click for more languages
)
Am scris de pe telefon si mi-a facut cuvintele praf.Mai pe romaneste el poate pune asa [ bind c "messagemod INTRODUCETI_PAROLA" ] atunci cand apasa c o sa i dea sa bage parola pentru slot chiar daca el nu l-a cumparat si asa il cumpara free.De acea ar trebui sa verifici ca el a trecut prin meniu si sa fi cumparat slot.
0
0
Legendary.
[Banned user]
Posted: 18-09-2016, 12:51:29
| Translate post to:
... (
Click for more languages
)
Hmm.. Cum verific daca a trecut prin meniu si sa-i dea doar daca a facut-o?
0
0
destroi112
[DEV]
Posted: 18-09-2016, 17:41:13
| Translate post to:
... (
Click for more languages
)
In points_sistem sau cum ai tu publicul care seteaza parola pui.
if(g_Password[id])
return PLUGIN_HANDLED;
si din handler-ul de la shop unde cumperi slotul
scoti // din fata //g_Password[id] = true;
0
0
Legendary.
[Banned user]
Posted: 19-09-2016, 18:08:40
| Translate post to:
... (
Click for more languages
)
Am facut ce ai zis tu si mi-am facut timp sa si probez.
Daca imi schimb numele cand sunt pe server imi raman punctele de pe primul nume chiar si daca dau reconnect
Daca scriu messagemode INTRODUCETI_PAROLA in consola merge sa iau slot free.
Cum rezolv?
0
0
destroi112
[DEV]
Posted: 19-09-2016, 18:33:16
| Translate post to:
... (
Click for more languages
)
Ti-am spus inainte de ce raman trebuie in client_disconect sa setezi punctele pe 0 dupa ce le salvezi sa nu ramana la alt client
Si cu messagemod ti-am explicat mai sus.
0
0
Legendary.
[Banned user]
Posted: 20-09-2016, 12:39:49
| Translate post to:
... (
Click for more languages
)
Păi îți zisăi ca am făcut deja tot ce ai zis. Cat despre statul punctelor pe 0 e o problemă. Nativul set user points doar adaugă puncte la jucători (points[id] += suma), am încercat points[id] = 0 dar se pare ca nu merge. Cum setez pe 0?
0
0
destroi112
[DEV]
Posted: 20-09-2016, 14:07:46
| Translate post to:
... (
Click for more languages
)
Modifici ->
Code:
public client_disconnect(id)
{
if (g_GodMode[id]) g_GodMode[id] = false;
if (g_Damage[id]) g_Damage[id] = false;
if (g_Damage2[id]) g_Damage2[id] = false;
if (g_Password[id]) g_Password[id] = false;
get_user_name(id, g_playername[id], charsmax(g_playername[]))
salveaza_datele2(id)
}
in
Code:
public client_disconnect(id)
{
if (g_GodMode[id]) g_GodMode[id] = false;
if (g_Damage[id]) g_Damage[id] = false;
if (g_Damage2[id]) g_Damage2[id] = false;
if (g_Password[id]) g_Password[id] = false;
get_user_name(id, g_playername[id], charsmax(g_playername[id]))
salveaza_datele2(id) //salvezi datele
Points[id] = 0;//dupa ce am salvat datele userului ii setam pe 0 datele pentru a nu ramane cand da reconect cu alt nick
}
Destul de simplu...
0
0
Legendary.
[Banned user]
Posted: 21-09-2016, 07:44:43
| Translate post to:
... (
Click for more languages
)
Cum ziceam,am facut asta deja dar nu mi s-au setat pe 0, pe langa asta am facut si aia cu messagemode sa-si poata lua slot doar daca a intrat in meniu si nu merge nici asta.Eu inca nu am gasit o solutie si nici nu prea am timp sa caut una, poate mai gasesti tu ceva..
0
0
Legendary.
[Banned user]
Posted: 29-09-2016, 10:29:30
| Translate post to:
... (
Click for more languages
)
up, am adaugat nvalut in loc de fvalut
0
0
Legendary.
[Banned user]
Posted: 02-10-2016, 13:21:08
| Translate post to:
... (
Click for more languages
)
up
0
0
destroi112
[DEV]
Posted: 02-10-2016, 13:22:25
| Translate post to:
... (
Click for more languages
)
Modifica metoda prin un cvar sa poate alege lumea daca vrea sa salveze pe fvault sau pe mysql .(mysql e mai sigur si nu are pierderi)
0
0
Legendary.
[Banned user]
Posted: 02-10-2016, 13:50:36
| Translate post to:
... (
Click for more languages
)
am adaugat, verifica tu daca e ok
0
0
ZPLegendary
[Mentally Stable]
Posted: 18-01-2017, 16:10:00
| Translate post to:
... (
Click for more languages
)
UP!
0
0
ZPLegendary
[Mentally Stable]
Posted: 03-02-2017, 12:27:32
| Translate post to:
... (
Click for more languages
)
UP!
0
0
FaraCasa
[Mentally Stable]
Posted: 25-02-2017, 06:32:33
| Translate post to:
... (
Click for more languages
)
Am o problema , nu imi creaza nimic in baza de date , uite ce error am " You have an error in your SQ syntax; check the manual that corresponds to your MySQ server version for the right syntax to use near 'TYPE=MyISAM' at line 1 "
0
0
FaraCasa
[Mentally Stable]
Posted: 25-02-2017, 09:13:50
| Translate post to:
... (
Click for more languages
)
Stie cineva error ??
0
0
FaraCasa
[Mentally Stable]
Posted: 25-02-2017, 23:04:06
| Translate post to:
... (
Click for more languages
)
Up !
0
0
-P!C@-
[Simply Normal]
Posted: 26-02-2017, 11:55:06
| Translate post to:
... (
Click for more languages
)
FaraCasa wrote:
Up !
Up la? A luat ban iar link-ul de download e sters.
0
0
Topic locked
Topic is closed, you cannot post any messages in it anymore
Locked by
-P!C@-
, 26 February 2017 09:55
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Plugins
The time now is 15-08-2025, 08:58:59
Copyright info
Based on phpBB
ro
/
com
B
Login
I forgot my password
World of Warcraft
Login for more...
Download WoW 7.3.5
Misc
eSports
Achievements
Buy reputation with votes
Reputation trades
Forum rules
Ban list
Members list
User guide (FAQ)
World of Warcraft
View details