[Помощь] Вопрос по поводу функции снятия денег у игрока

Всем привет, у меня возникла одна проблема и я хотел бы попросить помощи.
Существует такой аддон MAC’s Simple NPCs и в диалог с НПС можно встроить разные функции. Примеры на фото:

И у меня появился один вопрос. В одном из диалогов с НПС я хочу сделать вариант в котором НПС “сольет” определенные данные игроку и это будет стоить 500$.
Существует ли такая функция которая заберет у игрока из кошелька 500$? (В том случае если они есть)
Буду очень признателен если вы мне поможете

util.AddNetworkString(‘infazababki’) – в начало кода

net.Receive(‘infazababkit’, function(len, ply) – это функция, которая нужна тебе в диалоге
if not ply:canAfford(500) then DarkRP.notify(ply, 1, 3, ‘Недостаточно средств’) return end – ply:canAfford(500)
ply:addMoney(-500)
MQS Continue и тут что тебе нужно продолжить (например, диалог)
end)

1 лайк

Можешь пожалуйста если не сложно на вот этом примере показать? Не совсем понял порядок действий. Буду очень благодарен

MCS.Spawns["casino8"] = {
	name = "Уволенный Крупье",
	model = "models/freeman/pcasino/owain_croupier_male08.mdl",
	namepos = 80,
	theme = "Default",
	pos = {
		["rp_florida_v2"] = { Vector(1245.3533935547,-2532.7060546875,136.03125 ), Angle(0,122.33863067627,0 )},
	},
	sequence = "idle_all_01",
	uselimit = false,
	skin = 1,
	bgr = {},
	dialogs = {
		[1] = {
			["Line"] = "Оу...не заметил тебя. Привет",
			["Sound"] = "",
			["Answers"] = {
				{"А что ты делаешь тут...на помойке?", 2,},
			},
		},
		[2] = {
			["Line"] = "Я....я раньше работал в казино, но меня уволилли. Уволили за то что, я был не согласен с махинационными схемами там. Так я и оказазлся тут, на улице, около мусорных баков...",
			["Sound"] = "",
			["Answers"] = {
				{"В каком смысле? Какие махинациоонные схемы ?", 3,},
			},
		},
		[3] = {
			["Line"] = "Да я думаю тут и так понятно, махинации со ставками в казино. Безусловно там возможно выиграть, но шанс ужасно мал. Хм, вижу ты парень не плохой, я смогу продать тебе кое-какую информацию о аппратах в казино. Всего за 500$",
			["Sound"] = "",
			["Answers"] = {
				{"Да,  конечно, я не против", "close",},
			},
		},
	}
}
util.AddNetworkString(‘infazababki’)

MCS.Spawns["casino8"] = {
	name = "Уволенный Крупье",
	model = "models/freeman/pcasino/owain_croupier_male08.mdl",
	namepos = 80,
	theme = "Default",
	pos = {
		["rp_florida_v2"] = { Vector(1245.3533935547,-2532.7060546875,136.03125 ), Angle(0,122.33863067627,0 )},
	},
	sequence = "idle_all_01",
	uselimit = false,
	skin = 1,
	bgr = {},
	dialogs = {
		[1] = {
			["Line"] = "Оу...не заметил тебя. Привет",
			["Sound"] = "",
			["Answers"] = {
				{"А что ты делаешь тут...на помойке?", 2,},
			},
		},
		[2] = {
			["Line"] = "Я....я раньше работал в казино, но меня уволилли. Уволили за то что, я был не согласен с махинационными схемами там. Так я и оказазлся тут, на улице, около мусорных баков...",
			["Sound"] = "",
			["Answers"] = {
				{"В каком смысле? Какие махинациоонные схемы ?", 3,},
			},
		},
		[3] = {
			["Line"] = "Да я думаю тут и так понятно, махинации со ставками в казино. Безусловно там возможно выиграть, но шанс ужасно мал. Хм, вижу ты парень не плохой, я смогу продать тебе кое-какую информацию о аппратах в казино. Всего за 500$",
			["Sound"] = "",
			["Answers"] = {
				{"Да,  конечно, я не против", "close",
                                 net.Receive(‘infazababkit’, function(len, ply)
                                 if not ply:canAfford(500) then DarkRP.notify(ply, 1, 3, ‘Недостаточно средств’) 
                                 return end – ply:canAfford(500)
                                 ply:addMoney(-500)
                                 MQS Continue и тут что тебе нужно продолжить (например, диалог)
                                 end)},
			},
		},
	}
}

пробуй

1 лайк

Выдает Луа Ошибку

[mc_simple_npcs] addons/mc_simple_npcs/lua/mcs_npcs/sh_npcspawn.lua:467: ')' expected near 'средств’'
  1. unknown - addons/mc_simple_npcs/lua/autorun/mcs_load.lua:18

Скинь луа файл

1 лайк

sh_npcspawn.lua (12.0 КБ)

Нужно сделать это на НПС с id: casino8
В самом конце

sh_npcspawn.lua (11.8 КБ)
тести

1 лайк

Попробовал, НПС вообще перестал появляться :c
Попробую с другим еще раз такое же проделать

Жди, завтра постараюсь ответить
Сейчас занят своим сервером и MQS перестал использовать )

1 лайк

Хорошо, если не получится сделать то отпишусь и буду ждать ответа завтра c:
Удачи тебе с сервером

Вот так еще попробуй, если не заработает, то жди до завтра ))
sh_npcspawn.lua (11.7 КБ)

1 лайк

Попробовал, все так же. Тогда завтра надеюсь решится данная проблема

И снова здравствуй

mc_simple_npcs\lua\mcs_npcs\sh_addonsup.lua

Добавляешь сюда это
1.

MCS.AddonList["MyFunction"] = { -- название функции (может быть рандомным)
    ["function"] = nil,
    ["function_sv"] = function(ply)
      if not ply:canAfford(500) then DarkRP.notify(ply, 1, 3, 'Недостаточно средств') return end
          ply:addMoney(-500)
    end,
    ["enabled"] = true,
}
  1. Где тебе нужно использовать эту функцию, вставляешь ее название вместо close

В твоем случае

		[3] = {
			["Line"] = "Да я думаю тут и так понятно, махинации со ставками в казино. Безусловно там возможно выиграть, но шанс ужасно мал. Хм, вижу ты парень не плохой, я смогу продать тебе кое-какую информацию о аппратах в казино. Всего за 500$",
			["Sound"] = "",
			["Answers"] = {
				{"Да,  конечно, я не против", "MyFunction", цифра_диалога_далее},
			},
		},

удачи :wave:

1 лайк

Спасибо
Сейчас попробую

Чтобы точно все работало, сделай так:

if ans[2].openid then
       MCS.Dialogue.OpenDialogue(ans[2].openid)
       return
end

Вставь это в \mc_simple_npcs\lua\mcs_npcs\cl_menu.lua
167 строчка

Далее

замени то что я тебе скинул для answer на это

	[3] = {
		["Line"] = "Да я думаю тут и так понятно, махинации со ставками в казино. Безусловно там возможно выиграть, но шанс ужасно мал. Хм, вижу ты парень не плохой, я смогу продать тебе кое-какую информацию о аппратах в казино. Всего за 500$",
		["Sound"] = "",
		["Answers"] = {
  			{"Да,  конечно, я не против", {
                id = "MyFunction",
                openid = 222,
                data = {},
            }, nil, function()
                return LocalPlayer():canAfford(500)
            end},
            {"Нет денег :(", "close",  nil, function()
       			return not LocalPlayer():canAfford(500)
			end},
		},

Вот так?

Он чего то все равно еррорит что-то.


Я тебе сюда скину файлы которые я правил, можешь посмотреть если не сложно? Может я что-то не так делаю…
cl_menu.lua (8.7 КБ)
sh_addonsup.lua (2.8 КБ)
sh_npcspawn.lua (14.5 КБ)

image

Ты цифру 5 посмотри куда вставил)