Wie mache ich ,dass die NPC'S nicht auf der Karte angezeigt werden? Und wie bekommeich das hin , dass über einen NPC Ein name steht, ich weiß mit einen 3D Text, aber ich weiß ja nicht die Höhe usw?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
1)
Versuche es mit
SetPlayerColor(npcID, 0x00000000);
Falls das bei NPCs nicht geht, dann:
SetPlayerMarkerForPlayer( playerid, npcID, 0xFFFFFF00 ); -
Beitrag von [KoSoVa] ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Guten Morgen, undzwar wie kann ich das am besten umsetzen, und abfragen ob das Teammitglied in dem Fraktionsfahrzeug, welches gelöscht werden soll sitzt? damit diese, wo er drinne sitzt auch gelöscht wird?
zzt habe ich den Befehl wie folgt:
ocmd:fcloeschen(playerid,params[])
{
new vID;
if(sscanf(params,"d",vID)) return SendClientMessage(playerid,0x00D2D2FF,"Info: /fcloeschen [Vehicle ID]");
if(vID <= 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
for(new i=0; i<MAX_FRAC_VEHICLES_ALLOWED; i++)
{
if(FrakVeh[i][fc_vID] == vID)
{
FrakVeh[i][fc_modelID] = 0;
FrakVeh[i][fc_x] = 0.0;
FrakVeh[i][fc_y] = 0.0;
FrakVeh[i][fc_z] = 0.0;
FrakVeh[i][fc_r] = 0.0;
FrakVeh[i][fc_color1] = 0;
FrakVeh[i][fc_color2] = 0;
FrakVeh[i][fc_frakID] = -1;
new query[128];
format(query, sizeof(query), "DELETE FROM `Frakcars` WHERE fcID = '%d'", i);
mysql_tquery(DBHandle, query);
DestroyVehicle(FrakVeh[i][fc_vID]);
FrakVeh[i][fc_vID] = 0;
return SendClientMessage(playerid, 0x00FF00FF, "Fahrzeug wurde erfolgreich aus der Datenbank gelöscht.");
}
}
return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
} -
Was genau meinst du?
Dass er mit /fcloeschen, dass löscht, wo er drinne sitzt? -
Ja genau, also das mit der ID ist schon etwas Blöd, wenn man die IDs nicht immer weiß

-
ocmd:fcloeschen(playerid,params[])
{
new vID;
if(sscanf(params,"d",vID)){
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, 0xFF0000FF, "Error: Du sitzt in keinem Fraktions-Fahrzeug. -> Wenn du ein be");
vID = GetPlayerVehicleID(playerid);
}
if(vID <= 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
for(new i=0; i<MAX_FRAC_VEHICLES_ALLOWED; i++)
{
if(FrakVeh[i][fc_vID] == vID)
{
FrakVeh[i][fc_modelID] = 0;
FrakVeh[i][fc_x] = 0.0;
FrakVeh[i][fc_y] = 0.0;
FrakVeh[i][fc_z] = 0.0;
FrakVeh[i][fc_r] = 0.0;
FrakVeh[i][fc_color1] = 0;
FrakVeh[i][fc_color2] = 0;
FrakVeh[i][fc_frakID] = -1;
new query[128];
format(query, sizeof(query), "DELETE FROM `Frakcars` WHERE fcID = '%d'", i);
mysql_tquery(DBHandle, query);
DestroyVehicle(FrakVeh[i][fc_vID]);
FrakVeh[i][fc_vID] = 0;
return SendClientMessage(playerid, 0x00FF00FF, "Fahrzeug wurde erfolgreich aus der Datenbank gelöscht.");
}
}
return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
}Frei ausm Kopf, sollte gehen glaube ich

Denke den Code verstehst du, oder soll ich den noch erklären? -
Halo, ich bearbeite zurzeit ein FilterScript (Login/Register) doch komme nicht klar das mit meiner MySQL Datenbank zu verbinden.
Kann mir da jemand helfen? Habe meine kostenlose MySQL Datenbank bei db4free.net, und im FS habe ich das so eingetragen:#define Host "db4free.net"
#define User "kakarott"
#define DB "kakarott"
#define Password "zensiert"Ist das so richtig? Ich habe beim registrieren diese beiden Namen benutzt, doch das FS funktioniert Ingame nicht. (0 Errors beim compilen)
-
Schau dir mal das Tutorial an, da ist erklärt wie du es machen musst.
[ SCRIPTING ] [jTuT] MySQL R39-3 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System) -
Ciao,
hab ein Problem mit meinem stock GetLaune.
stock GetLaune(playerid)
{
new laune[15];
if(PlayerInfo[playerid][pLaune] >= 90) laune = "froehlich";
if(PlayerInfo[playerid][pLaune] >= 70) laune = "gut";
if(PlayerInfo[playerid][pLaune] >= 50) laune = "gelangweilt";
if(PlayerInfo[playerid][pLaune] >= 30) laune = "traurig";
if(PlayerInfo[playerid][pLaune] >= 20) laune = "depremiert";
if(PlayerInfo[playerid][pLaune] >= 8) laune = "depressiv";
if(PlayerInfo[playerid][pLaune] <= 6) SetPlayerHealth(playerid, 0.0);
return laune;
}Immer wenn ich mir die Laune auslesen lasse wird depressiv angezeigt. Obwohl meine Laune bei z.B 70 % also gut ist.
-
Setz mal aber der ersten Abfrage jeweils ein else if, anstatt nur ein if.
Halt so:
if(....)
else if(...)
else if(...)
else if(...)
Schau dann mal, ob das dann funktioniert. Falls nicht, dann printe dir vor der ersten Abfrage mal pLaune.=> EDIT:
Vielleicht solltest du die Abfragen auch in diesem Format strukturieren:
if(PlayerInfo[playerid][pLaune] >= 90) laune = "froehlich";
else if(PlayerInfo[playerid][pLaune] >= 70 && PlayerInfo[playerid][pLaune] < 90) laune = "gut";
Das dann halt bei jeder Abfrage mit den entsprechenden Werten. -
-
Textdraw oder GameText?
Kannst du mal so viel vom Code posten, damit ich es testen kann, ob es bei mir auch so ist? Vielleicht mit einem Bild dabei? -
if(PlayerInfo[playerid][pHygiene] >= 90) {
//beduerfniss = "frisch gewaschen";
format(str, sizeof(str), "~b~~h~Hygiene: ~g~frisch gewaschen");
TextDrawSetString(LauneTD[3], str);
}
else if(PlayerInfo[playerid][pHygiene] >= 70) {
//beduerfniss = "gut";
format(str, sizeof(str), "~b~~h~Hygiene: ~g~gut");
TextDrawSetString(LauneTD[3], str);
}
else if(PlayerInfo[playerid][pHygiene] >= 50) {
//beduerfniss = "schwitzend";
format(str, sizeof(str), "~b~~h~Hygiene: ~y~schwitzend");
TextDrawSetString(LauneTD[3], str);
}
else if(PlayerInfo[playerid][pHygiene] >= 30) {
//beduerfniss = "stinkt";
format(str, sizeof(str), "~b~~h~Hygiene: ~y~stinkt");
TextDrawSetString(LauneTD[3], str);
}
else if(PlayerInfo[playerid][pHygiene] >= 20) {
//beduerfniss = "schlecht";
format(str, sizeof(str), "~b~~h~Hygiene: ~r~schlecht");
TextDrawSetString(LauneTD[3], str);
}
else if(PlayerInfo[playerid][pHygiene] <= 13) {
new Float:hp;
GetPlayerHealth(playerid, hp);
SetPlayerHealth(playerid, hp - 12.0);
}
LauneTD[3] = TextDrawCreate(502.333404, 123.199996, ""); //bsp. Hygiene: schwitzend
TextDrawLetterSize(LauneTD[3], 0.327333, 1.139554);
TextDrawAlignment(LauneTD[3], 1);
TextDrawColor(LauneTD[3], -1);
TextDrawSetShadow(LauneTD[3], 0);
TextDrawSetOutline(LauneTD[3], 1);
TextDrawBackgroundColor(LauneTD[3], 51);
TextDrawFont(LauneTD[3], 3);
TextDrawSetProportional(LauneTD[3], 1);
TextDrawShowForPlayer(playerid, LauneTD[3]);// Edit
Ich schicke dir alles was zum Code dazuzgehört als PN. Ich möchte ungern den ganzen Code veröffentlichen auch wenn es nicht viel ist. -
Also bei mir klappt das Grün.

Was mir aber an deinem Code in PN aufgefallen ist:
SetTimerEx("Laune", 60000*2, true, "u",playerid);
zu:
SetTimerEx("Laune", 60000*2, true, "d",playerid);u existiert bei SetTimerEx nicht, das ist eine Erfindung von sscanf.
Außerdem, wenn du den Timer bei OnPlayerConnect startest, dann startest du ihn jedes mal wieder, wenn ein neuer Spieler verbindet, so hast du irgendwann 10 Timer auf der gleichen ID laufen.
Sinnvoll wäre ein Timer, der eine Schleife durch alle Spieler enthält. -
Du meinst das ?
Bei OnGameModeInit
SetTimer("Laune", 60000*2, true);
forward Laune(playerid);
public Laune(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) && PlayerInfo[i][pLoggedIn] != true)continue;
if(PlayerInfo[playerid][pPremium] == 1) {
PlayerInfo[i][pLaune] -= 2;
PlayerInfo[i][pHygiene] -= 2;
PlayerInfo[i][pHarndrang] -= 2;
GetLaune(i);
GameTextForPlayer(i, "~d~ Beduerfnisse ~d~", 3000, 4);
return 1;
}else {
PlayerInfo[i][pLaune] -= 3;
PlayerInfo[i][pHygiene] -= 3;
PlayerInfo[i][pHarndrang] -= 3;
GetLaune(i);
GameTextForPlayer(i, "~d~ Beduerfnisse ~d~", 3000, 4);
}
return 1;
}
return 1;
}
Falls du es anders meinst. Wie?Das mit den Farben könnte auch an mein Interface Mod liegen.
Ansonsten danke das du dir mal wieder die Zeit genommen hast. -
Ja, so.
Nur nimm die return 1; aus der Schleife, sonst geht es nur für den ersten Spieler und ohne das playerid im Kopf. -
Kannst playerid auch entfernen das brauchst du ja nicht mehr.
-
Ich wollte eine Textur entfernen und komplett durch eine Farbe ersetzen. Habe eigentlich alles so gemacht wie im Tut erklärt aber die Textur schwindet nicht und es wird nur eingefärbt. Weiß jemand wie ich die Textur jetzt noch entfernen kann? Es soll einfach nur eine knallrote Fläche werden:
SetDynamicObjectMaterial(SchmaleWand[1], 0, -1, "none", "none", 0xFFFF0000);
-
Wie erstellst du das Objekt, kannst du den Code dazu posten? Dann würde ich es kurz ausprobieren.
-
