[AMXX] Modificarea DMG-ul făcut de o arma.

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori

User avatar
Hades Ownage
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3296
Joined: 22 Oct 2008, 09:12
Detinator Steam: Da
Detinator server CS: jb.clutch.ro
SteamID: hades-source
Reputatie: Fost Super Moderator
Scripter eXtreamCS
Nume anterior: hadesownage
Utilizator neserios
Location: Iasi
Has thanked: 328 times
Been thanked: 409 times
Contact:

16 Aug 2013, 16:43

Descriere: După cum scrie şi în titlu, am să vă arăt cum modificaţi corect dmg-ul făcut de o armă/cuţit/grenadă. Folosind această metodă nu o să primiţi erori în logs iar plugin-ul va funcţiona corect.

Tutorial:

1. Pentru modificarea dmg-ul avem nevoie de modulul hamsandwich pe care trebuie să-l includem astfel:

Code: Select all

#include <  hamsandwich  >         
2. Adăugăm un nou define şi anume:

Code: Select all

#define IsPlayer(%0)    ( 1 <= %0 <= g_iMaxPlayers )         
3. Acum trebuie să declarăm g_iMaxPlayers, adăugăm:

Code: Select all

new g_iMaxPlayers
Acum trecem la init ( plugin_init )

1. Adăugăm în init următoarea linie:

Code: Select all

g_iMaxPlayers = get_maxplayers ( ) 
Această linie înseamnă că g_iMaxPlayers caută numărul maxim de jucători după server.
2. Tot în init adăugăm următoarea funcţie ham:

Code: Select all

RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" ) 
  • Ham_TakeDamage = funcţia care o cere modulul ham
  • player = entitatea asupra căruia se exercită funcţia
  • Player_TakeDamage = numele public-ului care acţionează
Gata cu init-ul, mai urmează public-ul, codul dvs. trebuie să arate aşa până acum:

Code: Select all

/* Plugin generated by AMXX-Studio */

#include <  amxmodx  >
#include <  hamsandwich  >

#define PLUGIN "Modificare Damage"
#define VERSION "0.1"
#define AUTHOR "hadesownage"

#define IsPlayer(%0)    ( 1 <= %0 <= g_iMaxPlayers )

new g_iMaxPlayers;

public plugin_init ( ) {
    
    register_plugin ( PLUGIN, VERSION, AUTHOR );
    
    g_iMaxPlayers = get_maxplayers ( )
    RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
}
 
Crearea public-ului:

1. Creeam public-ul cu 4 param-uri şi acelea fiind:
  • iVictim - index-ul victimei
  • iInflictor - cel care atacă
  • iAttacker - index-ul atacatorului
  • Float:fDamage - damage-ul făcut
Începutul public-ului va arăta aşa:

Code: Select all

public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage ) {
2. Acum trebuie să adăugăm următoarea verificaţie:

Code: Select all

if ( iInflictor == iAttacker && IsPlayer ( iAttacker ) ) {
Aceasta verifică iInflictor este una şi aceeaşi cu atacatorul şi dacă atacatorul este un jucător nu o entitate oarecare.

3. În această verificare trebuie să adăugăm modificarea damage-ului, adăugăm următoarea linie:

Code: Select all

SetHamParamFloat ( 4, fDamage * 2.0 );
  • 2.0 - cu cât se multiplică dmg-ul făcut de jucător.
  • 2.0 - dublu.
  • 3.0 - triplu.
  • 4.0, 4.2, 4.5, 5.0 - şi tot aşa
4. După linia de sus adăugăm un return ca funcţia să se oprească:

Code: Select all

return HAM_HANDLED;
5. După asta închidem verificaţia ( if-ul ) cu } si adăugăm:

Code: Select all

return HAM_IGNORED;
Asta a fost tot, codul dvs. trebuie să arate astfel:

Code: Select all

/* Plugin generated by AMXX-Studio */

#include <  amxmodx  >
#include <  hamsandwich  >

#define PLUGIN "Modificare Damage"
#define VERSION "0.1"
#define AUTHOR "hadesownage"

#define IsPlayer(%0)    ( 1 <= %0 <= g_iMaxPlayers )

new g_iMaxPlayers;

public plugin_init ( ) {
    
    register_plugin ( PLUGIN, VERSION, AUTHOR );
    
    g_iMaxPlayers = get_maxplayers ( )
    RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
}

public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage ) {
    
    if ( iInflictor == iAttacker && IsPlayer ( iAttacker ) ) {
    
        SetHamParamFloat ( 4, fDamage * 2.0 );
        return HAM_HANDLED;
        
    }
    
    return HAM_IGNORED;
    
}
                        
Dacă doriţi ca doar o singură armă să aibă dmg-ul modificat, atunci daţi click aici.

Dacă întâlniti probleme puteţi să lăsaţi reply în topic şi o să vă răspund cât pot de repede.
Exprimăţi recunoştinţa dacă ţi-a fost de folos acest tutorial !
IG-BOOST.org - Instagram Followers Best, Cheap, Reliable
User avatar
CryWolf
Fost administrator
Fost administrator
Posts: 6607
Joined: 07 Aug 2008, 15:33
Detinator Steam: Da
Detinator server CS: CS.eXtream.Ro
Reputatie: Fost administrator
Fost Scripter
Detinator ZM.eXtream.Ro
Fost manager CS.eXtream.Ro
Fost manager CSGO.eXtream.Ro
Fost manager global
Location: Darabani
Has thanked: 183 times
Been thanked: 835 times
Contact:

16 Aug 2013, 16:53

Foarte bun tutorialul si bine explicat.

Cea ce vreau sa spun este ca este un tutorial AMXX si categoria mai potrivita pentru el ar fi asta nu ? ce spui ? Alegerea este a ta, dar va fi mult mai vizibil acolo! :)
De vanzare Zombie Sparkle++- O imbunatatita versiunde de ZP de la 0 de catre mine.
MetaMod Enhanced v1.0.0 - O versiune de metamod fara meta list si Updatata in ultimul SDK
Vrei un CS fara binduri, slowhack, si curat din SteamPipe? Counter-Strike UPDATE 9.March.2017
Info: NU IMI DATI PM PENTRU CERERI AJUTOR ETC (NU RASPUND) FOLOSITI FORUMUL.
Image
Image
Image
Image
User avatar
Hades Ownage
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3296
Joined: 22 Oct 2008, 09:12
Detinator Steam: Da
Detinator server CS: jb.clutch.ro
SteamID: hades-source
Reputatie: Fost Super Moderator
Scripter eXtreamCS
Nume anterior: hadesownage
Utilizator neserios
Location: Iasi
Has thanked: 328 times
Been thanked: 409 times
Contact:

16 Aug 2013, 16:56

CryWolf wrote:Foarte bun tutorialul si bine explicat.

Cea ce vreau sa spun este ca este un tutorial AMXX si categoria mai potrivita pentru el ar fi asta nu ? ce spui ? Alegerea este a ta, dar va fi mult mai vizibil acolo! :)
Merge şi acolo, dar mulţi începători cu forumul postează şi cereri de plugine acolo şi acest tutorial o să se piardă prin cereri. Aici sunt doar tutoriale, eu spun că e ok aici. :)
User avatar
Hades Ownage
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3296
Joined: 22 Oct 2008, 09:12
Detinator Steam: Da
Detinator server CS: jb.clutch.ro
SteamID: hades-source
Reputatie: Fost Super Moderator
Scripter eXtreamCS
Nume anterior: hadesownage
Utilizator neserios
Location: Iasi
Has thanked: 328 times
Been thanked: 409 times
Contact:

16 Aug 2013, 17:02

Dacă doriţi să modificaţi dmg-ul doar a unei singure arme faceţi astfel:

* În public-ul nostru ( Player_TakeDamge ) avem o verificaţie, şi anume:

Code: Select all

if ( iInflictor == iAttacker && IsPlayer ( iAttacker ) ) { 
În ea adăugăm următoarea funcţie:

Code: Select all

&& get_user_weapon ( iAttacker ) == CSW_DEAGLE
Verificaţia noastră va arăta astfel:

Code: Select all

if ( iInflictor == iAttacker && IsPlayer ( iAttacker ) && get_user_weapon ( iAttacker ) == CSW_DEAGLE ) { 
  • get_user_weapon ( index ) - verifică arma jucătorului.
  • CSW_DEAGLE - arma care trebuie să o aibă jucătorul ca să facă dmg mai mult.
User avatar
CsN^ ;x
Membru eXtream
Membru eXtream
Posts: 3819
Joined: 02 Apr 2012, 15:58
Detinator Steam: Nu
CS Status: Retras din domeniul Counter-Strike
Reputatie: Fost moderator
Location: Bucuresti
Has thanked: 842 times
Been thanked: 654 times

16 Aug 2013, 20:45

Foarte frumos acest tutorial ,e foarte bun pentru incepatorii chiar si pentru mine ca daca e ceva pot sa fac si eu un mic plugin dasta adica sa fac sa imi modific :)) .
OFF : Felicitari pentru grad ;)
Addons HNS level,gravity,xp DOWNLOAD ( e țeapă)
https://5filme.com/ - un simplu site de filme pentru timpul liber
User avatar
Hades Ownage
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3296
Joined: 22 Oct 2008, 09:12
Detinator Steam: Da
Detinator server CS: jb.clutch.ro
SteamID: hades-source
Reputatie: Fost Super Moderator
Scripter eXtreamCS
Nume anterior: hadesownage
Utilizator neserios
Location: Iasi
Has thanked: 328 times
Been thanked: 409 times
Contact:

16 Aug 2013, 22:03

O sa mai fac maine cateva, acum sunt dupa telefon.
prorvl
Membru, skill 0
Membru, skill 0
Posts: 36
Joined: 04 Mar 2013, 15:41
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 27 times
Contact:

17 Aug 2013, 20:40

Ai putea sa-mi spun cum pun damage la o singura clasa?
Exemplu: Clasa Trainer - Damage 3.0...
----------
Level-XP-MOD Respawn - 50 % [Privat]
----------
S-Mod Zombie XP - 60 % [Privat]
----------
aim_rival - Finished
----------
User avatar
Hades Ownage
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3296
Joined: 22 Oct 2008, 09:12
Detinator Steam: Da
Detinator server CS: jb.clutch.ro
SteamID: hades-source
Reputatie: Fost Super Moderator
Scripter eXtreamCS
Nume anterior: hadesownage
Utilizator neserios
Location: Iasi
Has thanked: 328 times
Been thanked: 409 times
Contact:

17 Aug 2013, 21:55

Creezi un bool ( boolean ) şi îl pui în verificaţia din Player_TakeDamage.
Exemplu:

Code: Select all

new bool: IsTrainer [ 33 ]

if ( iInflictor == iAttacker && IsPlayer ( iAttacker ) && IsTrainer [ iAttacker ] ) {
        // damage
}

 
prorvl
Membru, skill 0
Membru, skill 0
Posts: 36
Joined: 04 Mar 2013, 15:41
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 27 times
Contact:

18 Aug 2013, 11:41

Bun am inteles cum pun la o clasa dar daca am mai multe?
Fac acelasi lucru?

P.S.: +1 Multumesc
----------
Level-XP-MOD Respawn - 50 % [Privat]
----------
S-Mod Zombie XP - 60 % [Privat]
----------
aim_rival - Finished
----------
User avatar
Hades Ownage
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3296
Joined: 22 Oct 2008, 09:12
Detinator Steam: Da
Detinator server CS: jb.clutch.ro
SteamID: hades-source
Reputatie: Fost Super Moderator
Scripter eXtreamCS
Nume anterior: hadesownage
Utilizator neserios
Location: Iasi
Has thanked: 328 times
Been thanked: 409 times
Contact:

19 Aug 2013, 08:38

Da, şi spre exemplu dacă ai un meniu cu clase, în handler la meniu ( in case-uri ) pui

Code: Select all

IsTrainer [ id ] = true; 
prorvl
Membru, skill 0
Membru, skill 0
Posts: 36
Joined: 04 Mar 2013, 15:41
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 27 times
Contact:

19 Aug 2013, 16:40

Mersi mult de ajutor +1 Multumesc!

EDIT: Daca mai am nelamuriri te pot contacta?
----------
Level-XP-MOD Respawn - 50 % [Privat]
----------
S-Mod Zombie XP - 60 % [Privat]
----------
aim_rival - Finished
----------
LordOfNothing
Membru, skill +1
Membru, skill +1
Posts: 387
Joined: 19 Jul 2013, 14:51
Detinator Steam: Nu
Reputatie: Restrictie PM
Has thanked: 11 times
Been thanked: 34 times

21 Aug 2013, 17:39

thanks boss :D
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 1 guest