Jump to content

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

Posted Image Posted Image

Guest Message by DevFuse
 

Photo
Zombie Plague 4.3

Problem z bugowaniem AP

zombie plague 4.3

  • You cannot start a new topic
  • Please log in to reply
1 reply to this topic

#1 Qes

    Profesjonalista

  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:204
  • Lokalizacja:Polska
Offline

Posted 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

Posted 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.

 


Edited by MaroTM, 26.02.2016 15:05.

  • +
  • -
  • 0

Pomogłem? Kliknij: rep_up.png






Also tagged with one or more of these keywords: zombie plague 4.3

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users