Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Обращаюсь к скриптерам!

Статус пользователя kidnick98
сообщение 18.8.2011, 7:00
Сообщение #1


Стаж: 14 лет

Сообщений: 239
Благодарностей: 12
Полезность: < 0

Пожалуйста, не помогли бы вы мне сделать, так чтобы в этом плагине при педаче денег в чат писало что игрок передал денег другому игроку...ПОжалуйста!!
Код
/* MoneyTransfer v0.3 */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "MoneyTransfer"
#define VERSION "0.3"
#define AUTHOR "ZETA [M|E|N]"

new players_menu,money_menu,players[32],num,i
new name[32],info[10],player,addmenu[121]
new data[32], iName[64],money,transfer[7]
new accessmenu, callback,player_money

public plugin_init() {
    register_plugin("MoneyTransfer","0.3","ZETA [M|E|N]")
    register_clcmd("say /money","func_money_transfer",ADMIN_ALL,"")
}

public func_money_transfer(id) {
    players_menu=menu_create("Игроки","players_menu_handler")
    
    get_players(players,num)
    
    for(i=0;i<num;i++) {
        if(players[i]!=id) {
            get_user_name(players[i],name,31)
            num_to_str(players[i],info,9)
            menu_additem(players_menu,name,info)
        }
    }
    
    menu_display(id,players_menu,0)
    return PLUGIN_HANDLED
}

public players_menu_handler(id,players_menu,item) {
    if(item==MENU_EXIT) return PLUGIN_HANDLED
    
    menu_item_getinfo(players_menu,item,accessmenu,data,31,iName,63,callback)
    
    player=str_to_num(data)
    
    get_user_name(player,name,31)
    money=cs_get_user_money(id)
    player_money=cs_get_user_money(player)
    format(addmenu,120,"Перевести деньги  \y%s",name)
    transfer={0,0,0,0,0,0,0}
    
    money_menu=menu_create(addmenu,"money_menu_handler")
    if(money>=500) {
        transfer[1]=1
        menu_additem(money_menu,"\w500$")
    }
    else menu_additem(money_menu,"\d500$")
    
    if(money>=1000) {
        transfer[2]=1
        menu_additem(money_menu,"\w1000$")
    }
    else menu_additem(money_menu,"\d1000$")
    
    if(money>=3000) {
        transfer[3]=1
        menu_additem(money_menu,"\w3000$")
    }
    else menu_additem(money_menu,"\d3000$")
    
    if(money>=5000) {
        transfer[4]=1
        menu_additem(money_menu,"\w5000$")
    }
    else menu_additem(money_menu,"\d5000$")
    
    if(money>=8000) {
        transfer[5]=1
        menu_additem(money_menu,"\w8000$")
    }
    else menu_additem(money_menu,"\d8000$")
    
    if(money>=10000) {
        transfer[6]=1
        menu_additem(money_menu,"\w10000$")
    }
    else menu_additem(money_menu,"\d10000$")
    
    menu_setprop(money_menu,MPROP_PERPAGE,0)
    menu_display(id,money_menu,0)
    return PLUGIN_HANDLED
}

public money_menu_handler(id,money_menu,item) {
    item++
    
    switch(item) {
        case 1:{
            if(transfer[1]==1) {
                cs_set_user_money(id,money-500)
                cs_set_user_money(player,player_money+500)
            }
            else menu_display(id,money_menu,0)
        }
        case 2:{
            if(transfer[2]==1) {
                cs_set_user_money(id,money-1000)
                cs_set_user_money(player,player_money+1000)
            }
            else menu_display(id,money_menu,0)
        }
        case 3:{
            if(transfer[3]==1) {
                cs_set_user_money(id,money-3000)
                cs_set_user_money(player,player_money+3000)
            }
            else menu_display(id,money_menu,0)
        }
        case 4:{
            if(transfer[4]==1) {
                cs_set_user_money(id,money-5000)
                cs_set_user_money(player,player_money+5000)
            }
            else menu_display(id,money_menu,0)
        }
        case 5:{
            if(transfer[5]==1) {
                cs_set_user_money(id,money-8000)
                cs_set_user_money(player,player_money+8000)
            }
            else menu_display(id,money_menu,0)
        }
        case 6:{
            if(transfer[6]==1) {
                cs_set_user_money(id,money-10000)
                cs_set_user_money(player,player_money+10000)
            }
            else menu_display(id,money_menu,0)
        }
    }
    return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Makzz
сообщение 18.8.2011, 7:14
Сообщение #2


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Делаешь в функции money_menu_handler такие записи:

Код
public money_menu_handler(id,money_menu,item) {
    item++
    
    switch(item) {
        case 1:{
            if(transfer[1]==1) {
                // Показ сообщения
                new Name[33], Name2[33]
                get_user_name ( id, Name, 32 )
                get_user_name ( player, Name, 32 )
                client_print ( 0, print_chat, "Игрок %s передал %s %d$  бабла", Name, Name2, 500 )
                //
                cs_set_user_money(id,money-500)
                cs_set_user_money(player,player_money+500)
            }
            else menu_display(id,money_menu,0)
        }
        ..........

И так во всех кейсах функции
(а вобще не в том разделе создал тему)

Отредактировал: Makzz, - 18.8.2011, 7:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя kidnick98
сообщение 18.8.2011, 7:15
Сообщение #3


Стаж: 14 лет

Сообщений: 239
Благодарностей: 12
Полезность: < 0

Спасибо дружок, выручил +1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kidnick98
сообщение 18.8.2011, 7:33
Сообщение #4


Стаж: 14 лет

Сообщений: 239
Благодарностей: 12
Полезность: < 0

Макзз...
А не мог бы ты это со всеми кейсам сделать pardon.gif
Что-то не получается, плиз)))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soroka-beloboka
сообщение 21.8.2011, 14:24
Сообщение #5
Стаж: 14 лет

Сообщений: 257
Благодарностей: 47
Полезность: 32

Смотри как работает

"Игрок %s передал %s %d$ бабла", Name, Name2, 500 )

%s - выдает первую переменную после ", то есть первая %s выдаст Name

2я %s выдаст Name2

%d выдаст 500 ( сумму денег)

вместо ,name,name2, 500 можно ставит другие значения
например

new gg,Hp
gg = get_user_name(id)
Hp = get_user_health(id)

%s %s " ,gg,Hp)

Отредактировал: soroka-beloboka, - 21.8.2011, 16:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 21.8.2011, 15:53
Сообщение #6
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(soroka-beloboka @ 21.8.2011, 16:24) *
%s " ,get_user_name(id),
Так использовать нельзя.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soroka-beloboka
сообщение 21.8.2011, 16:07
Сообщение #7
Стаж: 14 лет

Сообщений: 257
Благодарностей: 47
Полезность: 32

это был пример
да нужно
new name = get_user_name(id)

и юзать уже name
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 21.8.2011, 16:25
Сообщение #8
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(soroka-beloboka @ 21.8.2011, 18:07) *
new name = get_user_name(id)

и юзать уже name
Так тоже нельзя.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soroka-beloboka
сообщение 21.8.2011, 16:53
Сообщение #9
Стаж: 14 лет

Сообщений: 257
Благодарностей: 47
Полезность: 32

судя по статьям в инете

set_hudmessage(150,250,100,1.0,1.0,0,3.0,5.0,0.1,0.2,4)
show_hudmessage(id,"Restored %i health",get_user_health(id)-hp)

то можно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 21.8.2011, 17:05
Сообщение #10
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(soroka-beloboka @ 21.8.2011, 18:53) *
судя по статьям в инете

set_hudmessage(150,250,100,1.0,1.0,0,3.0,5.0,0.1,0.2,4)
show_hudmessage(id,"Restored %i health",get_user_health(id)-hp)

то можно
Функция get_user_health(id) возвращает числовое значение, которое можно занести в обычную переменную.
Функция get_user_name(id) возвращает строковое значение, которое можно записать только в массив.
Простыми словами правильно будет так:
Код
new s_Name[32]
get_user_name(id, s_Name, charsmax(s_Name))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: