Nie ukrywam, ?e jestem osob? pocz?tkuj?c? w LUA. Mam du?e ambicje i plany na przysz?o??, sporo rzeczy ju? umiem, wi?kszo?? zawdzi?czam g??wnie moim umiej?tno?ciom kombinowania, jednak i one zawodz?, gdy na drodze do realizacji planu zaczynaj? pojawia? si? problemy i po wielu godzinach wci?? nie jestem w stanie sobie z nimi poradzi?. Chcia?em wszystko zrobi? sam, ale dzi? musz? prosi? o pomoc, bo nie mam ju? si?y do tych pier... tablic. Do rzeczy.
Tworz? system grup. Skrypt ?aduje grupy z bazy danych i przechowuje ich warto?ci w dw?ch tablicach. Jedna przechowuje dane og?lne dot. grup, druga grupy, w kt?rych znajduje si? posta? gracza.
[lua]addEventHandler("loadPlayerGroups", root, function(player)
local characterUID = getElementData(player, "character:UID")
local qh = exports["x_db"]:Query("SELECT * FROM x_character_groups WHERE character_uid=?", characterUID)
if qh then
for key, value in ipairs(qh) do
playerGroups[characterUID] = value
end
else
return false
end
end)
[/lua]
Generalnie, w kodzie wszystko dzia?a, jednak jak do cholery zrobi?, by te warto?ci z bazy by?y przechowywane pod indeksem [player][uid grupy], czyli tak:
[lua] for key, value in ipairs(qh) do
playerGroups[player][value.group_uid] = value
end[/lua]
Pr?bowa?em na milion sposob?w i nie jestem w stanie tego dobrze zrobi?, nie rozumiem do ko?ca jak te indeksy...
Witam, pr?bowa?em ostatnio stworzy? tablice 3D, u?y?em do tego p?tli lecz niestety pojawi?y si? 2 b??dy.
1. Gdy u?ywam dxCreateRenderTarget w osobnym evencie tablice tworz? si? 2 lecz posiadaj? te same napisy.
2. Natomiast gdy dxCreateRenderTarget jest u?yty w p?tli tablice r?wnie? tworz? si? 2 z osobnymi ju? napisami, lecz powoduj? du?e spadki FPS i po chwili znikaj?.
Jest jaki? spos?b na naprawienie tego b??du lub ewentualnie stworzenie tego zasobu z wykorzystaniem innych funkcji, czy mo?e lepiej nie robi? takich rzeczy poniewa? mog? powodowa? du?e obci??enie?
Zas?b:
[lua]
addEventHandler("onClientResourceStart", resourceRoot,
function()
--myRenderTarget = dxCreateRenderTarget(800, 1460)
end
)
function getPositionFromElementOffset(element,offX,offY,offZ)
local m = getElementMatrix ( element )
local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1]
local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2]
local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3]
return x, y, z
end
Mam problem bo chcia?bym zastrzec towary tylko dla danych id pojazd?w i nie wiem jak zrobi? tablice by tylko te pojazdy mogly sie zaladowac
mam id pojazd?w i wpisane s? do tablicy lecz nie wiem jak zapisac vy sprawdza?o te pojazdy przy wybieraniu towaru tzn gracz wpisze /towary i by go wywla?o je?eli nie jest w jednym z tych pojazd?w
Witam,
chcia?bym u?y? funkcji getVehiclePlateText przy wchodzeniu do auta. Mam takie co?:
addEventHandler('onVehicleStartEnter',resourceRoot,function(player,seat)
if seat ~= 0 then return end
if getVehiclePlateText(source) == 'AT 1' or getVehiclePlateText(soruce) == 'AT 2' then
if getElementData(player,'player:rank2') < 1 then
cancelEvent()
end
end
end)
Jednak otrzymuj? b??d [Expected vehicle at argument 1, got nil] nie wiem co mog? wstawi? zamiast source, wi?c zwracam si? do Was o pomoc. Z g?ry dzi?kuj? za odpowied?.
Czy kto? pom?g?by mi i napisa?by jak stworzy? taki banner / tablice na obiekcie? Chodzi mi o takie co? jak na money life: https://imgur.com/a/ZG9QX1R
Wiem tyle, ?e to jest pod obkiektem 7313. Tylko ja chc? to doda? na sw?j serwer, i chce mie? to na r??ne rzeczy np napisy takie jak: Przechowywalnia, Spawn, Witamy na MojaNazwaSerwera. Jak zrobi? takie napisy moje i jak wgra? aby by?y r??ne dodane a nie jeden ten sam
Witam, ciekawi mnie to jak s? zrobione te tablice na spawnie na Money Life (te czarne z napisem animowanym napis to: Money Life - Mi?ej gry!) czy kto? m?g?by mi to napisa? jaki skrypt jest na takie tablice?
function banzyna(plr)
for i,v in ipairs(pb) do
if isPedInVehicle(plr) then
local veh = getPedOccupiedVehicle(plr) local markerlpg = createMarker(v[1], v[2], v[3], "cylinder", 3.0, 255, 255, 255, 30)
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.09, 12.38},
}
i jak tu zrobi? event w funkcji gdy gracz znajduje si? w markerze z tej tabeli
Witam z g?ry pisz? ?e je?eli pomyli?em dzia?y to prosz? o przeniesienie .
Mianowicie chodzi o co? podobnego jak na P*L'u ?e np jak mam prace to obok niej na budynku chcia?bym umie?ci? tablice i po podej?ciu gracza do niej wy?wietla?o by mu si? okienko w Gui dotycz?ce info o pracy . Jak zrobi? tablice wiem , co zrobi? aby qui pokazywa?o si? i znika?o po odej?ciu te? wiem ale nie wiem jak mam zrobi? to Gui
Jak zrobi? tablice z id mam system pana prezesa
daje kod i mete
KOD:
function idnarejce()
for i,v in pairs(getElementsByType("vehicle")) do
local id = getElementData(v, "car_id")
if id then
setVehiclePlateText(v, "SF#"..id)
end
end
end
addEventHandler("onResourceStart",resourceRoot,idnarejce)
w setVehiclePlateText
------------------------META-------------------
Mam kilka spraw, Dlaczego gdy w create object wpisze [1] Nie tworzy go, ale gdy wrzuc? tam koordy to tworzy. Nast?pnie jak ustawi? to na random.match ab losowa?o koordy z tablicy. I aby zniszczy? obiekt mog?y tylko osoby z acl PSP (obiektem jest drabina)
Z powodu barku aktywno?ci w Moim po?cie, a aktywno?ci w innych postach pisze na nowo jako ref, nie wiem. Mam nadziej? ?e kto? logicznie odpowie w jaki spos?b zkreowa? takie cudo.
Okej, moje pytanie to:
co w tym ?le robi?: ( tu chodzi o to ?e wpisuje /grank [kontogracza] [numerrangi]
numer rangi to liczba w Account Data, akurat 3 to operator.)
[code]function nadajrange(player, kontogracza, numerrangi)
if kontogracza and numerrangi then
setAccountData(kontogracza, "rank", numerrangi)
else
outputChatBox("[Error] U?yj: /grank [konto gracza] [numer rangi]",player, 180, 0, 0)
end
end
addCommandHandler("grank",nadajrange)[/code]
I tutaj jak wstawi? tablice:
Tak wygl?da tablica ( nie wiem czy poprawnie zbudowana )
[code]acmd = {"/grank [konto gracza] [numer rangi]n",
"/gift [gracz] [kwota]n",
}[/code]
A tak wygl?da kod wstawiania do czatu:
[code]function ahelp(thePlayer)
local konto = getPlayerAccount(thePlayer)
local ranga = getAccountData(konto, "rank")
if (ranga==3) then
outputChatBox("Komendy administratora:",thePlayer, 255,255,255)
outputChatBox(tostring(acmd))
else
outputChatBox("Nie masz uprawnie? do tej komendy.")
end
end
addCommandHandler("ahelp", ahelp)[/code][/code]
A i czy w tej tablicy przypadkowo nie powinno si? zrobi? jednej warto?ci, tak jak to ja zrobi?em dwie.
Jeszcze jedno primo. Tablice mi wy?wietla ale jako: TA...
co w tym ?le robi?: ( tu chodzi o to ?e wpisuje /grank [kontogracza] [numerrangi]
numer rangi to liczba w Account Data, akurat 3 to operator.)
[code]function nadajrange(player, kontogracza, numerrangi)
if kontogracza and numerrangi then
setAccountData(kontogracza, "rank", numerrangi)
else
outputChatBox("[Error] U?yj: /grank [konto gracza] [numer rangi]",player, 180, 0, 0)
end
end
addCommandHandler("grank",nadajrange)[/code]
I tutaj jak wstawi? tablice:
Tak wygl?da tablica ( nie wiem czy poprawnie zbudowana )
[code]acmd = {"/grank [konto gracza] [numer rangi]n",
"/gift [gracz] [kwota]n",
}[/code]
A tak wygl?da kod wstawiania do czatu:
[code]function ahelp(thePlayer)
local konto = getPlayerAccount(thePlayer)
local ranga = getAccountData(konto, "rank")
if (ranga==3) then
outputChatBox("Komendy administratora:",thePlayer, 255,255,255)
outputChatBox(tostring(acmd))
else
outputChatBox("Nie masz uprawnie? do tej komendy.")
end
end
addCommandHandler("ahelp", ahelp)[/code][/code]
[ Dodano : 2015-01-03, 13:32 ]
A i czy w tej tablicy przypadkowo nie powinno si? zrobi? jednej warto?ci, tak jak to ja zrobi?em dwie.
[ Dodano : 2015-01-03, 13:33 ]
Jeszcze jedno primo. Tablice mi wy?wietla ale jako: TABLE: 04BA... itp....
Siemka, mam grubszy problem. Nie chc? kombinowa?, chodzi o to by do tego:
function prawoKatA ( player, seat, jacked )
if seat == 0 then
if ( prawojazdykata[getElementModel(source)] ) then
cancelEvent()
outputChatBox ( "[Licencje] Nie posiadasz prawa jazdy kategori A by prowadzi? ten pojazd.", player, 150,50,0 )
end
end
end
addEventHandler ( "onVehicleStartEnter", getRootElement(), prawoKatA )
Dopisa? w tej linijce:
if ( prawojazdykata[getElementModel(source)] ) then
lub tak by dzia?a?o, acl. Raczej wiecie o co chodzi, mam rozpisane tablice z rodzajami prawa jazdy, czyli prawojazdykata, w tej tablicy s? motory, teraz chodzi o to ?e nie ma jak kogo? doda? by on mia? do siebie przypisan? t? tablice, mam ich chyba z 6.
[ Dodano: 2014-07-27, 22:00 ]
A dodaj?c, mam zrobion? komend? /daj-prawo-a (...b...c) Kt?re dodaje do acl:
PJA. Tylko teraz doda? tu sprawdzanie czy gracz jest w tym acl, je?eli tak to mo?e wej?? do pojazd?w z tablicy...
Witam, pisz? sobi? skrypt tablicy og?osze?. Ale po wej?ciu w marker jednego z graczy, wszystkim wy?wietla si? tablica. Totalnie nie wiem oco chodzi. Za pomoc, naturalnie
Witajcie. Jak m?g?bym zrobi? punkty przez, kt?re trzeba by?oby przeje?d?a? 1 po 1 i ?eby to tylko jednej osobie si? zalicza?o ? W sensie jak praca autobusiarza, ?e jedziesz z jednego punktu do drugiego i np. dostajesz pieni?dze za to. Pomo?e kto? ?
Stawiam zimne
Witam panowie,
mam plik clienta w ktorym mam tablice z cenami aut.
I funkcje wyeksportown? zwracaj?c? cene. Teraz pytanie jak zrobi? ?ebym mia? po stronie servera. Bo jako? nie widzi mi si? przenoszenie tablicy i trzymanie jej w dw?ch plikach.
Witam
Mam problem z tablicami rejestracyjnymi Mianowicie mam kod na zmian? napisu w tablicy rejestracyjnej lecz co? ?le zrobi?em i ca?y czas mi wyskakuje "Wpisz: /tablica [nazwa] " i tak ca?y czas gdy wpisze komend? co ?le zrobi?em?
Kod
[code]stock IsPlayerInVehicleWithNoPlates(playerid,vehicleid)
{
#define MAX_VEHICLES_WITH_NO_PLATES 43
new NoNumberPlateVehicles[MAX_VEHICLES_WITH_NO_PLATES] =
{
509,481,510,472,473,493,595,484,430,453,
452,446,454,548,425,417,487,497,563,501,
465,447,469,488,592,577,511,512,593,520,
553,464,476,519,460,513,539,590,569,537,
538,570,449
};
vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerConnected(playerid))
{
if(IsPlayerInVehicle(playerid,vehicleid))
{
for(new i; i < MAX_VEHICLES_WITH_NO_PLATES; i++)
{
if(GetVehicleModel(vehicleid) == NoNumberPlateVehicles[i])
{
return true;
}
}
}
}
return false;
}
CMD:tablica(playerid, params[])
{
new gPlayerVehicle[MAX_PLAYERS];
new Float:VPos[4];
new tmp[256];
new vehicleid = GetPlayerVehicleID(playerid);
if(GetPlayerState(playerid) != 2)
{
SendClientMessage(playerid, COLOR_RED, "Musisz siedzie? jako kierowca, aby zmienic rejestracj? pojazdu!");
return 1;
}
if(IsPlayerInVehicleWithNoPlates(playerid,vehicleid))
{
SendClientMessage(playerid, COLOR_RED, "Ten pojazd nie ma tablicy rejestracyjnej!");
return 1;
}