Hey,
bin gerade dabei ein Tablet zu bearbeiten.
Die HTML Seite funktioniert ohne Probleme, das Hauptproblem ist nur, dass der Button oder meine Funktion nicht funktioniert..
Clientside:
Code: function FactionManagerSetRankName
- function FactionManagerSetRankName(rankId, htmlElem) {
- if (rankId <= 0 || htmlElem == null || htmlElem == undefined) return;
- var inputElem = $(htmlElem).parent().find("input");
- var inputVal = $(inputElem).val();
- if (inputVal == "" || inputVal == "") return;
- alt.emit("Client:Tablet:FactionManagerSetRankName", rankId, inputVal);
- }
Code: for schleife
- for(var i in rankArray) {
- factionManagerRankNameHTML += `<li class='list-group-item'><div class='container left'><p><b>Rank-ID</b></p><p>${rankArray[i].rankId}</p></div>` +
- `<div class='container mid'><p><b>Rangname</b></p><p>${rankArray[i].rankName}</p></div><div class='container right'><p><b>Neuer Rankname</b></p><input type='text' placeholder='Neuer Rankname...' spellcheck='false'>` +
- "<button onclick='FactionManagerSetRankName(" + rankArray[i].rankId + ", this);' type='btn' style='margin-top: 0; padding: .08rem .5rem;' class='btn btn-sm btn-factionManagerHov'>Setzen</button></div></li>";
- }
Serverside:
Code: public
- [AsyncClientEvent("Server:Tablet:FactionManagerSetRankName")]
- public async Task FactionManagerSetRankName(IPlayer player, int rankId, string name)
- {
- try
- {
- if (player == null || !player.Exists || rankId <= 0 || name == "") return;
- if(name == "test") { HUDHandler.SendNotification(player, 3, 5000, "Der Button Funktioniert!!"); return; }
- int charId = User.GetPlayerOnline(player);
- if (charId <= 0) return;
- if (!ServerFactions.IsCharacterInAnyFaction(charId)) { HUDHandler.SendNotification(player, 4, 5000, "Du bist in keiner Fraktion dessen Rangnamen festlegen."); return; }
- int factionId = ServerFactions.GetCharacterFactionId(charId);
- if (factionId <= 0) return;
- string currentRankName = ServerFactions.GetFactionRankName(factionId, rankId);
- if (currentRankName == name) { return; }
- int charRank = ServerFactions.GetCharacterFactionRank(charId);
- if (charRank <= 0) return;
- if (charRank < ServerFactions.GetFactionMaxRankCount(factionId) - 2) { HUDHandler.SendNotification(player, 4, 5000, "Dazu hast du keine Berechtigungen."); return; }
- if (!ServerFactions.ExistServerFactionRankOnId(factionId, rankId)) { HUDHandler.SendNotification(player, 4, 5000, "Ein unerwarteter Fehler ist aufgetreten. [FACTION-RANKPAYCHECK-001]"); return; }
- ServerFactions.SetFactionRankName(factionId, rankId, name);
- HUDHandler.SendNotification(player, 2, 5000, $"Du hast die Bezeichnung des Ranges: '{ServerFactions.GetFactionRankName(factionId, rankId)}' der Fraktion '{ServerFactions.GetFactionFullName(factionId)}' von {currentRankName}$ auf {name}$ gesetzt.");
- RefreshTabletData(player, false);
- LoggingService.NewFactionLog(factionId, charId, 0, "rankpaycheck", $"{Characters.GetCharacterName(charId)} ({charId}) hat die Bezeichnung des Ranges '{ServerFactions.GetFactionRankName(factionId, rankId)}' von {currentRankName}$ auf {name}$ gesetzt.");
- }
- catch (Exception e)
- {
- Alt.Log($"{e}");
- }
- }
Code: GetFactionName
Code: SetFactionName
- public static void SetFactionRankName(int factionId, int rankId, string rname)
- {
- try
- {
- if (factionId <= 0 || rankId <= 0 || rname == "") return;
- var factionRankData = ServerFactionRanks_.FirstOrDefault(x => x.factionId == factionId && x.rankId == rankId);
- if (factionRankData != null)
- {
- factionRankData.name = rname;
- using (gtaContext db = new gtaContext())
- {
- db.Server_Faction_Ranks.Update(factionRankData);
- db.SaveChanges();
- }
- }
- }
- catch (Exception e)
- {
- Alt.Log($"{e}");
- }
- }
Ich weiß leider auch nicht wo der Fehler ist, habe auch extra eine Abfrage gemacht wo abgefragt wird wenn man "test" ins Input eingibt, dass eine Meldung erscheint, er spricht aber Serverside nichts an..
Eventuell kann mir ja einer helfen
e/ Fehler gefunden, danke an LeonMrBonnie das mit Webview.on hat geholfen.