Hat es noch jemand rum liegen?
liebe grüße
Hat es noch jemand rum liegen?
liebe grüße
CranK[491] wie sieht die Funktion isPlayerAtSprunk aus ?
Habe es umgeschrieben jetzt funktioniert es leider habe ich das Problem jetzt das wenn ich bei einem Sprunkautomat trinke das alle einen runter gehen
//Gamemodeinit
for(new i=0;i<MAX_SPRUNKAUTOMATEN;i++)
{
SprunkInfo[i][S_Lagerbestand] = 100;
format(GlobalString, sizeof(GlobalString), ""#DUNKELGRUEN_HEX"Sprunk"#WEISS_HEX" Automat[ID: %d]\nLagerbestand %i \nUm zu Trinken zukaufen Taste 'Z'",SprunkInfo[i][S_ID],SprunkInfo[i][S_Lagerbestand]);
Sprunk3DText[i] =Create3DTextLabel(GlobalString,WEISS,SprunkInfo[i][S_ObjectX],SprunkInfo[i][S_ObjectY],SprunkInfo[i][S_ObjectZ]+1,5,0,0);
CreateDynamicObject(SprunkInfo[i][S_ObjectID],SprunkInfo[i][S_ObjectX],SprunkInfo[i][S_ObjectY],SprunkInfo[i][S_ObjectZ],SprunkInfo[i][S_ObjectrX],SprunkInfo[i][S_ObjectrY],SprunkInfo[i][S_ObjectrZ]);
}
// Unter OnPlayerKeyStateChange
for(new i=0;i<sizeof(SprunkInfo);i++)
{
new iPAS = isPlayerAtSprunk(playerid);
if(iPAS == -1) return 1;
if(SprunkInfo[i][S_Lagerbestand] == 0) return SendClientMessage(playerid, WEISS,""#FEHLER": Der Sprunkautomat ist leer.");
ApplyAnimation(playerid,"VENDING","VEND_Drink_P",3.0,0,0,0,0,0);
TogglePlayerControllable(playerid, 0);
SetTimerEx("UnfreezePlayer",3000,false,"i",playerid);
SprunkInfo[i][S_Lagerbestand] -= 1;
format(GlobalString, sizeof(GlobalString), ""#DUNKELGRUEN_HEX"Sprunk"#WEISS_HEX" Automat[ID: %d]\nLagerbestand %i \nUm zu Trinken zukaufen Taste 'Z'",SprunkInfo[i][S_ID],SprunkInfo[i][S_Lagerbestand]);
Update3DTextLabelText(Sprunk3DText[i],WEISS,GlobalString);
}
Alles anzeigen
3DTextLabel zeigt auch an das der eine Sprunk automat 0 ist und der andere 1
enum SprunkInfoDaten{
S_ID,
S_ObjectID,
Float:S_ObjectX,
Float:S_ObjectY,
Float:S_ObjectZ,
Float:S_ObjectrX,
Float:S_ObjectrY,
Float:S_ObjectrZ,
S_Lagerbestand
}
new SprunkInfo[MAX_SPRUNKAUTOMATEN][SprunkInfoDaten] =
{
//ID, ObjektID,X,Y,Z,RX,RY,RZ,Lagerbestand
{0,955,2060.12,-1897.64,12.9297,0.0,0.0,0.0,0}, //Los Santos Fahrschule
{1,955,1154.61,-1460.93,15.1563,0.0,0.0,-90.0,0} //Mall (LS)
};
Alles anzeigen
Eventuell möglich das ich noch eine Abfrage rein bauen muss an welchen er sich befindet?
unter Gamemodeinit
for(new i=0;i<MAX_SPRUNKAUTOMATEN;i++)
{
CreateDynamic3DTextLabel(""#DUNKELGRUEN_HEX"Sprunk\n"#WEISS_HEX"Automat\nZum Interagieren Taste 'Z'",WEISS,SprunkInfo[i][S_ObjectX],SprunkInfo[i][S_ObjectY],SprunkInfo[i][S_ObjectZ]+1,5,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0);
}
Jemand eine Idee wird nichts angezeigt im Spiel
Ja, dann sollte das so gehen, wie ich es dir abgeändert habe.
Musst es halt immer als letztes zum Aktualisieren aufrufen, also erst fArmour ändern und dann für diese fvr aktualisieren
leider wenn ich das so schreibe wird steht der Wert immer auf 0
Alles anzeigenDer Fehler hier ist die Abfrage, so geht das nicht.
So kannst du das z.B. machen:
Cnew frak = sInfo[pID][fraktion]; if(frak == 1 || frak == 2 || frak == 3) //Oder alternativ auch einfach: if(frak <= 3)
Das ist etwas zu unspezifisch, wie du es beschreibst.
Das ist Zeile 7 in deinem Code. Da übergibst du ja keine playerid, sondern eine FraktionsBaseID.
So verwirrst du dich glaube selbst beim Skripten.
Wieso du in der Funktion selbst auch nochmal durch alle FraktionsBases loopst ist mir ein Rätsel.
Theoretisch brauchst du ja nur die übergebene FraktionsBase aktualisieren.
Quasi so schreiben:
Cstock UpdateHealundArmourLabel(fvr) { new string[128]; format(string,sizeof(string),""#GELB_HEX"Equipment Lager"WEISS_HEX"\n %i von %i \n zum benutzen Taste 'Z'", fInfo[fvr][fArmour],MAX_ARMOURPAKETE); UpdateDynamic3DTextLabelText(FraktionsArmour3DText[fvr][0],WEISS,string); return 1; }
Wenn du das speziell für einen Spieler aufrufen magst, dementsprechend dann einfach nur:
nutzen.
Hey danke erstmal für deine Hilfe also ich habe es so vor
jede Fraktion hat ein Armour/Equipment Punkt wo man sich ausrüsten kann MAX_ARMOURPAKETE sind die Maximale Anzahl die man besitzen kann.
je nach verbrauch geht es um einen Runter sprich
zum Beispiel
LCN hat noch 112 von MAX_ARMOURPAKETE
dann GS z.B 5 von MAX_ARMOURPAKETE
jedoch habe ich das Problem das wenn man in einer Fraktion ist wie z.B LCN das es dann in jeder Base egal ob ich in der LCN oder in der GS bin immer das gleiche angezeigt wird. Und ich möchte es halt so machen das jeder es sieht und bei jeder Fraktion der richtige Wert angezeigt wird.
Abend , hätte mal eine kleine Frage und zwar wollte ich ein Equipment System erstellen mit einen 3DTextLabel für Fraktionen jedoch wird mir in jeder Fraktion das gleiche angezeigt jemand eine Idee ?
sprich LCN hat 100 Armour Pakete dann bleibe ich in der Fraktion LCN gehe in die GS base die haben auch 100 dann
Code:
Unter Gamemodeinit
for(new i=0;i<sizeof(Fraktionsbase);i++)
{
FraktionsArmour3DText[i][0] = CreateDynamic3DTextLabel("LOAD",WEISS,Fraktionsbase[i][fbaseArmourX],Fraktionsbase[i][fbaseArmourY],Fraktionsbase[i][fbaseArmourZ]+0.3,15,INVALID_PLAYER
CreateDynamicPickup(1242,1,Fraktionsbase[i][fbaseArmourX],Fraktionsbase[i][fbaseArmourY],Fraktionsbase[i][fbaseArmourZ],Fraktionsbase[i][fbasevirtualworld]);
UpdateHealundArmourLabel(i);
}
und dann ein stock um zu updaten
stock UpdateHealundArmourLabel(playerid)
{
new string[128];
for(new fvr=0;fvr<sizeof(Fraktionsbase);fvr++)
{
format(string,sizeof(string),""#GELB_HEX"Equipment Lager"WEISS_HEX"\n %i von %i \n zum benutzen Taste 'Z'", fInfo[Spieler[playerid][Fraktion]][fArmour],MAX_ARMOURPAKETE);
UpdateDynamic3DTextLabelText(FraktionsArmour3DText[fvr][0],WEISS,string);
}
return 1;
}
// Ich vermute das es mit fInfo[Spieler[playerid][Fraktion]][fArmour] zutun haben könnte habe aber schon einige Varianten durch getestet funktioniert weder noch
Alles anzeigen
vielen dank schonmal im voraus
liebe grüße
Alles anzeigenAlso , ich zocke jetzt seit einer Woche aktiv auf nova und bin auch in einer gang…
Ich muss tatsächlich sagen auch wenn der server meiner meinung nach viel zu viele negative aspekte bringt als positive, macht es spass.
negative Aspekte(meine meinung)
man rennt zu schnellman gibt fast nur fake-hits,
Das mit dem Drogenkonsum für hp -fill ist sehr uncool meiner meinung nach,
Teammitglieder sind viel zu strikt und nicht kompromissfähig,
es gibt teilweise leider zu viele hacker die meinen den anti cheat umgehen zu müssen und allen den Spielspass zu rauben,und ein paar sachen mehr.
positive Aspekte:Es macht einfach spass, es ist der aktivste deutsche server und die gemeinschaft macht es auch,
Bin zwar kein fan vom waffen skillen aber ist dennoch cool,
Und. Wirklich sehr viel mehr
Mit freundlichen Grüßen
Mood
Gebe ich dir nur Recht habe seit 2009 auf Nova gespielt bis anfang 2021 und es hat wohl bock gemacht aber wenn man weg gecheatet wird sogar mit Viedos beweis und man noch locker 2 Monate wartet bis was passiert ist leider traurig.
Wie erstellst du Fraktionen?
ganz normal über die Spielerdaten
Fehler gefunden
Geht leider immer noch nicht vielleicht könnte das noch helfen der Enum
#define MAX_FRAKTIONNEN 7
enum Fverwaltung
{
fGeld,
fMaterials,
fWaffen,
fHeal,
fArmour,
}
new fInfo[MAX_FRAKTIONNEN][Fverwaltung];
//habe mal ein Command erstellt
COMMAND:test(playerid, params[])
{
fInfo[3][fGeld] += 10000;
return 1;
}
//es wird auch in der richtigen Fraktion angezeigt jedoch beim neustart geht sie wieder auf null
Alles anzeigen
Wenn ich es richtig habe müsste LoadFraktion aufgerufen werden dies wird über
Doch an den public LoadFraktion_Data weitergeleitet oder bin ich falsch? Da nach sollte doch normalerweise dann
// von LoadFraktion_Data
for(new i=0; i<MAX_FRAKTIONNEN; i++)
{
cache_get_value_name_int(i, "fID", i);
cache_get_value_name_int(i, "fGeld", fInfo[i][fGeld]);
cache_get_value_name_int(i, "fMaterials", fInfo[i][fMaterials]);
cache_get_value_name_int(i, "fWaffen", fInfo[i][fWaffen]);
cache_get_value_name_int(i, "fHeal", fInfo[i][fHeal]);
cache_get_value_name_int(i, "fArmour", fInfo[i][fArmour]);
}
Alles anzeigen
Gerne Korrigieren wenn ich was falsch habe aber danke erstmal schon für deine Hilfe
Ok danke , bin noch nicht ganz so in der MySQL sache drine aber übung macht ja den Meister , habe mal SaveAllFraktionen geprintet und mir etwas Geld auf ingame in eine Kasse getan solange wie der Server dann läuft bleibt der Betrag auch erhalten jedoch starte ich den Server neu dauert das einen moment dann resettet er die Datenbank kann es mit den Laden der Daten zutun haben in dem fall (LoadFraktion_Data)?
Hallo, und zwar wollte ich eine Fraktionsdatenbank schreiben jedoch habe ich das Problem das die Datenbank sich nach Restart nach einiger Zeit also denke Timer (60Sekunden) Resettet
Code der Speicherungen und Abfragen
//Unter Gamemodeinit
SetTimer("SaveAllFraktionen", 60000, true);
public LoadFraktion_Data()
{
for(new i=0; i<MAX_FRAKTIONNEN; i++)
{
cache_get_value_name_int(i, "fID", i);
cache_get_value_name_int(i, "fGeld", fInfo[i][fGeld]);
cache_get_value_name_int(i, "fMaterials", fInfo[i][fMaterials]);
cache_get_value_name_int(i, "fWaffen", fInfo[i][fWaffen]);
cache_get_value_name_int(i, "fHeal", fInfo[i][fHeal]);
cache_get_value_name_int(i, "fArmour", fInfo[i][fArmour]);
}
return 1;
}
public SaveAllFraktionen()
{
new query[256];
for(new i=0; i<MAX_FRAKTIONNEN; i++)
{
format(query, sizeof(query), "UPDATE f_verwaltung SET fGeld = '%i', fMaterials = '%i', fWaffen = '%i', fHeal = '%i', fArmour = '%d' WHERE fID = '%i'",
fInfo[i][fGeld], fInfo[i][fMaterials], fInfo[i][fWaffen], fInfo[i][fHeal], fInfo[i][fArmour], i);
mysql_tquery(handle, query);
}
return 1;
}
LoadFraktion()
{
mysql_tquery(handle, "SELECT * FROM f_verwaltung ORDER BY ID ASC", "LoadFraktion_Data");
return 1;
}
Alles anzeigen
Ich bedanke mich im voraus, wenn weiteres benötigt wird nur schreiben
Mit freundlichen Grüßen
CranK
Hey magst dich einmal in der Konversation melden?
Mit freundlichen Grüßen
Ok gut zu wissen vielen Dank erstmal ich werde es mal Testen.
Hey, mit einander
Ich wollte mich mal etwas mit dem Thema FiveM beschäftigen und habe mir das esx Paket mit 18 Fraktionen heruntergeladen.
Dort ist mir aufgefallen das, wenn man ein Fahrzeug kauft für die Fraktion und es rausholt immer noch im Menü steht "GELAGERT".
Sobald ich das Fahrzeug von der Parkpostion bewege kann ich das Fahrzeug erneut herausholen und es sind 2-mal die gleichen Fahrzeuge draußen mit identischen Kennzeichen und man kann es so oft Wiederholen wie man lustig ist.
Ich hoffe ihr könnt helfen ich habe bereits etwas geschaut und vermute das hier ein Fehler drine ist oder ob jemand diesen Fehler auch besitzt
Habe auch geschaut in der Datenbank wird das Fahrzeug dann auf 0 gesetzt und wenn es drine ist auf 1 trotzdem kann man es immer wieder rausholen.
Mit freundlichen Grüßen
CranK
Code ist Client seitig
ESX.TriggerServerCallback('esx_vehicleshop:retrieveJobVehicles', function(jobVehicles)
if #jobVehicles > 0 then
for k,v in ipairs(jobVehicles) do
local props = json.decode(v.vehicle)
local vehicleName = GetLabelText(GetDisplayNameFromVehicleModel(props.model))
local label = ('%s - <span style="color:darkgoldenrod;">%s</span>: '):format(vehicleName, props.plate)
if v.stored then
label = label .. ('<span style="color:green;">%s</span>'):format(_U('garage_stored'))
else
label = label .. ('<span style="color:darkred;">%s</span>'):format(_U('garage_notstored'))
end
table.insert(garage, {
label = label,
stored = v.stored,
model = props.model,
vehicleProps = props
})
end
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'vehicle_garage', {
title = _U('garage_title'),
align = 'top-left',
elements = garage
}, function(data2, menu2)
if data2.current.stored then
local foundSpawn, spawnPoint = GetAvailableVehicleSpawnPoint(station, part, partNum)
if foundSpawn then
menu2.close()
ESX.Game.SpawnVehicle(data2.current.model, spawnPoint.coords, spawnPoint.heading, function(vehicle)
ESX.Game.SetVehicleProperties(vehicle, data2.current.vehicleProps)
TriggerServerEvent('esx_vehicleshop:setJobVehicleState', data2.current.vehicleProps.plate, false)
ESX.ShowNotification(_U('garage_released'))
end)
end
else
ESX.ShowNotification(_U('garage_notavailable'))
end
end, function(data2, menu2)
menu2.close()
end)
else
ESX.ShowNotification(_U('garage_empty'))
end
end, type)
elseif data.current.action == 'store_garage' then
StoreNearbyVehicle(playerCoords)
end
end, function(data, menu)
menu.close()
end)
end
Alles anzeigen
Also die neuen Maps die Eingefügt wurden 1/10 für die Mühe. Lasst die weißen Zäune weg & vielleicht wenn ihr sowas macht mehr Details
Habe den Server mal bisschen überflogen von den Maps und so her.
Maps 1/10 ist sehr Mager und schlecht gemappt
Hallo wollte mal wieder ein Script testen jedoch kommen mir beim Starten diese Fehler
Ich hoffe ihr könnt mir helfen und es ist nur ein kleines Problem
vielen Dank im voraus
----------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3.7-R2, (C)2005-2015 SA-MP Team
[16:39:50] password = "" (string)
[16:39:50] filterscripts = "" (string)
[16:39:50]
[16:39:50] Server Plugins
[16:39:50] --------------
[16:39:50] Loading plugin: crashdetect.so
[16:39:50] CrashDetect v4.15.1 is OK.
[16:39:50] Loaded.
[16:39:50] Loading plugin: mysql.so
[16:39:50] Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)
[16:39:50] Loading plugin: sscanf.so
[16:39:50]
[16:39:50] ===============================
[16:39:50] sscanf plugin loaded.
[16:39:50] Version: 2.8.2
[16:39:50] (c) 2012 Alex "Y_Less" Cole
[16:39:50] ===============================
[16:39:50] Loaded.
[16:39:50] Loading plugin: streamer.so
[16:39:50]
*** Streamer Plugin v2.8 by Incognito loaded ***
[16:39:50] Loaded.
[16:39:50] Loading plugin: FileManager.so
[16:39:50] ******************
[16:39:50] ** FILE MANAGER **
[16:39:50] ** Loaded **
[16:39:50] ** Version 1.5 **
[16:39:50] ******************
[16:39:50] Loaded.
[16:39:50] Loading plugin: MapAndreas.so
[16:39:50] Loaded.
[16:39:50] Loaded 5 plugins.
[16:39:50]
[16:39:50] Filterscripts
[16:39:50] ---------------
[16:39:50] Loaded 0 filterscripts.
[16:39:51] [debug] Run time error 19: "File or function is not found"
[16:39:51] [debug] mysql_connect
[16:39:51] [debug] mysql_errno
[16:39:51] [debug] mysql_log
[16:39:51] [debug] mysql_tquery
[16:39:51] [debug] cache_get_data
[16:39:51] [debug] cache_get_field_content
[16:39:51] [debug] mysql_escape_string
[16:39:51] [debug] Run time error 19: "File or function is not found"
[16:39:51] [debug] mysql_connect
[16:39:51] [debug] mysql_errno
[16:39:51] [debug] mysql_log
[16:39:51] [debug] mysql_tquery
[16:39:51] [debug] cache_get_data
[16:39:51] [debug] cache_get_field_content
[16:39:51] [debug] mysql_escape_string
[16:39:51] Script[gamemodes/TxT.amx]: Run time error 19: "File or function is not found"
[16:39:51] Number of vehicle models: 0
Lösung anstatt "localhost" -> "127.0.0.1"