Jump to content

Zasiłek na setElementDatach


Recommended Posts

Cześć! Robię zasiłek dla bezrobotnych, i tak. Napisałem taki oto kod:

  
function dajdata () 
setElementData(thePlayer, "zasilek", 0) 
end 
  
addEventHandler("onClientResourceStart", root, dajdata) 
  
  
zasilek = createMarker(359, 169, 1008, "cylinder", 2) 
setElementInterior(zasilek, 3) 
  
function dajkase() 
if source == zasilek then 
getElementData(thePlayer, zasilek) 
if zasilek == 1then 
outputChatBox("Urzędnik mówi: Skorzystałeś/aś już z zasiłku!", thePlayer, 255,255,255) 
givePlayerMoney(200) 
setElementData(thePlayer, "zasilek", 1) 
end 
end 
end 
  
addEventHandler("onClientMarkerHit", root, dajkase) 

Jest po stronie serwera. Przed tem był po stronie klienta bez elementdatów i działał prawidłowo. Teraz już nie. Skrypt ma polegać na tym, że wchodzę w marker, daje mi kasę (200$) i mogę to zrobić tylko raz. Dodatkowo zrobię wykrywanie czy jest w jakiejś frakcji ale to później, najpierw to. Debugscript po odpaleniu skryptu nic nie pokazuje, po wejściu w marker tak samo.

Link to comment

Lepiej zrobić to po stronie serwera, bo po stronie clienta dawanie kasy tak na prawdę nie działa.

zasilek = createMarker ( 359, 169, 1008, "cylinder", 2 ) 
setElementInterior ( zasilek, 3 ) 
  
function dajkase ( hitElement ) 
    if ( isElement ( hitElement ) and getElementType ( hitElement ) == "player" ) then 
        local data = getElementData ( hitElement, "zasilek" ) or false 
        if ( data ) then 
            outputChatBox ( "Urzędnik mówi: Skorzystałeś/aś już z zasiłku!", hitElement, 255, 255, 25, true ) 
        else 
            setElementData ( hitElement, "zasilek", true ) 
            givePlayerMoney ( hitElement, 200 ) 
        end 
    end 
end 
  
addEventHandler("onMarkerHit", zasilek, dajkase) 

Tak powinna wyglądać strona serwera.

Link to comment

Rozwiązałem to tak:

zasilek = createMarker ( 359, 169, 1008, "cylinder", 2 ) 
setElementInterior ( zasilek, 3 ) 
  
function dajkase ( hitElement ) 
    if ( isElement ( hitElement ) and getElementType ( hitElement ) == "player" ) then 
        local data = getElementData ( hitElement, "zasilek" ) or false 
        if ( data ) then 
            outputChatBox ( "Urzędnik mówi: Skorzystałeś/aś już z zasiłku!", hitElement, 255, 255, 25, true ) 
        else 
            setElementData ( hitElement, "zasilek", true ) 
            givePlayerMoney ( hitElement, 200 ) 
            end 
            if ( getPlayerTeam ( hitElement ) == getTeamFromName ( "Mechanicy" ) ) then 
            outputChatBox ( "Urzędnik mówi: aktualnie pracujesz, nie możesz skorzystać z zasiłku dla bezrobotnych!", hitElement, 255, 255, 25, true ) 
            return               
            end 
            if ( getPlayerTeam ( hitElement ) == getTeamFromName ( "Policja" ) ) then 
            outputChatBox ( "Urzędnik mówi: aktualnie pracujesz, nie możesz skorzystać z zasiłku dla bezrobotnych!", hitElement, 255, 255, 25, true ) 
            return 
            if ( getPlayerTeam ( hitElement ) == getTeamFromName ( "Taxi" ) ) then 
            outputChatBox ( "Urzędnik mówi: aktualnie pracujesz, nie możesz skorzystać z zasiłku dla bezrobotnych!", hitElement, 255, 255, 25, true ) 
            return 
            if ( getPlayerTeam ( hitElement ) == getTeamFromName ( "Pomoc Drogowa" ) ) then 
            outputChatBox ( "Urzędnik mówi: aktualnie pracujesz, nie możesz skorzystać z zasiłku dla bezrobotnych!", hitElement, 255, 255, 25, true ) 
            return 
            if ( getPlayerTeam ( hitElement ) == getTeamFromName ( "Urząd" ) ) then 
            outputChatBox ( "Urzędnik mówi: aktualnie pracujesz, nie możesz skorzystać z zasiłku dla bezrobotnych!", hitElement, 255, 255, 25, true ) 
            return 
            if ( getPlayerTeam ( hitElement ) == getTeamFromName ( "Straz pozarna" ) ) then 
            outputChatBox ( "Urzędnik mówi: aktualnie pracujesz, nie możesz skorzystać z zasiłku dla bezrobotnych!", hitElement, 255, 255, 25, true ) 
            return 
    end 
end 
  
addEventHandler("onMarkerHit", zasilek, dajkase) 

i skończyło się takim błędem (skrypt nazywa się frakcje2): http://zapodaj.net/165a541565f3d.png.html

Link to comment

Trochę krócej z tabelą:

zasilek = createMarker ( 359, 169, 1008, "cylinder", 2 ) 
setElementInterior ( zasilek, 3 ) 
  
teamy = { ["Mechanicy"] = false, ["Policja"] = false, ["Taxi"] = false, ["Pomoc Drogowa"] = false, ["Urząd"] = false, ["Straz pozarna"] = false } 
  
function dajkase ( hitElement ) 
    if ( isElement ( hitElement ) and getElementType ( hitElement ) == "player" ) then 
        if ( not teamy [ getTeamName ( getPlayerTeam ( hitElement ) ) ] ) then 
            outputChatBox ( "Urzędnik mówi: aktualnie pracujesz, nie możesz skorzystać z zasiłku dla bezrobotnych!", hitElement, 255, 255, 25, true ) 
            return 
        end 
        local data = getElementData ( hitElement, "zasilek" ) or false 
        if ( data ) then 
            outputChatBox ( "Urzędnik mówi: Skorzystałeś/aś już z zasiłku!", hitElement, 255, 255, 25, true ) 
        else 
            setElementData ( hitElement, "zasilek", true ) 
            givePlayerMoney ( hitElement, 200 ) 
        end 
    end 
end 
  
addEventHandler("onMarkerHit", zasilek, dajkase) 

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...