Sma derleme hatası sorunu.

Konu

#1
Sa bu eklentiyi oyt için kurmak istiyorum fakat sma derleme hatası kod bozuk diye uyarı veriyor acaba sorun nedir.
Kod:
#define PLUGINNAME    ""
#define VERSION        "0.3"
#define AUTHOR        "JGHG"
/*
Copyleft 2005


====================
Where I come from, if you cut the wall repeteadly with your knife it means you're challenging your last opponent to a knife duel. ;-)

I decided to automate this process.

If only you and another person on the opposite team remain in the round, you can hit a wall (or another object) with your knife, THREE TIMES in fast succession.
By this action you challenge your opponent to a knife duel. The person you challenge gets a menu where he can accept/decline your
challenge. The challenged person has 10 seconds to decide his mind, else the challenge is automatically declined, and the menu should be closed automatically.

Should a knife duel start, it works out pretty much like a round of Knife Arena: you can only use the knife (and the C4!).
As soon as the round ends the Knife Arena mode is turned off.

/JGHG


VERSIONS
========
050421    0.3 You must now slash with your knife three times in fast succession to challenge someone.
050208    0.2    Fixed seconds display.
            Bots should now respond correctly and a little human like. They will mostly accept challenges. ;-)
            Small fixes here and there. :-)
050208    0.1    First version - largely untested
*/

#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <ColorChat>

#define DEBUG

#if defined DEBUG
#include <amxmisc>
#endif // defined DEBUG

#define MENUSELECT1                0
#define MENUSELECT2                1
#define TASKID_CHALLENGING        2348923
#define TASKID_BOTTHINK            3242321
#define DECIDESECONDS            10
#define ALLOWED_WEAPONS            2
#define KNIFESLASHES            3 // the nr of slashes within a short amount of time until a challenge starts...
// Globals below
new g_allowedWeapons[ALLOWED_WEAPONS] = {CSW_KNIFE, CSW_C4}
new g_MAXPLAYERS
new bool:g_challenging = false
new bool:g_knifeArena = false
new bool:g_noChallengingForAWhile = false
new g_challengemenu
new g_challenger
new g_challenged
new g_challenges[33]



// Globals above

public plugin_precache()
{
    precache_sound("misc/OG/round_berserker")
    precache_model("models/v_knife.mdl")
    precache_model("models/p_knife.mdl")
}

public plugin_init() {
    register_plugin(PLUGINNAME, VERSION, AUTHOR)
    register_event("CurWeapon", "event_holdwpn", "be", "1=1")
    register_forward(FM_EmitSound, "forward_emitsound")
    g_MAXPLAYERS = get_maxplayers()

    g_challengemenu = register_menuid("JGHG's automatic knife duel"/*"You are challenged"*/)
    register_menucmd(g_challengemenu, MENU_KEY_1 | MENU_KEY_2, "challenged_menu")

    register_event("DeathMsg", "event_death", "a")
    register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_terwin")
    register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_ctwin")
    register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_rounddraw")
   
    register_event("ResetHUD", "event_hud_reset", "be");
    register_clcmd("fullupdate", "clcmd_fullupdate") ;
    register_event("TextMsg", "event_restart_attempt", "a", "2=#Game_will_restart_in");

    #if defined DEBUG
    register_clcmd("0challenge", "challengefn", ADMIN_CFG, "< desafiador > < desafiado > - inicia un duelo a cuchillos")
    #endif // defined DEBUG

    new Float:maptime = get_cvar_float("mp_timelimit")
    if (maptime == 0.0)
        maptime = 15.0

    new Float:anntime = 60.0 * 5.0 // 5 minutes
    if (maptime < 5.0)
        anntime = maptime / 3.0

    set_task(anntime, "Announcement", 0, "", 0, "b")
   
}

public plugin_modules()
{
    require_module("fakemeta")
    require_module("fun")
}

public forward_emitsound(const PIRATE, const Onceuponatimetherewasaverysmall, noise[], const Float:turtlewhoateabiggerturtleand, const Float:afterthatthesmallturtlegot, const veryveryverybig, const theend) {
    if (g_noChallengingForAWhile || g_knifeArena || g_challenging || PIRATE < 1 || PIRATE > g_MAXPLAYERS || !is_user_alive(PIRATE) || !equal(noise, "weapons/knife_hitwall1.wav"))
        return FMRES_IGNORED

    new team = get_user_team(PIRATE), otherteam = 0, matchingOpponent = 0
    // Make sure exactly one person on each team is alive.
    for (new i = 1; i <= g_MAXPLAYERS; i++) {
        if (!is_user_connected(i) || !is_user_alive(i) || PIRATE == i)
            continue
        if (get_user_team(i) == team) {
            // No fun.
            return FMRES_IGNORED
        }
        else {
            if (++otherteam > 1) {
                // No fun.
                return FMRES_IGNORED
            }
            matchingOpponent = i
        }
    }

    if (matchingOpponent == 0)
        return FMRES_IGNORED

    if (++g_challenges[PIRATE] >= KNIFESLASHES) {
        Challenge(PIRATE, matchingOpponent)
        if (is_user_bot(matchingOpponent)) {
            new Float:val = float(DECIDESECONDS)
            if (val < 2.0)
                val = 2.0
            remove_task(TASKID_BOTTHINK)
            set_task(random_float(1.0, float(DECIDESECONDS) - 1.0), "BotDecides", TASKID_BOTTHINK)
        }
        g_challenges[PIRATE] = 0
    }
    else
        set_task(1.0, "decreaseChallenges", PIRATE)

    //client_print(PIRATE, print_chat, "Sus desafios: %d", g_challenges[PIRATE])

    return FMRES_IGNORED
}

public decreaseChallenges(id) {
    if (--g_challenges[id] < 0)
        g_challenges[id] = 0
}

public BotDecides() {
    if (!g_challenging)
        return

    if (random_num(0,9) > 0)
        Accept()
    else {
        DeclineMsg()
    }
    g_challenging = false
    remove_task(TASKID_CHALLENGING)
}

Challenge(challenger, challenged) {
    g_challenger = challenger
    g_challenged = challenged
    g_challenging = true
    new challenger_name[32], challenged_name[32]
    get_user_name(challenger, challenger_name, 31)
    get_user_name(challenged, challenged_name, 31)

    ColorChat(challenger, GREEN, "^3[OG]^1Has desafiado a ^4%s! ^1Espere la respuesta en: ^4[%d] ^31segundos...", challenged_name, DECIDESECONDS)

    new menu[1024], keys = MENU_KEY_1 | MENU_KEY_2
    format(menu, 1023, "%s te ha desafiado a un duelo a cuchillos!^n^nTienes %d segundos para responder!^n^n\y1\w. Dale gil!^n\y2\w. No gracias, te la doy sin faka!", challenger_name, DECIDESECONDS)
    show_menu(challenged, keys, menu, DECIDESECONDS, "JGHG's automatic knife duel")
    set_task(float(DECIDESECONDS), "timed_toolate", TASKID_CHALLENGING)
}

public timed_toolate() {
    if (g_challenging) {
        new challenger_name[32], challenged_name[32]
        get_user_name(g_challenger, challenger_name, 31)
        get_user_name(g_challenged, challenged_name, 31)
        ColorChat(0, GREEN, "^3[OG]^4%s ^1no respondio el duelo de ^4%s", challenged_name, challenger_name)
        CancelAll()
    }
}

public client_putinserver(id) {
    set_task(25.0, "Announcement", id)

    return PLUGIN_CONTINUE
}

public Announcement(id) {
   
    ColorChat(id, GREEN, "^3[OG]^1Cuando solo quedes tu y un enemigo, golpea 3 veces el cuchillo en la pared para desafiarlo.")
}

public challenged_menu(id, key) {
    switch (key) {
        case MENUSELECT1: {
            // Accept
            Accept()
        }
        case MENUSELECT2: {
            // Decline
            DeclineMsg()
        }
    }
    g_challenging = false
    remove_task(TASKID_CHALLENGING)

    return PLUGIN_HANDLED
}

DeclineMsg() {
    new challenger_name[32], challenged_name[32]
    get_user_name(g_challenger, challenger_name, 31)
    get_user_name(g_challenged, challenged_name, 31)
    ColorChat(0, GREEN, "^3[OG]^4%s ^1rechazo el duelo de ^4%s", challenged_name, challenger_name)
}

Accept() {
    
    new challenger_name[32], challenged_name[32]
    get_user_name(g_challenger, challenger_name, 31)
    get_user_name(g_challenged, challenged_name, 31)
    set_user_health(g_challenger, 100);
    set_user_health(g_challenged, 100);

    ColorChat(0, GREEN, "^3[OG]^4%s ^1acepto el duelo de ^4%s", challenged_name, challenger_name)
    
    g_knifeArena = true
    give_item(g_challenger, "weapon_knife")
    give_item(g_challenged, "weapon_knife")
    engclient_cmd(g_challenger, "weapon_knife")
    engclient_cmd(g_challenged, "weapon_knife")
        
    client_cmd(0,"spk misc/OG/round_berserker")


public event_holdwpn(id) {
    if (!g_knifeArena || !is_user_alive(id))
        return PLUGIN_CONTINUE

    new weaponType = read_data(2)

    for (new i = 0; i < ALLOWED_WEAPONS; i++) {
        if (weaponType == g_allowedWeapons[i])
            return PLUGIN_CONTINUE
    }

    engclient_cmd(id, "weapon_knife")

    return PLUGIN_CONTINUE
}

public event_roundend() {
    if (g_challenging || g_knifeArena)
        CancelAll()
    g_noChallengingForAWhile = true
    set_task(4.0, "NoChallengingForAWhileToFalse")

    return PLUGIN_CONTINUE
}

public NoChallengingForAWhileToFalse() {
    g_noChallengingForAWhile = false
}

CancelAll() {
    if (g_challenging) {
        g_challenging = false
        // Close menu of challenged
        if (is_user_connected(g_challenged)) {
            new usermenu, userkeys
            get_user_menu(g_challenged, usermenu, userkeys) // get user menu

            // Hmm this ain't working :-/
            if (usermenu == g_challengemenu) // Close it!
                show_menu(g_challenged, 0, "blabla") // show empty menu
        }
    }
    if (g_knifeArena) {
        g_knifeArena = false
    }
    remove_task(TASKID_BOTTHINK)
    remove_task(TASKID_CHALLENGING)
}

public event_death() {
    if (g_challenging || g_knifeArena)
        CancelAll()

    return PLUGIN_CONTINUE
}

#if defined DEBUG
public challengefn(id, level, cid) {
    if (!cmd_access(id, level, cid, 3))
        return PLUGIN_HANDLED

    new challenger[64], challenged[64]
    read_argv(1, challenger, 63)
    read_argv(2, challenged, 63)

    console_print(id, "Desafiador: %s, Desafiado: %s", challenger, challenged)

    new r = str_to_num(challenger)
    new d = str_to_num(challenged)
    Challenge(r, d)
    if (is_user_bot(d))
        Accept()

    return PLUGIN_HANDLED
}
#endif // defined DEBUG



stock chatcolor(id, const input[], any:...)
{
    static szMsg[191], msgSayText;
   
    if (!msgSayText)
        msgSayText = get_user_msgid("SayText");
   
    vformat(szMsg, 190, input, 3);

    replace_all(szMsg, 190, "!g", "^4");
    replace_all(szMsg, 190, "!y", "^1");
    replace_all(szMsg, 190, "!team", "^3");
   
    message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id);
    write_byte(id ? id : 33);
    write_string(szMsg);
    message_end();
}

Son Düzenleme: 01-11-2021, 13:06, Düzenleyen: 1kaanBEY.
#2
Deneyin bakalım :
PHP Kod:
AMX Mod X Compiler 1.10.0.5392
Copyright 
(c1997-2006 ITB CompuPhase
Copyright 
(c2004-2013 AMX Mod X Team

Header size
:           1736 bytes
Code size
:            10448 bytes
Data size
:             5748 bytes
Stack
/heap size:      16384 bytes
Total requirements
:   34316 bytes
Done
.
[
Finished in 0.5s
.sma sss.sma (Dosya Boyutu: 10,62 KB | İndirme Sayısı: 3)
(- Ücretli Eklenti Yaptırmak İsteyen -)
#3
(01-11-2021, 13:09)suriyelikene Adlı Kullanıcıdan Alıntı: Deneyin bakalım :
PHP Kod:
AMX Mod X Compiler 1.10.0.5392
Copyright 
(c1997-2006 ITB CompuPhase
Copyright 
(c2004-2013 AMX Mod X Team

Header size
:           1736 bytes
Code size
:            10448 bytes
Data size
:             5748 bytes
Stack
/heap size:      16384 bytes
Total requirements
:   34316 bytes
Done
.
[
Finished in 0.5s


üzgünüm aynı hata devam ediyor
Dosya Adı: Adsız.png | Dosya Boyutu: 14,05 KB | 01-11-2021, 13:12
Son Düzenleme: 01-11-2021, 13:13, Düzenleyen: 1kaanBEY.
#4
Eklenti hata basmamakta. Oyun yoneticisi'ne destek talebi açarsan sana hatayı söyleceklerdir. Bu durumda anca düzeltme yapabilirim.
(- Ücretli Eklenti Yaptırmak İsteyen -)
#5
(01-11-2021, 13:13)suriyelikene Adlı Kullanıcıdan Alıntı: Eklenti hata basmamakta. Oyun yoneticisi'ne destek talebi açarsan sana hatayı söyleceklerdir. Bu durumda anca düzeltme yapabilirim.
Talepte bulunup geri dönüş yapacam çok teşekür ederim.
#6
İstek konusu, @suriyelikene adlı kullanıcı tarafından 1 gün içinde çözülmüştür.
İsteği çözdüğü için suriyelikene Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
suriyelikene Adlı kullanıcı sizin dışınızda toplam 718 kişiye yardım etmiştir.

Herhangi bir konuda hata olduğunu düşünüyorsanız destek sistemi üzerinden iletişim kurabilirsiniz.

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Benzer Konular

7
Yorum
147
Okunma
27-05-2022, 03:19
4
Yorum
188
Okunma
26-05-2022, 10:34
15
Yorum
237
Okunma
25-05-2022, 00:16
13
Yorum
285
Okunma
24-05-2022, 11:23
12
Yorum
318
Okunma
20-05-2022, 07:21
4
Yorum
288
Okunma
19-05-2022, 18:58
Task
Kayıt Ol
Discord Adresimize Katılın