Chaos Rising
Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.

Chaos Rising

/
 
AcasaPortalUltimele imaginiCăutareÎnregistrareConectare

 

 Tutorial imbinare (combinare) Pluginuri

In jos 
AutorMesaj
AlXe
Administrator
Administrator
AlXe


Mesaje : 50
Data de inscriere : 07/12/2011
Varsta : 27
Localizare : Pitesti

Tutorial imbinare (combinare) Pluginuri  Empty
MesajSubiect: Tutorial imbinare (combinare) Pluginuri    Tutorial imbinare (combinare) Pluginuri  Icon_minitimeVin Dec 09, 2011 12:04 am

Bun, in acest tutorial am sa va explic , cam cum puteti sa imbinati 2 pluginuri.
Obligat odata ce intelegeti acest lucru , veti putea imbina cate doriti.
Am sa merg pe 2 pluginuri simple cum ar fi amx_ss si amx_slay.

Pluginul amx_ss:




Cod:
#include <amxmodx>
#include <amxmisc>

#define ACCESS ADMIN_KICK

public plugin_init() {
  register_plugin("Plugin ss", "1.0", "x")
  register_concmd("amx_ss","cmdss",ACCESS,"<nume> - faci poza jucatorului")
}

public cmdss(id,level,cid){
  if(!cmd_access(id,level,cid,2))
      return PLUGIN_HANDLED;

  static name[32]
  new argument[32]

  read_argv(1,argument,31)
  new player = cmd_target(id,argument,1)

  get_user_name(id,name,31);

  if(!is_user_alive(id))
  return PLUGIN_HANDLED

  client_print(0, print_chat, "ADMIN %s ii face poza lui %s", name, player)
  client_cmd(player,"snapshot")

  return PLUGIN_HANDLED
}




Pluginul amx_slay:




Cod:
#include <amxmodx>
#include <amxmisc>

public plugin_init()
{
    register_plugin("Amx Slay", "1.0", "x")
    register_concmd("amx_slay", "cmd_Slayx", ADMIN_SLAY, "<nume>")
}

public cmd_Slayx(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, 5)
   
    if (!player)
        return PLUGIN_HANDLED
   
    user_silentkill(player)
   
    static name[32], name2[32]

    get_user_name(id, name, 31)
    get_user_name(player, name2, 31)

    client_print(0, print_chat, "ADMIN: %s ii da slay lui %s", name, name2);
   
    return PLUGIN_HANDLED
}

Acuma ne uitam la ambele si ne tot uitam dar daca nu stim tot ne vom uita ca niste prosti.
Nu stiu daca veti intelege dar hadeti sa incerc sa va explic.
Vreau sa va atrag atentia la simtul observarii , adica sa va simtiti observand nu sa fiti nesimtiti.
Deci observati atent, si ce anume observati? Nu stiti? Deci eu unul observ asa:

Ca plugin amx_ss si pluginul amx_slay au aceleasi '#include-uri'.
Mai observ ca ambele pluginuri au 1 'public plugin_init'.
SI odata ce au lucruri in comun imi pot da seama ca greu de unit/combinat sa zic asa nu ar fi si ca doar trebuie sa gandesc pozitiv (ca pot) - incercarea moarte nu are!

Si incep sa i-au dintr-unul sa pun in altul, mai exact imi trec in fata primul plugin, anume amx_ss:

Pluginul amx_ss:




Cod:
#include <amxmodx>
#include <amxmisc>

#define ACCESS ADMIN_KICK

public plugin_init() {
  register_plugin("Plugin ss", "1.0", "x")
  register_concmd("amx_ss","cmdss",ACCESS,"<nume> - faci poza jucatorului")
}

public cmdss(id,level,cid){
  if(!cmd_access(id,level,cid,2))
      return PLUGIN_HANDLED;

  static name[32]
  new argument[32]

  read_argv(1,argument,31)
  new player = cmd_target(id,argument,1)

  get_user_name(id,name,31);

  if(!is_user_alive(id))
  return PLUGIN_HANDLED

  client_print(0, print_chat, "ADMIN %s ii face poza lui %s", name, player)
  client_cmd(player,"snapshot")

  return PLUGIN_HANDLED
}

Dupa care trebuie sa includ pe celalalt in el.
Ma gandesc cum sa fac si incep cu inceputul:

Pluginul amx_slay:




Cod:
#include <amxmodx>
#include <amxmisc>


Ma gandesc daca am nevoie de ele... NU AM! ca vad ca deja le are amx_ss deci NU AM NEVOIE DE EA!
Trec mai departe:

Pluginul amx_slay:




Cod:
public plugin_init()
{
    register_plugin("Amx Slay", "1.0", "x")
    register_concmd("amx_slay", "cmd_Slayx", ADMIN_SLAY, "<nume>")
}


Ma uit si observ ca linia:




Cod:
register_plugin("Amx Slay", "1.0", "x")

Exista in pluginul amx_ss doar ca are alt nume pluginul, nume pe care il pot modifica dupa ce termin sa le combin.
Dar linia:




Cod:
register_concmd("amx_slay", "cmd_Slayx", ADMIN_SLAY, "<nume>")

Nu o are, ci o are doar pe cea de la comanda amx_ss.
Bun ma uit unde se afla aceasta linie pe care pluginul amx_ss nu o are.
Se afla in:




Cod:
public plugin_init()
{


Bun o extrag folosind copi si paste in: public plugin_init-ul pluginului amx_ss si imi da asa:




Cod:
#include <amxmodx>
#include <amxmisc>

#define ACCESS ADMIN_KICK

public plugin_init() {
  register_plugin("Plugin ss", "1.0", "x")
  register_concmd("amx_ss","cmdss",ACCESS,"<nume> - faci poza jucatorului")
  register_concmd("amx_slay", "cmd_Slayx", ADMIN_SLAY, "<nume>")
}

public cmdss(id,level,cid){
  if(!cmd_access(id,level,cid,2))
      return PLUGIN_HANDLED;

  static name[32]
  new argument[32]

  read_argv(1,argument,31)
  new player = cmd_target(id,argument,1)

  get_user_name(id,name,31);

  if(!is_user_alive(id))
  return PLUGIN_HANDLED

  client_print(0, print_chat, "ADMIN %s ii face poza lui %s", name, player)
  client_cmd(player,"snapshot")

  return PLUGIN_HANDLED
}


Bun... acuma trec mai departe sa vad ce a mai ramas in pluginul amx_slay si vad ca mai este doar:




Cod:
public cmd_Slayx(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, 5)
   
    if (!player)
        return PLUGIN_HANDLED
   
    user_silentkill(player)
   
    static name[32], name2[32]

    get_user_name(id, name, 31)
    get_user_name(player, name2, 31)

    client_print(0, print_chat, "ADMIN: %s ii da slay lui %s", name, name2);
   
    return PLUGIN_HANDLED
}

Ma uit mai sus si ma gandesc ca nu am cum sa il pun in 'public plugin_init' pentru ca nici 'public cmdss' nu este in 'public plugin_init' si-mi dau seama ca, chiar daca m-am gandit, am gandit gresit. Este logic sa gandesti gresit prima data cand nu stii.Deci mai ma uit si incerc sa-l pun ori deasupra lui 'public cmdss' (intre 'public plugin_init' si 'public cmdss') sau dedesubtul lui. Aleg sa-l pun dedesubt pentru ca este mai simplu deoarece 'sunt incepator' si nu doresc sa gresesc.
Si o fac! i-au cu, copi si paste 'public cmd_Slayx' si-mi da asa:




Cod:
#include <amxmodx>
#include <amxmisc>

#define ACCESS ADMIN_KICK

public plugin_init() {
  register_plugin("Plugin ss", "1.0", "x")
  register_concmd("amx_ss","cmdss",ACCESS,"<nume> - faci poza jucatorului")
  register_concmd("amx_slay", "cmd_Slayx", ADMIN_SLAY, "<nume>")
}

public cmdss(id,level,cid){
  if(!cmd_access(id,level,cid,2))
      return PLUGIN_HANDLED;

  static name[32]
  new argument[32]

  read_argv(1,argument,31)
  new player = cmd_target(id,argument,1)

  get_user_name(id,name,31);

  if(!is_user_alive(id))
  return PLUGIN_HANDLED

  client_print(0, print_chat, "ADMIN %s ii face poza lui %s", name, player)
  client_cmd(player,"snapshot")

  return PLUGIN_HANDLED
}

public cmd_Slayx(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, 5)
   
    if (!player)
        return PLUGIN_HANDLED
   
    user_silentkill(player)
   
    static name[32], name2[32]

    get_user_name(id, name, 31)
    get_user_name(player, name2, 31)

    client_print(0, print_chat, "ADMIN: %s ii da slay lui %s", name, name2);
   
    return PLUGIN_HANDLED
}

Am pus si un space intre publicuri deoarece am observat ca si intre 'public pugin_init' si 'public cmdss' era unul si am considerat ca ar trebui sa fie la fel si in continuare.
Inainte sa, salvez amx_ss in care am inclus amx_slay-ul schimb in linia:




Cod:
register_plugin("Plugin ss", "1.0", "x")
"Plugin ss" - cu alt nume, dar nush ce nume sa-i dau si pun asa:

Cod:
register_plugin("Plugin ss & slay", "1.0", "x")
Si salvez.
Il redeschid si vad cum singur am reusit sa combin doua pluginuri:

Cod:
#include <amxmodx>
#include <amxmisc>

#define ACCESS ADMIN_KICK

public plugin_init() {
  register_plugin("Plugin ss & slay", "1.0", "x")
  register_concmd("amx_ss","cmdss",ACCESS,"<nume> - faci poza jucatorului")
  register_concmd("amx_slay", "cmd_Slayx", ADMIN_SLAY, "<nume>")
}

public cmdss(id,level,cid){
  if(!cmd_access(id,level,cid,2))
      return PLUGIN_HANDLED;

  static name[32]
  new argument[32]

  read_argv(1,argument,31)
  new player = cmd_target(id,argument,1)

  get_user_name(id,name,31);

  if(!is_user_alive(id))
  return PLUGIN_HANDLED

  client_print(0, print_chat, "ADMIN %s ii face poza lui %s", name, player)
  client_cmd(player,"snapshot")

  return PLUGIN_HANDLED
}

public cmd_Slayx(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, 5)
   
    if (!player)
        return PLUGIN_HANDLED
   
    user_silentkill(player)
   
    static name[32], name2[32]

    get_user_name(id, name, 31)
    get_user_name(player, name2, 31)

    client_print(0, print_chat, "ADMIN: %s ii da slay lui %s", name, name2);
   
    return PLUGIN_HANDLED
}


Si nu sunt sigur daca am reusit 100% deoarece inca nu am incercat sa-l compilez.
Dau si-l compilez cu succes , si sunt fericit pentru ca este primul meu plugin desi 'sunt incepator'.
Sper sa invatati daca va pasioneaza astfel de lucruri (scriptingul in general).
Sus In jos
https://chaosrising.forumgratuit.ro
 
Tutorial imbinare (combinare) Pluginuri
Sus 
Pagina 1 din 1
 Subiecte similare
-
» Tutorial instalare pluginuri AmxMod X
» Compilare pluginuri AmxMod X
» Tutorial 100 FPS
» Tutorial Cum sa te faci GM/GA
» Tutorial Instalare Server CS 1.6

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
Chaos Rising :: Tutoriale :: Tutoriale Counter-Strike-
Mergi direct la: