PDA

View Full Version : [AMXX] WarGods Knife Class



Tiger
29-07-2017, 06:35 PM
Descriere:
Knife API ce va facilita crearea de subpluginuri (iteme) knife, mai usor si mai eficient, pentru meniul knife. Acest plugin este destinat modurilor fun (precum deathrun) ce folosesc puteri de knife pentru a oferi un mod deosebit server-ului.

Nume plugin: WarGods Knife Menu
Autor: Tiger
Versiune: 1.00
Credite: MeRcyLeZZ


Download: Click aici! (<b>You have to register to ba able to see this link</b>)
Guest Download Link: bit.ly/wargods-ro-knife-class

Instalare:
1. Dupa ce ati descarcat arhiva cu continutul fisierelor, dezarhivati arhiva.
2. Uploadati fisierele dezarhivate in continutul directorului addons/amxmodx/.

Dependinte (se gasesc in arhiva, atat ca plugin compilat cat si ca surse):

amx_settings_api
cs_ham_bots_api
cs_maxspeed_api
cs_weap_models_api


Comenzi (consola + chat) implicite (ele pot fi modificate din wargods_knife_class.ini) ce va deschide meniul de knife:



knife
cutite
class



Cu ajutorul acestui plugin (de baza) puteti crea subpluginuri ce vor actiona ca iteme in meniul de knife.

wargods_knife_class.inc

/**
* Returneaza knife id-ul selectat de jucatorul dat.
*
* @param id ID jucator.
* @return knife ID, sau KNIFE_INVALID_CLASS in caz de eroare.
*/
native knife_get_current(id);

/**
* Seteaza knife-ul jucatorului.
*
* @param id ID jucator.
* @return True in caz de succes, altfel false.
*/
native knife_set_current(id);

/**
* Seteaza un knife ca fiind special (VIP).
*
* @param classid ID knife.
* @param classid Status knife - TRUE daca este un knife VIP, altfel FALSE.
* @return True in caz de succes, altfel false.
*/
native knife_set_special_knife(classid, status);

/**
* Inregistreaza clasa de knife in meniul de knife
*
* @param name Numele knife-ului.
* @param description Descriere a knife-ului.
* @param speed Viteza ce ofera knife-ul.
* @param gravity Gravitatea ce ofera knife-ul.
* @param damage Damage-ul pe care-l face knife-ul.
* @return Knife id sau KNIFE_INVALID_CLASS in caz de esec.
*/
native knife_register(const name[], const description[], Float:speed, Float:gravity, Float:damage);

/**
* Inregistreaza un model (v_model) personalizat pentru knife-ul dat
*
* @param classid ID knife.
* @param model Numele modelului v_knife.
* @return True in caz de succes, altfel false.
*/
native knife_register_vmodel(classid, const model[]);

/**
* Inregistreaza un model (p_model) personalizat pentru knife-ul dat
*
* @param classid ID knife.
* @param model Numele modelului p_knife.
* @return True in caz de succes, altfel false.
*/
native knife_register_pmodel(classid, const clawmodel[]);

/**
* Returneaza knife id pentru numele unui knife.
*
* @param name Numele knife-ului.
* @return Knife id sau KNIFE_INVALID_CLASS in caz de esec.
*/
native knife_get_id(const real_name[]);

/**
* Returneaza numele knife-ului asociat id-ului de knife dat.
*
* @param classid ID knife.
* @param name Buffer-ul unde se va stoca numele knife-ului.
* @param len Marimea buffer-ului.
* @return True in caz de succes, altfel false.
*/
native knife_get_name(classid, name[], len);

/**
* Returneaza numele real al knife-ului asociat id-ului de knife dat.
*
* @param classid ID knife.
* @param name Buffer-ul unde se va stoca numele knife-ului.
* @param len Marimea buffer-ului.
* @return True in caz de succes, altfel false.
*/
native knife_get_real_name(classid, real_name[], len);

/**
* Returneaza descrierea knife-ului asociat id-ului de knife dat.
*
* @param classid ID knife.
* @param description Buffer-ul unde se va stoca numele knife-ului.
* @param len Marimea buffer-ului.
* @return True in caz de succes, altfel false.
*/
native knife_get_desc(classid, description[], len);

/**
* Returneaza numarul de knife-uri inregistrate.
*
* @return Knife class count.
*/
native knife_get_count();

/**
* Afiseaza jucatorului dupa id-ul dat meniul de knife
*
* @param id id jucator.
*/
native knife_show_menu(id);

/**
* Apelat atunci cand un jucator deschide meniul; se va determina daca knife-ul este sau nu valabil pentru jucatorul care a apelat meniul.
*
* Valoriile de returnare posibile sunt:
* - KNIFE_CLASS_AVAILABLE (knife-ul va aparea in meniu si va putea fi selectat)
* - KNIFE_CLASS_NOT_AVAILABLE (knife-ul va aparea in meniu si nu va putea fi selectat)
* - KNIFE_CLASS_DONT_SHOW (knife-ul nu va aparea in meniu si nici nu va putea fi selectat)
*
* @param id ID jucator.
* @param classid ID knife pentru care se determina starea.
*/
forward knife_fw_class_select_pre(id, classid);

/**
* Apelat dupa ce jucatorul a facut selectia unui knife din meniu.
*
* @param id Player index.
* @param classid Internal knife class ID.
*/
forward knife_fw_class_select_post(id, classid);



Changelog:


Versiunea 1.0: Prima lansare;


Observatii:
1. NU ofer sursa!
2. Licenta acestui plugin este valida DOAR serverelor din Comunitatea WarGods!
3. Arhiva contine doar un sample ca si cod sursa (cutitul default) si contine doar strictul necesar rularii corecte. Pentru restul itemelor de knife prezente pe Dr.WarGods.ro va rog sa ma contactati.

Pentru orice fel de problema in legatura cu acest plugin, scrieti aici!

amxx, plugin, licenced plugin, knife, deathrun, knife menu, knife deathrun, knife api, cutite, modele knife, puteri knife, damage knife, speed knife, gravity knife

Tiger
29-07-2017, 06:44 PM
WarGods Knife Class: Classic - cu explicatiile de rigoare.

#include <amxmodx>
#include <wargods_knife_class.inc>

#define PLUGIN_NAME "WarGods Knife Class: Classic"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "Tiger"


// Numele knife-ului ce va aparea in meniu
new const knifeclass_name[] = "Cutit Simplu";
// Descrierea knife-ului ce va aparea in meniu
new const knifeclass_info[] = "Nicio abilitate speciala";
// Modelul V_MODEL al knife-ului
new const knifeclass_vmodel[] = "model/v_knife.mdl";
// Modelul P_MODEL al knife-ului
new const knifeclass_pmodel[] = "model/p_knife.mdl";

// Viteza ce o va oferi jucatorului acest knife
const Float:knifeclass_speed = 1.0;
// Gravitatea ce o va oferi jucatorului acest knife
const Float:knifeclass_gravity = 1.0;
// Damage-ul facut de acest knife
const Float:knifeclass_damage = 1.0;

new g_knifeclassID;

public plugin_precache()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

// Inregistram knife-ul
g_knifeclassID = knife_register(knifeclass_name, knifeclass_info, knifeclass_speed, knifeclass_gravity, knifeclass_damage)
knife_register_vmodel(g_knifeclassID, knifeclass_vmodel)
knife_register_pmodel(g_knifeclassID, knifeclass_pmodel)
}

// Apelat atunci cand se enumera knife-urile in meniu si atunci cand jucatorul selecteaza knife-ul pentru a se determina starea knife-ului pentru jucatorul ce a chemat meniul
public knife_fw_class_select_pre(id, classId)
{
// Verificam ca knife-ul venit ca parametru sa corespunda g_knifeclassID al nostru, dat la inregistrarea knife-ului
if (classId != g_knifeclassID)
return KNIFE_CLASS_AVAILABLE;

// Facem o verificare asupra jucatorului sa vedem daca jucatorul este capabil sa aleaga acest knife sau nu
// Avand in vedere ca acest knife este unul simplu, nu vom face nicio verificare

return KNIFE_CLASS_AVAILABLE;
}

// Apelat atunci cand jucatorul a selectat un knife;
public knife_fw_class_select_post(id, classId)
{
// Verificam ca knife-ul venit ca parametru sa corespunda g_knifeclassID al nostru, dat la inregistrarea knife-ului
if (classId != g_knifeclassID)
return KNIFE_CLASS_AVAILABLE;

// Avand in vedere ca acest knife este unul simplu, nu vom oferi nicio putere

return KNIFE_CLASS_AVAILABLE;
}

Tiger
29-07-2017, 06:49 PM
Descriere parametrii din cadrul wargods_knife_class.ini:



[KNIFE SETTINGS] -> Setari generale
REMEMBER_MENU_PAGE = 0 -> Daca este pus pe 1 atunci se va memora pagina in care a fost jucatorul inainte de inchiderea meniului
KNIFE_COMMANDS = knife , cutite , class -> Comenzi ce vor fi inregistrare in chat si in consola
REMEMBER_KNIFE_ENTRY = 1 -> Daca este pus pe 1 atunci se va salva knife-ul selectat de jucator, iar dupa schimbarea hartii i se va da, in mod implicit, acelasi knife
DEFAULT_KNIFE_INDEX = 0 -> Knife-ul implicit selectat (implicit este knife-ul clasic --- depinde de ordinea pluginurilor iteme de knife !!!)



Nu trebuie sa modificati pluginul pentru a schimba diverse proprietati pentru knife, o puteti face direct din wargods_knife_class.ini (doar sa va asigurati ca datele introduse sunt corecte).

Tiger
01-12-2017, 03:07 PM
Bug fix in fisierul "wargods_knife_class_const.inc":

#define is_player_vip(id) ((get_user_flags(id) & ADMIN_VIP) == ADMIN_VIP)
->
#define is_player_vip(%0) ((get_user_flags(%0) & ADMIN_VIP) == ADMIN_VIP)