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}");
}
}
Alles anzeigen
Code: GetFactionName
public static string GetFactionRankName(int factionId, int rankId)
{
if (factionId == 0 || rankId == 0) return "";
var factionRankData = ServerFactionRanks_.FirstOrDefault(x => x.factionId == factionId && x.rankId == rankId);
if(factionRankData != null)
{
return factionRankData.name;
}
return "";
}
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}");
}
}
Alles anzeigen
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.