Evtl einfach NodeJS updaten?
Aus diesem Kommentar (https://stackoverflow.com/ques…mbol-node-module-register) geht hervor, dass es ab 11.11 integriert wurde.
Evtl einfach NodeJS updaten?
Aus diesem Kommentar (https://stackoverflow.com/ques…mbol-node-module-register) geht hervor, dass es ab 11.11 integriert wurde.
Wichtig ist, dass du so nur einzelne Charakter annimmt, somit müsstest du eine Schleife darum bauen.
Oder einfach das format anpassen:
Ne in besitzer steht doch nur die db Id
cInfo[id][besitzer]=PlayerInfo[playerid][p_id]
Ah, das hatte ich nicht gesehen.
Ich würde einfach das enum für cInfo erweitern.
Füg einfach sowas wie c_Owner[MAX_PLAYER_NAME] hinzu.
Und dann einfach createPlayerCar abändern zu:
createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
for(new i,id,string[128]; i<sizeof(cInfo); i++)
{
id = getFreeCarID();
if(cInfo[id][id_x]!=0)continue;
cInfo[id][besitzer]=PlayerInfo[playerid][p_id];
cInfo[id][c_x]=x;
cInfo[id][c_y]=y;
cInfo[id][c_z]=z;
cInfo[id][c_r]=r;
cInfo[id][model]=modelid;
format(cInfo[id][c_Owner],MAX_PLAYER_NAME,pName);
cInfo[id][id_x] = CreateVehicle(modelid,x,y,z + 5,r,1,1,-1);
format(string,sizeof(string),"Du hast erfolgreich den %s gekauft. Dieser steht ab sofort an der Ausgabestelle bereit. ID: %d",getVehicleName(modelid) , id);
SendClientMessage(playerid,COLOR_GREEN,string); //Wieso vorher SendClientMessageToAll?! wtf :D
saveCarToDB(playerid,id);
return 1;
}
return 1;
}
Alles anzeigen
Deswegen lösche ich doch Zeichen 3 -64
Das ist gar nicht notwendig, kannst auch einfach nur die ersten Zeichen abfragen.
Im format einfach:
format(kennzeichen,16,"%c%c",cInfo[id][c_Owner][0],cInfo[id][c_Owner][1]); //Gibt dir die ersten 2 Zeichen des Namens als Kennzeichen
Ein Spielername muss immer mind. 3 Zeichen lang sein, also ist das problemlos machbar. (Natürlich vorher immer prüfen, dass der String nicht leer ist)
Aber ich weiß nicht ob es überhaupt Funkt oder gut so ist
Nein, das wird nicht funktionieren, da PVars, wie der Name schon sagt, Spieler bezogen sind, also ein SetPVar(carid wird nicht funktionieren bzw. zwangsläufig zu Fehlern führen.
Verstehe die Notwendigkeit von dem PVar auch gar nicht, da der Name vom Besitzer des Fahrzeuges ja schon in cInfo[carid][besitzer] steht. Aber wie Maho schon anmerkte, wäre das eh viel zu Lange, also den Spielernamen sollte man faktisch nicht als Nummernschild verwenden.
Ein cronjob könnte dafür auf dem System selbst auch eingesetzt werden ![]()
#Handy
Viel Spaß ![]()
Mach das if und das return 1 weg ![]()
Du kannst direkt:
cache_get_value_name(i, "fraktion",FrakInfo[id][frak_name],128 );
Nutzen. Davon abgesehen ist das Laden ja offensichtlich nicht dein Problem, da es ja funktioniert.
Wie rufst du denn die Funktion auf?
Vermutlich einfach getFraktion(playerid), allerdings musst du ja in der Funktion erstmal die FraktionsID vom Spieler ermitteln und da ist dein Denkfehler ![]()
#Handy
Alternativ quick & dirty die svg in ein HTML laden, dort dann ganz einfach so gestalten wie du magst, auch mit mehreren anzeigen etc und anschließend das html in n pdf bringen ![]()
Ja, grundsätzlich möglich, aber mach mMn eher Sinn wenn es als Desktop-App auch genutzt werden sollte.
Xamarin hat viele Nachteile, siehe: https://procoders.tech/blog/flutter-vs-xamarin/
Dann würde ich persönlich auch zu Flutter tendieren.
React wäre natürlich auch möglich, aber nicht so meins.
Welche Plattformen willst du denn unterstützen...
Und was willst du umsetzen?
Ich komme mit perfekt runden Dingen nicht klar.
Wünsche schöne Albträume ![]()
Hast mit chown oder chmod mal die Rechte für das Verzeichnis angepasst? ![]()
new string[128]; for(new i=0; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i))continue; if(!isAdmin(i, 1))continue; format(string,sizeof(string), "[CAA:] %s: %s",getPlayerName(playerid), string); SendClientMessage(i, ACHAT, string); }
steht denn auch in dem String was drinnen ?
Natürlich nicht.
Der Fehler ist, dass er das direkt unter das ShowPlayerDialog gepackt hat und nicht erst in das if(dialogid == DIALOG_CONTACTSUPPORT).
Zumal muss in das format hinten nicht string, sondern inputtext ![]()
Du willst vermutlich SCME nutzen ![]()
Und zum Anderen, willst du nun an eine SpielerID oder an eine Spielernummer die SMS schicken?
CMD:sms(playerid, params[])
{
if(PlayerInfo[playerid][pHandy] != 1)return SCM(playerid, LROT, "Du besitzt kein Handy!");
if(PlayerInfo[playerid][pSIM] != 1)return SCM(playerid, LROT, "Du hast keine SIM-Karte!");
new nummer, sms_text[128];
if(sscanf(params,"is[128]", nummer, sms_text))return SCM(playerid,GELB,"[ Verwendung ] /sms [Nummer] [Text]");
new pID = GetPlayerFromHandy(nummer);
if(pID == INVALID_PLAYER_ID) return SCM(playerid,LROT, "Nummer ist nicht bekannt/erreichbar");
SCME(pID,GELB,"[SMS] %s [Absender: %s TelNr: %i]", sms_text, PlayerInfo[playerid][pName], PlayerInfo[playerid][pNummer]);
SCME(playerid,GELB,"[SMS] %s [Empfänger: %s TelNr: %i]",sms_text,PlayerInfo[pID][pName],nummer); //<< dass man selbst auch weiß, dass die Nachricht rausging :D
return 1;
}
stock GetPlayerFromHandy(nummer)
{
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(IsPlayerConnected(i) && pInfo[i][pNummer] == nummer) return i;
}
return INVALID_PLAYER_ID;
}
Alles anzeigen
Wo wird denn das buyCarID PVar gesetzt? ![]()
#Handy
Da ist nix Definirt
Doch natürlich, es gibt doch ein enum, wo so Dinge wie pFschein etc definiert sind ![]()
Hast du in der MySQL Datenbank die Spalte id als Primary Key und Auto_Increment eingestellt?
Gerne mal die Tabellenstruktur zeigen ![]()
Ah, wie sieht denn OnHausCreated aus?