←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Naprawienie
[ROZWIĄZANE] Menu broni

Locked

C@w@ler's Photo C@w@ler 09.09.2012

WItam!

Mógłby ktoś poprawić ten plugin (sma na dole), bo nie działa poprawnie, dzisiaj np. wbijam na serwa i daje menu w pierwszej rundzie, a powinno od 2. Chciałbym, aby ktoś poprawił go i dał od 3 rundy.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <cstrike>

#define FLAGA ADMIN_LEVEL_H // flaga

#define PLUGIN "vip_menu"
#define VERSION "1.0"
#define AUTHOR "VuX"

new runda = 0;

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_Spawn, "player", "daj", 1);

register_event("HLTV", "Runda", "a", "1=0", "2=0");

}
public func_menu(id)
{


new menu = menu_create("Wybierz zestaw broni","func_menu_show")
menu_additem(menu,"M4A1+DEAGLE+granaty","1",0)
menu_additem(menu,"AK47+DEAGLE+granaty","2",0)
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
return PLUGIN_CONTINUE




}
public func_menu_show(id,menu,item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1 :
{
strip_user_weapons(id)
give_item(id, "weapon_knife");
give_item(id, "weapon_m4a1")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"weapon_deagle")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")

}
case 2:
{
strip_user_weapons(id)
give_item(id, "weapon_knife");
give_item(id, "weapon_ak47")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"weapon_deagle")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")

}
}
return PLUGIN_CONTINUE;
}
public daj(id){


if(runda>=2)
{
if(get_user_flags(id) & FLAGA)
{
if(is_user_alive(id))
{


set_task(2.0, "func_menu", id)
}
}
}
}
public Runda(id)
{
runda++
}
Quote

  • +
  • -
glut's Photo glut 09.09.2012

Sprawdź

Attached Files

Quote

C@w@ler's Photo C@w@ler 09.09.2012

Można close, działa
Quote

  • +
  • -
Kawon's Photo Kawon 09.09.2012

Automatyczna wiadomość



Ten temat został przeniesiony z forum


AMX Mod X > Problemy z pluginami


do


Scripting AMXX > Pluginy

Quote

C@w@ler's Photo C@w@ler 09.09.2012

Sorry za zamieszanie, ale czy mógłbyś usunąć z tego menu granaty i dodać takie kolorowe menu? Tzn. tak na żółto i napisać "weź" takie coś: Posted Image
Quote

Gość_21977_* 10.09.2012

Attached File  bronie.sma   2.52KB   28 downloads
Quote

C@w@ler's Photo C@w@ler 10.09.2012

Coś nie takie te menu: http://vlep.pl/5tmpic.jpg Przy numeracji są jakieś literki, proszę o poprawę.
Edited by C@w@ler, 10.09.2012 17:09.
Quote

Gość_21977_* 10.09.2012

Zamień
menu_setprop(menu, MPROP_NUMBER_COLOR, "d");
na
menu_setprop(menu, MPROP_NUMBER_COLOR, "\d");
Umknął mi slash.

Attached File  bronie.sma   2.52KB   33 downloads
Quote

C@w@ler's Photo C@w@ler 10.09.2012

Wszystko super, tylko te menu koliduje chyba z VIP generator. Tzn. w vip generator dałem granaty od 2 rundy i faktycznie dostaję je od 2 rundy, natomiast znikają one w momencie kiedy pojawia się menu z broniami, czyli w 3 rundzie, wtedy już nie dostaję granatów, po wybraniu np. m4a1+Deagle. Proszę o pomoc.
Quote

Gość_21977_* 10.09.2012

Potwierdzam, że jest niekompatybilne.
W momencie spawnu, vip z generatora natychmiast daje nagrody, w tym granaty.

Plugin vipa zamieszczony przez Ciebie powyżej, 2 sekundy później wyświetla menu, gdzie wybrawszy dowolną opcję,
znikają wszystkie bronie (+granaty, a nawet nóż), po czym są na nowo dodawane.

Nie można więc powiedzieć, żeby plugin vip "bronie" z tego tematu działał prawidłowo.
Ponadto, nie sprawdza on, czy osoba, która kliknie cokolwiek w menu, jest jeszcze żywa,
co może generować liczne błędy, a nawet crashować serwer. W każdym razie, Error logami na pewno posypie.

Proponowałbym napisać na nowo plugin "broni", bo w obecnej formie nie nadaje się do użytku.
Quote

C@w@ler's Photo C@w@ler 10.09.2012

Właśnie serwer doznał crashu :/, a czy mógłbyś napisać takowy plugin? Bo ja nie znam się aż tak bardzo, aby pisać pluginy. Z góry dziękuję.
Quote

Gość_21977_* 10.09.2012

Wyślij mi SMA vipa, to Ci dopiszę.
Quote

C@w@ler's Photo C@w@ler 10.09.2012

Ok zaraz wyślę, jeszcze problem mam z errorami:

L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)
L 09/09/2012 - 23:53:29: [MySQL] Thread worker was unable to start.
L 09/09/2012 - 23:53:29: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 09/09/2012 - 23:53:29: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 09/09/2012 - 23:53:29: [AMXX]    [0] check_flag.inl::check_flagged (line 36)
L 09/09/2012 - 23:53:29: [AMXX]    [1] check_player.inl::check_player_ (line 100)

Tutaj .sma vipa:

#include <amxmodx>
#include <colorchat>
#include <cstrike>
#include <csx>
#include <fun>
#include <hamsandwich>

new Array:g_Array, bool:g_Vip[33], gRound=0;

new const g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"};

public plugin_init(){
register_plugin("VIP Ultimate", "5.1.0.2", "benio101 & speedkill");
RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
register_logevent("GameCommencing", 2, "1=Game_Commencing");
g_Array=ArrayCreate(64,32);
for(new i;i<sizeof g_Langcmd;i++)
register_clcmd(g_Langcmd[i],"g_Vips");
register_clcmd("say /vip", "g_ShowMotd");
register_event("DeathMsg", "DeathMsg", "a");
register_logevent("Round_end", 2, "1=Round_End");
}
public client_authorized(id){
if(get_user_flags(id) & 524288 == 524288){
client_authorized_vip(id);
}
}
public client_authorized_vip(id){
g_Vip[id]=true;
new g_Name[64];
get_user_name(id,g_Name,charsmax(g_Name));
ArrayPushString(g_Array,g_Name);
}
public client_disconnect(id){
if(g_Vip[id]){
client_disconnect_vip(id);
}
}
public client_disconnect_vip(id){
g_Vip[id]=false;
new Name[64];
get_user_name(id,Name,charsmax(Name));

new g_Size = ArraySize(g_Array);
new g_Name[64];

for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));

if(equal(g_Name,Name)){
ArrayDeleteItem(g_Array,i);
break;
}
}
}
public SpawnedEventPre(id){
if(g_Vip[id]){
if(is_user_alive(id)){
SpawnedEventPreVip(id);
}
}
}
public event_new_round(){
++gRound;
}
public GameCommencing(){
gRound=0;
}
public SpawnedEventPreVip(id){
if(gRound>=2){
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_FLASHBANG,2);
give_item(id, "weapon_smokegrenade");
}
}
public g_Vips(id){
new g_Name[64],g_Message[192];

new g_Size=ArraySize(g_Array);

for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));

add(g_Message, charsmax(g_Message), g_Name);

if(i == g_Size - 1)
add(g_Message, charsmax(g_Message), ".");
else
add(g_Message, charsmax(g_Message), ", ");
}
ColorChat(id,GREEN,"^x03Vipy ^x04na ^x03serwerze : ^x04%s", g_Message);
}
public client_infochanged(id){
if(g_Vip[id]){
new szName[64];
get_user_info(id,"name",szName,charsmax(szName));

ArrayPushString(g_Array,szName);

new Name[64];
get_user_name(id,Name,charsmax(Name));

new g_Size=ArraySize(g_Array);
new g_Name[64];

for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));

if(equal(g_Name,Name)){
ArrayDeleteItem(g_Array,i);
break;
}
}
}
}
public plugin_end(){
ArrayDestroy(g_Array);
}
public g_ShowMotd(id){
if(is_user_connected(id))
show_motd(id, "vip.txt", "Informacje o vipie");
}
public bomb_planted(id){
if(is_user_alive(id) && g_Vip[id])
cs_set_user_money(id,cs_get_user_money(id) + 300);
}
public bomb_defused(id){
if(is_user_alive(id) && g_Vip[id])
cs_set_user_money(id,cs_get_user_money(id) + 300);
}
public DeathMsg(){
new killer=read_data(1);
new victim=read_data(2);

if(is_user_alive(killer) && g_Vip[killer]){
if(get_user_team(killer) != get_user_team(victim)){
new g_Hs=read_data(3);
new g_Hp=get_user_health(killer);
if(g_Hs){
cs_set_user_money(killer,cs_get_user_money(killer) + 500);
if(g_Hp < 130){
if(g_Hp + 10 > 120){
new g_Dif = 120 - g_Hp;
set_user_health(killer,g_Hp + g_Dif);
}
else
set_user_health(killer,g_Hp + 10);
}
}
else{
cs_set_user_money(killer,cs_get_user_money(killer) + 300);
if(g_Hp < 120){
if(g_Hp + 5 > 120 ){
new g_Dif = 120 - g_Hp;
set_user_health(killer,g_Hp + g_Dif);
}
else
set_user_health(killer,g_Hp + 5);
}
}
}
}
}
public Round_end(){
for(new i = 1; i < 33; i++){
if(is_user_alive(i) && g_Vip[i])
cs_set_user_money(i,cs_get_user_money(i) + 200);
}
}
Quote

Gość_21977_* 10.09.2012

Ni jak do tematu te logi pasują.
Quote

C@w@ler's Photo C@w@ler 10.09.2012

Wiem, to z amxbansa, ale chyba przez to był chyba crash, a 2 temat zakładać to tak...
Quote

C@w@ler's Photo C@w@ler 12.09.2012

To jak zrobisz te menu? Bo to ważny plugin dla mnie i go potrzebuję.
Quote

C@w@ler's Photo C@w@ler 13.09.2012

Odświeżam.
Quote

C@w@ler's Photo C@w@ler 14.09.2012

@Odświeżam
Quote

  • +
  • -
glut's Photo glut 14.09.2012

Sprawdź ;)

Attached Files

Quote

C@w@ler's Photo C@w@ler 14.09.2012

Są błędy takie co wcześniej, popraw go jak możesz.
Quote
Locked