Gopnik Napisano Poniedziałek o 21:08 Siemka! Mam pytanie i prośbę w jednym. Czy po wpisaniu !hp osoba dostanie 50HP czy całe 100HP? Jeśli nie to jakie warunki musiałbym wpisać żeby dodawało 50HP i nie żeby nie przekraczało 100HP gdy ktoś ma np. 76HP hpibronie.spHej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami! Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
joziu 1 1 Napisano Poniedziałek o 22:29 Po pierwsze nie ma czegoś takiego jak "ADMFLAG_VIP": Cytat RegAdminCmd("sm_hp", MojeHp, ADMFLAG_VIP); RegAdminCmd("sm_guns", Guns, ADMFLAG_VIP); Możesz ustawić sobie zamiast tego ADMFLAG_CUSTOMx lub zrobić sobie zrobić funkcje, która sprawdza czy gracz jest VIP'em (zamiast ADMFLAG_CUSTOM1 możesz użyć innych flag https://wiki.alliedmods.net/Checking_Admin_Flags_(SourceMod_Scripting)Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!): Cytat stock bool IsClientVIP(client) { if (GetUserFlagBits(client) && ADMFLAG_CUSTOM1) { if (CheckCommandAccess(client, "player_vip", ADMFLAG_CUSTOM1, false)) { return true; } } return false; } Kolejną sprawą jest to, że nie zbyt ogarniam czego potrzebujesz, bo ten kod wydaje się okej: Cytat public Action MojeHp(int client, int args) { int hp = GetClientHealth(client); if (hp <= 50) { SetEntityHealth(client, 100); } if (hp <= 75) { SetEntityHealth(client, 100); } } Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
kyo 1 Napisano Poniedziałek o 22:44 (edytowane) Kolega wyżej opisał już admflag więc nie będę powielał tego. A co do drugiego problemu, o ile dobrze zrozumiałem chodzi ci o regeneracje hp do 100 nie ważne jaką ilość HP ma Client - jeśli to tak to starczy public Action MojeHp(int client, int args) { int hp = GetClientHealth(client); if (hp <= 1) { SetEntityHealth(client, 100); } } [testowałem u siebie] lub public Action MojeHp(int client, int args) { int hp = GetClientHealth(client); if (hp <= 50) { SetEntityHealth(client, 100); } if (hp <= 75) { SetEntityHealth(client, 100); } if (hp <= 1) { SetEntityHealth(client, 100); } } Niżej cały kod Spoiler #include <sourcemod> #include <sdktools> #include <cstrike> public void OnPluginStart() { RegAdminCmd("sm_hp", MojeHp, ADMFLAG_CUSTOM1); RegAdminCmd("sm_guns", Guns, ADMFLAG_CUSTOM1); } public Action MojeHp(int client, int args) { int hp = GetClientHealth(client); if (hp <= 50) { SetEntityHealth(client, 100); } if (hp <= 75) { SetEntityHealth(client, 100); } if (hp <= 1) { SetEntityHealth(client, 100); } } public Action Guns(int client, int args) { Menu menu = new Menu(Guns_Handler); menu.SetTitle("Choose Weapon:"); menu.AddItem("1", "AK + DEAGLE"); menu.AddItem("2", "M4A4 + DEAGLE"); menu.AddItem("3", "AWP + DEAGLE"); menu.Display(client, MENU_TIME_FOREVER); } public int Guns_Handler(Menu menu, MenuAction action, int client, int position) { switch (action) { case MenuAction_Select: { switch (position) { case 0: { GivePlayerItem(client, "weapon_ak47"); GivePlayerItem(client, "weapon_deagle"); } case 1: { GivePlayerItem(client, "weapon_m4a1"); GivePlayerItem(client, "weapon_deagle"); } case 2: { GivePlayerItem(client, "weapon_awp"); GivePlayerItem(client, "weapon_deagle"); } } } case MenuAction_End:delete menu; } } Edytowane Poniedziałek o 22:46 przez kyo Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Gopnik Napisano Wtorek o 08:03 9 godzin temu, kyo napisał: A co do drugiego problemu, o ile dobrze zrozumiałem chodzi ci o regeneracje hp do 100 nie ważne jaką ilość HP ma Client - jeśli to tak to starczy Nie nie, chodzi o to żeby osoba leczyła się o 50HP z limitem 100HP przykład osoba na 25HP wpisuje !HP dostaje 50HP czyli ma 75HP, gdy ma 50HP dostaje 50HP czyli ma 100HP, gdy ma więcej niż 50HP czyli np 51HP po wpisaniu !HP dostaje HP do pełnej 100 czyli 49HP lecz nie przekracza w żadnym wypadku 100HP Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
VestSmart Napisano Wtorek o 10:44 2 godziny temu, Gopnik napisał: Nie nie, chodzi o to żeby osoba leczyła się o 50HP z limitem 100HP przykład osoba na 25HP wpisuje !HP dostaje 50HP czyli ma 75HP, gdy ma 50HP dostaje 50HP czyli ma 100HP, gdy ma więcej niż 50HP czyli np 51HP po wpisaniu !HP dostaje HP do pełnej 100 czyli 49HP lecz nie przekracza w żadnym wypadku 100HP hpibronie.spHej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami! Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Paweł 1 1 1 Napisano Wtorek o 13:43 14 godzin temu, kyo napisał: A co do drugiego problemu, o ile dobrze zrozumiałem chodzi ci o regeneracje hp do 100 nie ważne jaką ilość HP ma Client - jeśli to tak to starczy public Action MojeHp(int client, int args) { int hp = GetClientHealth(client); if (hp <= 1) { SetEntityHealth(client, 100); } } XDD To co podałeś nijak ma się do twoich słów. Warunek zostanie spełniony tylko wtedy gdy gracz ma 1HP lub mniej XD 5 godzin temu, Gopnik napisał: Nie nie, chodzi o to żeby osoba leczyła się o 50HP z limitem 100HP przykład osoba na 25HP wpisuje !HP dostaje 50HP czyli ma 75HP, gdy ma 50HP dostaje 50HP czyli ma 100HP, gdy ma więcej niż 50HP czyli np 51HP po wpisaniu !HP dostaje HP do pełnej 100 czyli 49HP lecz nie przekracza w żadnym wypadku 100HP if (GetClientHealth(client) + 50 > 100) SetEntityHealth(client, 100); else SetEntityHealth(client, GetClientHealth(client) + 50); Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach