Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.
GTAONLINE.PL
Tematy otagowane jako: eventy
1. Eventy
Witam, chcia?em zmieni? mechanik? wyp?at z pracy, aczkolwiek napotka?em ma?y problem zwi?zany z argumentami. ( Obrazek na dole )

Wyp?aty S
[lua]function odbierzWyplatePremia(praca,wyplata)
local sid=getElementData(client,"player:sid")
local result=exports["pystories-db"]:dbGet("SELECT * FROM pystories_users WHERE id=?", sid)
givePlayerMoney (client, wyplata )
exports["pystories-db"]:dbSet("INSERT INTO ms_logi_praca SET uid=?, nick=?, otrzymal=?, aktualnagotowka=?, Nazwa=?", sid, getPlayerName(client), wyplata, getPlayerMoney(client), praca)
triggerEvent("admin:logs", root, "(Wyplata: "..praca..") "..getPlayerName(client).." - Otrzymal "..string.format("%01d",wyplata).." PLN - Aktualna gotowka "..getPlayerMoney(client).." PLN")
triggerEvent("admin:addText", resourceRoot, "(Wyplata: "..praca..") "..getPlayerName(client).." - Otrzymal "..string.format("%01d",wyplata).." PLN - Aktualna gotowka "..getPlayerMoney(client).." PLN")
end
addEvent("prace:wyplata_all",true)
addEventHandler("prace:wyplata_all",getRootElement(),odbierzWyplatePremia)[/lua]

Praca S
[lua]local reputacja = getElementData(element, "player:srp")
local repa = string.format("%01d",viewki*1)
setElementData(element, "player:srp", reputacja+re...
2. Eventy a elementy oop.
Cze??.
Podczas mojej pracy z DGS znowu natkn??em si? na pewien problem.
Postanowi?em wypr?bowa? programowanie obiektowe. Idzie mi to jako? pokracznie, ale ucz?c si? na b??dach daje rade. Natrafi?em jednak na problem, kt?rego nie jestem w stanie rozwi?za?. Chodzi o eventy.

Temat z wiki dotycz?cy event?w oop w dgs: LINK

Zrobi?em okno, w nim przycisk. Teraz chcia?bym wywo?a? funkcj? gdy gracz go kliknie.

Przyk?adowy fragment kodu:

loadstring
(exports.dgs:dgsImportOOPClass())()

okno DGSClass:createWindow(0011""true)
przycisk okno:createButton(0.500.70.180.16"Przycisk"true)

function 
hide()
    
okno.setVisible(false)
end


Gdy pr?bowa?em wywo?a? to poprzez addEventHandler np. addEventHandler("onDgsMouseClick", przycisk, hide) to pojawia si? b??d, ?e argument nr 2 (przycisk) to tabela.

W jaki spos?b mog? dobra? si? do elementu z tej tabeli? Mo?e jako? inaczej robi si? to w oop?
Po prostu chcia?bym, aby okno stawa?o si? niewidzialne gdy kto? kliknie przycisk.
Z g?ry dzi?kuj? za wszelk? pomoc w rozwi?zaniu problemu.
3. tablice, eventy
Witajcie mam tutaj taki kod:
function banzyna(plr)
    for 
i,v in ipairs(pb) do           
    if 
isPedInVehicle(plrthen
    local veh 
getPedOccupiedVehicle(plr)
    
local markerlpg createMarker(v[1], v[2], v[3], "cylinder"3.025525525530)      
if 
getElementData(veh"veh:rodzaj") == "Diesel" then
    exports
.lr_noti:addNotification(plr,"Tw?j pojazd posiada inny rodzaj paliwa!") return end    
if getElementData(veh"veh:rodzaj") == "LPG" then 
    exports
.lr_noti:addNotification(plr,"Tw?j pojazd posiada inny rodzaj paliwa!") return end
    
if getElementData(veh"veh:rodzaj") == "Benzyna" then    
        exports
.lr_noti:addNotification(plr,"Aby zatankowa? pojazd przytrzymaj spacj?.")
end
end
end 
end
addEventHandler
("onMarkerHit", , banzyna)
I tak? tablic?:
 local pb = {
   {
1938.75, -1770.0912.38},
}
i jak tu zrobi? event w funkcji gdy gracz znajduje si? w markerze z tej tabeli
4. [DM] Eventy
Witam mam problem z derbami oraz wipeoutem.

Z derbami mam problem taki ?e id 1 ci?gle wygrywa znaczy chodzi o to ?e jak wpadne do wody id 1 to i tak wygra.

A z wipeoutem mam taki problem ?e nie tp'a z wody . ?eby zacz?? od nowa.

Derby:
[code]
forward DerbyCheck();
public DerbyCheck()
{
if(!DerbyON || DerbyLoad)
return 1;

new Licz, Float:xx, Float:y, Float:z, LastPlayer;

foreach(Player, x)
{
if(DerbyMen[x] == true)
{
Licz++;
LastPlayer = x;
GetPlayerPos(x, xx, y, z);
if(z < 15 || !IsPlayerInAnyVehicle(x))
{
derbyz--;
Licz--;
losowyspawn(x);
spawn(x);
losowykolor(x);
DerbyMen[x] = false;
ZapisanyD[x] = 0;
}
}
}

if(Licz < 2)
{
new str[64];
format(str, sizeof str, "Derby wygrywa %s. Zapisy wznowione!", Player(LastPlayer));
SendClientMessageToAll(TURKUSOWY, str);
WinSound(LastPlayer);
if(logged[LastPlayer])
{
GameTextForPlayer(LastPlayer, "Exp~n~~g~+15", 1000, 1);
Exp[LastPlayer] += 15;
}
DerbyEnd();
ZapisanyD[LastPlayer] = 0;
spawn(LastPlayer);
losowyspawn(LastPlayer);
losowykolor(LastPlayer);
TextDrawHideForAll(derby2);
TextDrawColor(derby2, 1083536383);
TextDrawShowForAll(derby2);

DerbyON = false;
DerbyStartON = false;
derbyz = 0;
}
return 1;
}
[/code]

Wipeout:
[code]
forward WipeoutCheck();
public WipeoutCheck()
{
if(!WipeoutON || WipeoutLoad)
...
5. [INNE] Może ktoś wywalić eventy z mapki
Chc? ?eby kto? wywali? wszystkie eventy z mapki pp
"http://chomikuj.pl/grzesio575/PP"
Najlepiej ?eby kto? da? ten text na kt?rym s? eventy
6. Eventy po stronie klienta
Witajcie
Mam takie pytanie, czy eventy po stronie klienta w MTA, typu onClientPlayerWasted wykonuj? si? gdy kt?rykolwiek z graczy na serwerze (w tym przypadku) umrze? Wiem ?e wykonuj? si? gdy umrze jaki? gracz, ale dzia?a to na wszystkich czy tylko np. dla tych kt?rzy s? widoczni?
7. [TUT] GUI - eventy i funkcję
[center][color=red][size=18]GUI - Eventy i Funkcj?[/size][/color][/center]

Zaczynamy od stworzenia zwyk?ego GUI za pomoc? skryptu [b]guieditor[/b] kt?ry normalnie wrzucacie do [b]resources[/b].
[code]http://community.mtasa.com/index.php?p=resources&s=details&id=141[/code]
Ja stworzy?em okienko z editem i buttonem:
[code]GUIEditor_Window = {}
GUIEditor_Edit = {}
GUIEditor_Button = {}

GUIEditor_Window[1] = guiCreateWindow ( 0, 0, 0.5, 0.4, "Okno", true )
GUIEditor_Edit[1] = guiCreateEdit ( 0, 0, 0.6, 0.5, "", true )
GUIEditor_Button[1] = guiCreateButton ( 0, 0, 0.7, 0.9, "OK", true )[/code]
Ja nie tworzy?em okienka, sam je napisa?em. Oczywi?cie te nazwy z GUIEditor mo?na zmienia?.

GUI to naj?atwiejsza sprawa. Dla was funkcj? pewnie trudne ale naprawd?, to nic trudnego.
Stworzymy prosty skrypt na pobieranie z [b]Edit[/b] tekstu i wy?wietlanie na chacie, a zatwierdzasz buttonem OK.
Zaczniemy od stworzenia zmiennej kt?ra b?dzie pobiera? tekst.
[code]local tekst = guiGetText(GUIEditor_Edit[1])[/code]
[b]GUIEditor_Edit[1][/b] - wpisujecie swoj? nazw? Edita.

OK, wi?c teraz robimy funkcj?, kt?ra pobiera tekst pokazuje na chacie.
[code]function nazwa ()
ouputChatBox("Wpisa?e?: "..tekst)
end[/code]
[b]..tekst[/b] - wpisujecie swoj? nazw? zmiennej, lecz musicie zostawi? te "..". Te ".." dodajemy wtedy kiedy zmienna jest po lub przed tekstem np.
[code]outputChatBox("tekst"..tekst..&q...