Jump to content

[Решено]Проблема в банковской системе)))


Recommended Posts

root поставил не руг больше , на 3 строку сервер ругается что та пытается сравнить два логических значения и на 48 клиента -attempt to compare nil with number

Link to comment

хорошо, переписывал раз сотню разными способами, читал о тригерах реально уже устал, вот новый код, думаю самый удачный хотя есть много но, вот первое

- 2 строка сервера attempt to compare number with nil, и что с того что он сравнивает с 0 ? или же все таки с пустотой, тогда триггер не передал значение для сравнения...((( далее...

14 строка сервера ElemenData 1 арг, bad wery hot bad ХДД)) без юмора я уже не могу, там тоже что то потерялось наверняка, как быть?

сервер

function onDepositOpul ( localPlayer, ponum) 
if (tonumber ( getPlayerMoney(localPlayer)) > ponum) then 
setElementData(localPlayer, "bmoney", tonumber(getElementData(source, "bmoney")) +ponum) 
triggerClientEvent ( "showBankSystem" ,getRootElement(),getElementData(source, "bmoney"), ponum ) 
givePlayerMoney ( localPlayer, -ponum ) 
else 
outputChatBox("dddddd",localPlayer,100,200,200)  
end  
     end  
addEvent("onDeposit",true) 
addEventHandler("onDeposit", getRootElement(), onDepositOpul) 
  
function onWithdrawPol (localPlayer, pon ) 
local mon = tonumber(getElementData(localPlayer, "bmoney")) 
      if (tonumber(mon) > pon) then 
      setElementData(localPlayer, "bmoney", tonumber(getElementData(source, "bmoney")) -pon) 
  
triggerClientEvent("showBankSystem",getRootElement(),pon,getElementData(source,"bmoney"),tonumber(getElementData(source,"bmoney")), mon - pon) 
  
givePlayerMoney(localPlayer, pon) 
else 
outputChatBox("dddddd",localPlayer,100,200,200)  
end 
  
end 
addEvent("onWithdraw",true) 
addEventHandler("onWithdraw", getRootElement(), onWithdrawPol) 
  

клиент

function showBankSystemMenu ( ponum, pon, bmoney) 
    if menushow == nil or menushow == 0 then 
        menushow = 1 
        showCursor(true) 
        GUIEditor_Window[17] = guiCreateWindow(496,345,364,365,"Bank",false) 
        GUIEditor_Label[27] = guiCreateLabel(24,23,338,18,"_____________________Info_____________________",false,GUIEditor_Window[17]) 
        guiLabelSetColor(GUIEditor_Label[27],255,255,255) 
        guiLabelSetVerticalAlign(GUIEditor_Label[27],"top") 
        guiLabelSetHorizontalAlign(GUIEditor_Label[27],"left",false) 
        GUIEditor_Label[28] = guiCreateLabel(15,151,338,22,"_____________________Withdraw_____________________",false,GUIEditor_Window[17]) 
        guiLabelSetColor(GUIEditor_Label[28],255,255,255) 
        guiLabelSetVerticalAlign(GUIEditor_Label[28],"top") 
        guiLabelSetHorizontalAlign(GUIEditor_Label[28],"left",false) 
        GUIEditor_Label[29] = guiCreateLabel(15,75,338,22,"_____________________Deposit_____________________",false,GUIEditor_Window[17]) 
        guiLabelSetColor(GUIEditor_Label[29],255,255,255) 
        guiLabelSetVerticalAlign(GUIEditor_Label[29],"top") 
        guiLabelSetHorizontalAlign(GUIEditor_Label[29],"left",false) 
        GUIEditor_Label[30] = guiCreateLabel(120,49,186,19,"Moneys: "..tostring(getElementData(source, "bmoney")).."$",false,GUIEditor_Window[17]) 
        guiLabelSetColor(GUIEditor_Label[30],255,255,255) 
        guiLabelSetVerticalAlign(GUIEditor_Label[30],"top") 
        guiLabelSetHorizontalAlign(GUIEditor_Label[30],"left",false) 
        guiSetFont(GUIEditor_Label[30],"clear-normal") 
        GUIEditor_Edit[9] = guiCreateEdit(178,109,104,26,"0",false,GUIEditor_Window[17]) 
         GUIEditor_Button[73] = guiCreateButton(97,114,67,18,"deposit",false,GUIEditor_Window[17]) 
         GUIEditor_Button[74] = guiCreateButton(97,194,67,22,"Withdraw",false,GUIEditor_Window[17]) 
         GUIEditor_Button[75] = guiCreateButton(109,317,159,34,"Finish",false,GUIEditor_Window[17])  
   addEventHandler("onClientGUIClick", GUIEditor_Button[73], function () 
local ponum =  tonumber(guiGetText ( GUIEditor_Edit[9] ))  
triggerServerEvent ( "onDeposit" , getRootElement(), getElementData(source, "bmoney"), ponum )   
end,false) 
addEventHandler("onClientGUIClick", GUIEditor_Button[74], function () 
local pon =  tonumber(guiGetText ( GUIEditor_Edit[9] ))  
triggerServerEvent ( "onWithdraw" , getRootElement(), getElementData(source, "bmoney"), pon,mon ) 
        end,false) 
addEventHandler("onClientGUIClick", GUIEditor_Button[75], function () 
            menushow = 0 
            showCursor(false) 
            guiSetVisible ( GUIEditor_Window[17], false ) 
            end,false)  
      end 
end 
addEvent( "showBankSystem", true ) 
addEventHandler( "showBankSystem", getRootElement(), showBankSystemMenu ) 

Link to comment
вы говорите читать по ссылке, я не собираюсь становиться скриптером, мне просто это интересно я для самого себя пользуюсь, по вечерам копаюсь, я даже сервер только локальный пользую, хотя ип внешний, вообщем вот напользовал но как всегда не работает((

А чем вы сейчас занимаетесь, это не скриптинг? Вы не понимаете ваш же код и пишите "чтобы работало", хотя на самом деле без знаний у вас реально ничего не получится.

Вы ленитесь прочитать документацию и надетесь, что кто-то за вас напишет код. Врятли вам вообще будут помогать раз вы пишите на угад. Вообщем так, прочитайте все эти ссылки:

https://forum.multitheftauto.com/viewto ... 9c4add0631

https://wiki.multitheftauto.com/index.ph ... troduction

https://wiki.multitheftauto.com/index.ph ... ng_the_GUI

https://wiki.multitheftauto.com/wiki/Advanced_Topics

https://wiki.multitheftauto.com/index.ph ... U/Meta.xml

https://wiki.multitheftauto.com/index.ph ... /Debugging

https://wiki.multitheftauto.com/index.ph ... de_scripts

https://wiki.multitheftauto.com/wiki/Event_system

https://wiki.multitheftauto.com/index.ph ... _Gamemodes

https://wiki.multitheftauto.com/index.ph ... %D1%8B_MTA

https://wiki.multitheftauto.com/index.ph ... RU/Element

https://wiki.multitheftauto.com/index.ph ... ement_tree

https://wiki.multitheftauto.com/index.ph ... /Resources

Link to comment

да я очень мало знаю, но мне было достаточно раньше этого, с триггер я столкнулся впервые... как пару недель впервые открыл для себя gui вернее как и с чем ее едят)) поэтому я не прошу делать за меня я прошу показать указать на то как делать триггер, та инфа что на вики меня не вдохновила по счет триггера... расположение арг в триггере и примерно каким способом он передает инфу я понимаю, а вот подробностей и примеров я таки не нашел.. печалит.. спасибо за ссылки почитаю))

Link to comment

не подскажите почему так?

lua:2: attempt to compare number with boolean

lua:18: attempt to compare number with boolean

function onDepositOpul (  ponum) 
if(ponum > getPlayerMoney(source)-1) then return end 
outputDebugString("вошел в if") 
setElementData(localPlayer,"bmoney", tonumber(getElementData(source, "bmoney")) +ponum) 
outputDebugString("елемент") 
triggerClientEvent ( source,"showBankSystem" ,source,tonumber(getElementData(source, "bmoney"))) 
outputDebugString("серв тригер 1") 
givePlayerMoney ( source, -ponum ) 
outputDebugString("ааа") 
     
     end  
addEvent("onDeposit",true) 
addEventHandler("onDeposit", getRootElement(), onDepositOpul) 
  
function onWithdrawPol ( pon ) 
local mon = tonumber(getElementData(source, "bmoney")) 
  
 if(mon <  pon) then 
        outputChatBox("У вас нет столько денег!", source, 255, 0, 0) 
        return 
    end 
      
outputDebugString("вошел в if2") 
  
      setElementData(localPlayer,"bmoney", tonumber(getElementData(source, "bmoney")) -pon) 
  
triggerClientEvent(source,"showBankSystem",source,getElementData(source, "bmoney"), pon - mon) 
outputDebugString("йййййййййййййй") 
  
givePlayerMoney(source, pon) 
  
  
end 
addEvent("onWithdraw",true) 
addEventHandler("onWithdraw", getRootElement(), onWithdrawPol) 
  

Link to comment

все ребята я отмучался))) сделал наконецто почитал получше о тригерах да и вообщем литературку спасибо вам за советы и помощ))))) я ценю ваши советы)) а проблема заключалась в малом.. я бы сказал очень малом(((( столько времени убил(( зато теперь умею и знаю)))

сделал так на клиенте

  
triggerServerEvent ("onWithdraw" , getLocalPlayer(), pop ) 
triggerServerEvent ( "onDeposit" ,getLocalPlayer(), ponu ) 
  

на сервере

function onDepositOpul (  ponu) 
takePlayerMoney ( source, ponu )     
end  
addEvent("onDeposit",true) 
addEventHandler("onDeposit", getRootElement(), onDepositOpul) 
  
function onWithdrawPol ( pop ) 
givePlayerMoney(source, pop) 
end 
addEvent("onWithdraw",true) 
addEventHandler("onWithdraw", getRootElement(), onWithdrawPol) 

Link to comment

теперь вопрос в том, как поставить условие что бы нельзя было вводить число с минусом?! Кто подскажет что почитать?)))

Link to comment
теперь вопрос в том, как поставить условие что бы нельзя было вводить число с минусом?! Кто подскажет что почитать?)))

Много вариантов есть...

Допустим проверить строку на наличие минуса можно функцией string.find

Link to comment

Kenix спасибо за код)) все было проще чем есть))

if числовой арг. == nil then 
outputChatBox("Введите сумму!", source, 255, 0, 0) 
elseif числовой арг. < 0 then  
outputChatBox("минус!", source, 255, 0, 0) 
return  
end 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...