[Cerere] Player_TakeDamage

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
User avatar
Adventx
Membru, skill +4
Membru, skill +4
Posts: 1785
Joined: 17 Sep 2013, 21:44
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 128 times
Been thanked: 142 times
Contact:

27 Feb 2014, 18:42

Salut, am o problema la publicul Player_TakeDamage si anume imi da eroare asta

Code: Select all

L 02/27/2014 - 00:10:01: [AMXX] [0] Untitled.sma:: Player_TakeDamage (line 847)
L 02/27/2014 - 00:10:01: [AMXX] Displaying debug trace (plugin "fmu_shop_fix.amxx")
L 02/27/2014 - 00:10:01: [AMXX] Run time error 4: index out of bounds
Nu inteleg de ce, am luat si toti playeri de pe server (get_maxplayers ();) pentru a nu imi aparea eroare index out of bounds dar vad ca tot asta imi apare!

Code: Select all

public Player_TakeDamage (iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
	if(iInflictor == iAttacker && g_Boolean1[iAttacker] && is_user_alive(iAttacker) && is_user_valid(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE)
	{
		SetHamParamFloat(4, fDamage * 2.0);
		return HAM_HANDLED;
	}
	
	if(iInflictor == iAttacker && g_Boolean2[iAttacker] && is_user_alive(iAttacker) && is_user_valid(iAttacker) && get_user_weapon(iAttacker) == CSW_KNIFE)
	{
		SetHamParamFloat(4, fDamage * 2.2);
		return HAM_HANDLED;
	}
	
	return HAM_IGNORED;
}
Si inca ceva am vrut sa va intreb, daca am facut corect asa

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50*1);
Daca am pus maxim Health sa fie 200 HP atunci cand playerul are de exemplu 155 HP nu poate cumpara pina la 200!

Multumesc!
RoyalServer
User avatar
GhosT ***
Membru, skill +2
Membru, skill +2
Posts: 604
Joined: 04 Dec 2013, 21:52
Detinator Steam: Da
CS Status: Morphin . [ Retras ]
SteamID: Mutulica1428
Reputatie: Fost Moderator ajutator
Location: Dumesti.
Has thanked: 40 times
Been thanked: 99 times
Contact:

27 Feb 2014, 18:59

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50*1);
Este acceasi cu :

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50);
Nu mai trebuia sa pui "*" popular zis inmultit :))
User avatar
Adventx
Membru, skill +4
Membru, skill +4
Posts: 1785
Joined: 17 Sep 2013, 21:44
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 128 times
Been thanked: 142 times
Contact:

27 Feb 2014, 19:21

GhosT *** wrote:

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50*1);
Este acceasi cu :

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50);
Nu mai trebuia sa pui "*" popular zis inmultit :))
Nu stiu unde am vazut ceva asemanator si nu mai tin minte unde, si de aia am intrabat :)
User avatar
DaNNe.
Fost moderator
Fost moderator
Posts: 2811
Joined: 08 Nov 2013, 20:43
Detinator Steam: Da
CS Status: Activitate scăzută
SteamID: /id/FurienMaster
Reputatie: Nick anterior: DnD. Gold, Emrys
0.5/3
Fost moderator ajutator
Fost Membru Club eXtreamCS (doua luni)
Has thanked: 244 times
Been thanked: 129 times
Contact:

27 Feb 2014, 19:45

Adventx wrote:
GhosT *** wrote:

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50*1);
Este acceasi cu :

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50);
Nu mai trebuia sa pui "*" popular zis inmultit :))
Nu stiu unde am vazut ceva asemanator si nu mai tin minte unde, si de aia am intrabat :)
Probabil era "*2", sau alt numar .. Daca faci matematica la scoala, orice numar inmultit cu "1" = acel numar. Deci tu acolo ai pus 50*1 = 50 Corect ?
Daca mai apare eroarea: verifica daca playerul este conectat ... if(is_user_connected(id)) {Cod.. }
Succes !
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

27 Feb 2014, 19:46

La Health puteai face asa:

Code: Select all

new bool:Health[ id ];

la public plugin_init(  )
bagi eventul CurWeapon

public CurWeapon( id )
  if( Health[ id ] )
    set_user_health( id, get_user_health( id ) + X );

Apoi setezi asa in publicul respectiv, unde adaugi viata in plus index-ului asa:
if( Health[ index ] )
  Health[ index ] * 2;
:D
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
kid #
Membru, skill +1
Membru, skill +1
Posts: 112
Joined: 27 Feb 2014, 14:27
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 49 times
Been thanked: 15 times
Contact:

27 Feb 2014, 19:49

Oricum nu are rost asa..Cel mai bine ii setezi direct set_user_health(id,get_user_health(id) + 121212)
User avatar
Adventx
Membru, skill +4
Membru, skill +4
Posts: 1785
Joined: 17 Sep 2013, 21:44
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 128 times
Been thanked: 142 times
Contact:

27 Feb 2014, 21:09

DaNNe. wrote:
Adventx wrote:
GhosT *** wrote:

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50*1);
Este acceasi cu :

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50);
Nu mai trebuia sa pui "*" popular zis inmultit :))
Nu stiu unde am vazut ceva asemanator si nu mai tin minte unde, si de aia am intrabat :)
Probabil era "*2", sau alt numar .. Daca faci matematica la scoala, orice numar inmultit cu "1" = acel numar. Deci tu acolo ai pus 50*1 = 50 Corect ?
Daca mai apare eroarea: verifica daca playerul este conectat ... if(is_user_connected(id)) {Cod.. }
Succes !
DaNNe am specificat mai sus ca am vazut undeva asa ceva dar nu tin minte unde, si am am facut topicu asta ca sa rezolv problema cu TakeDamage si mi-am adus aminte si de asta si am postat tot aici, macar nici nu am testat :)
Multumesc baeti la toti, dar inca nu am rezolvat problema cu HP, are cineva alta varianta?
User avatar
DaNNe.
Fost moderator
Fost moderator
Posts: 2811
Joined: 08 Nov 2013, 20:43
Detinator Steam: Da
CS Status: Activitate scăzută
SteamID: /id/FurienMaster
Reputatie: Nick anterior: DnD. Gold, Emrys
0.5/3
Fost moderator ajutator
Fost Membru Club eXtreamCS (doua luni)
Has thanked: 244 times
Been thanked: 129 times
Contact:

27 Feb 2014, 21:23

Asta-i cea mai buna:

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50);
User avatar
Adventx
Membru, skill +4
Membru, skill +4
Posts: 1785
Joined: 17 Sep 2013, 21:44
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 128 times
Been thanked: 142 times
Contact:

27 Feb 2014, 21:48

DaNNe. wrote:Asta-i cea mai buna:

Code: Select all

fm_set_user_health(id, get_user_health(id) + 50);
b-( DaNNe nu ai inteles, daca playerul are 155 HP el nu mai poate cumpara pina la 200, si nu stiu cum sa fac sa poata cumpara pina la 200 HP chiar daca are 155!
User avatar
DaNNe.
Fost moderator
Fost moderator
Posts: 2811
Joined: 08 Nov 2013, 20:43
Detinator Steam: Da
CS Status: Activitate scăzută
SteamID: /id/FurienMaster
Reputatie: Nick anterior: DnD. Gold, Emrys
0.5/3
Fost moderator ajutator
Fost Membru Club eXtreamCS (doua luni)
Has thanked: 244 times
Been thanked: 129 times
Contact:

27 Feb 2014, 22:01

Posteaza tot publicul, sau daca e privat Da-mi-l pe mess !
User avatar
GhosT ***
Membru, skill +2
Membru, skill +2
Posts: 604
Joined: 04 Dec 2013, 21:52
Detinator Steam: Da
CS Status: Morphin . [ Retras ]
SteamID: Mutulica1428
Reputatie: Fost Moderator ajutator
Location: Dumesti.
Has thanked: 40 times
Been thanked: 99 times
Contact:

28 Feb 2014, 07:05

incearca :

Code: Select all

if(get_user_health(id) + 50 >= 200) set_user_health(id, 200)
User avatar
eDyTuU
Membru, skill +1
Membru, skill +1
Posts: 121
Joined: 04 Aug 2012, 14:44
Detinator Steam: Nu
Has thanked: 8 times
Been thanked: 17 times

28 Feb 2014, 11:47

Pentru HP e cel mai bine asa:
fm_set_user_health( id, min( get_user_health(id) + HP, MAXHP ) )
Unde:
HP = cantitatea de viata cumparata
MAXHP = limita de HP

Pentru damage eu folosesc asa, si n`am nicio eroare:
if( is_user_alive( id ) && get_user_weapon( id ) == CSW_KNIFE )
{
SetHamParamFloat( 4, damage * 2.0 )
}
Fara return, fara alte conditii inutile, simplu...
Image
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 40 guests