Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Zombie Plague 4.3

Problem z bugowaniem AP

zombie plague 4.3

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Qes

    Profesjonalista

  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:204
  • Lokalizacja:Polska
Offline

Napisano 12.03.2014 18:42

Witam,

Może ktoś sprawdzić ten kod i powiedziec czy jest możliwość zbugowania go?
Z tego co ostatnio usłyszałem niektórzy gracz potraifą zbugować sobie AP (dodawać w nieskończoność), wszystko pokazuje że jest to wina tego pluginu.

#include <amxmodx>
#include <cstrike>
#include <zombieplague>
#include <colorchat>

#define    PLUGIN    "[ZP] Ammo Donate"
#define    VERSION    "1.6"
#define    AUTHOR    "Rubick"

new players_menu, players[32], num, i
new accessmenu, iName[64], callback

public plugin_init()
{    
register_plugin(PLUGIN, VERSION, AUTHOR) 
register_clcmd("say /donate", "transfer_menu", ADMIN_ALL, "")
register_clcmd("say /daj", "transfer_menu", ADMIN_ALL, "")
register_clcmd("transfer", "transfer_ammo", ADMIN_ALL, "")
}

public transfer_menu(id)
{   
get_players(players, num, "h")       
if (num <= 1)  
{   
ColorChat(id,RED,"[ZP]^x01 Nie ma nikogo na serwerze aby przekazac Ammo Packi", id)
return PLUGIN_HANDLED    
}   
    
new tempname[32], info[10]  
  
players_menu = menu_create("Gracze", "players_menu_handler")  
 
for(i = 0; i < num; i++) 
{       
if(players[i] == id)           
continue  
             
get_user_name(players[i], tempname, 31)       
num_to_str(players[i], info, 9)       
menu_additem(players_menu, tempname, info, 0)    
}       
menu_setprop(players_menu, MPROP_EXIT, MEXIT_ALL)  

menu_display(id, players_menu, 0)   
return PLUGIN_CONTINUE
}

public players_menu_handler(id, players_menu, item)
{ 
if(item == MENU_EXIT)   
{       
menu_destroy(players_menu)       
return PLUGIN_HANDLED   
}    
   
new data[6]  
 
menu_item_getinfo(players_menu, item, accessmenu, data, charsmax(data), iName, charsmax(iName), callback) 

new player = str_to_num(data)  
      
client_cmd(id, "messagemode ^"transfer %i^"", player)  

return PLUGIN_CONTINUE
}

public transfer_ammo(id)
{    
new param[6]    
read_argv(2, param, charsmax(param))

for (new x; x < strlen(param); x++)    
{       
if(!isdigit(param[x]))       
{                 
ColorChat(id,RED,"[ZP]^x01 Wpisz Liczbe", id)    
return 0        
}    
}    
   
new amount = str_to_num(param)   
    
new ammo = zp_get_user_ammo_packs(id) 

if (ammo < amount)    
{             
ColorChat(id,RED,"[ZP]^x01 Nie masz tylu Ammo Packow aby przekazac !", id)    
return 0    
} 
      
read_argv(1, param, charsmax(param))   
new player = str_to_num(param) 
      
new player_ammo = zp_get_user_ammo_packs(player)

zp_set_user_ammo_packs(id, ammo - amount)    
zp_set_user_ammo_packs(player, player_ammo + amount)    
   
new names[2][32]        

get_user_name(id, names[0], 31)    
get_user_name(player, names[1], 31)        

ColorChat(0,RED,"[ZP]^x01 Gracz %s przekazal %i ^x03Ammo Packow ^x01dla %s", names[0], amount, names[1] )
return 0
}

  • +
  • -
  • 0

Polecam serdecznie

cs1.6download.png

Zapraszam!


#2 MaroTM

    Życzliwy

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:38
  • Imię:Mariusz
  • Lokalizacja:Wrocław
Offline

Napisano 26.02.2016 14:57

Sorry za odkop, ale mam nadzieję, że pomogę innym, którzy dalej nie wiedzą jak to naprawić.

Otwórz *.sma pluginu.

Znajdź:

		zp_set_user_ammo_packs(id, ammo - amount)    
		zp_set_user_ammo_packs(player, player_ammo + amount)

Zamień na:

	if (id == player)
	{
		console_print(id, "Chcesz bugowac AP? Nieladnie... :)");
		return 0
	}
	else
	{
		zp_set_user_ammo_packs(id, ammo - amount)    
		zp_set_user_ammo_packs(player, player_ammo + amount)
	}

Zapisz, skompiluj *.sma i wrzuć na serwer.

 

 

Bug polegał na tym, że transferowało się AP sobie samemu i się nie odejmowało.

Dodałem warunek jeżeli chce się samemu sobie wysłać AP to wyskakuje wiadomość, jeżeli nie spełnia się warunku to przekazuje AP.

Pozdrawiam.

 


Użytkownik MaroTM edytował ten post 26.02.2016 15:05

  • +
  • -
  • 0

Pomogłem? Kliknij: rep_up.png






Również z jednym lub większą ilością słów kluczowych: zombie plague 4.3

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych