Beitrag von CranK[491] ()
Dieser Beitrag wurde vom Autor gelöscht ().
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
Wird das Array denn davor befüllt?
Printe dir evtl mal die Koordinaten Werte & prüfe, ob du dich in der richtigen virtuellen Welt befindest
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?
CranK[491] wie sieht die Funktion isPlayerAtSprunk aus ?
CranK[491] wie sieht die Funktion isPlayerAtSprunk aus ?
Ahoi, ich habe hier den Befehl /go gebaut.
Dabei soll der Spieler z.b. "/go ls" eingeben und zu den Koordinaten teleportiert werden.
Wenn ich den Befehl mit Parameter eingebe kommt dieser Fehler:
Befehl:
CMD:go(playerid,params[])
{
new item[128];
if(!isAdmin(playerid,2))return SendClientMessage(playerid,COLOR_GREY,"FEHLER: Du bist kein Admin/Dein Adminrang ist zu niedrig.");
if(!isaduty(playerid))return SendClientMessage(playerid, COLOR_RED,"SERVER: {FFFFFF}Du bist nicht berechtigt diesen Befehl zu nutzen.");
if(sscanf(params,"s",item))return SendClientMessage(playerid,COLOR_GREY,"INFO: /go [ls|sf|lv]");
if(!strcmp(item, "ls",false))
{
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPlayerPos(playerid, 1129.4788,-1457.1837,15.7969);
SendClientMessage(playerid, COLOR_RED, "ADMIN: {FFFFFF}Du hast dich erfolgreich nach LS teleportiert.");
return 1;
}
if(!strcmp(item,"sf",false))
{
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPlayerPos(playerid, -2028.7434,137.7347,28.8359);
SendClientMessage(playerid, COLOR_RED, "ADMIN: {FFFFFF}Du hast dich erfolgreich nach SF teleportiert.");
return 1;
}
if(!strcmp(item,"airls",false))
{
SetPlayerVirtualWorld(playerid,0);
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1958.0535,-2182.1360,13.5469);
SendClientMessage(playerid, COLOR_RED, "ADMIN: {FFFFFF}Du hast dich erfolgreich zum LS Airport teleportiert.");
return 1;
}
return 0;
}
Alles anzeigen
kann mir jemand helfen.
Verstehe nicht wo der Fehler liegt.
Alles anzeigenAhoi, ich habe hier den Befehl /go gebaut.
Dabei soll der Spieler z.b. "/go ls" eingeben und zu den Koordinaten teleportiert werden.
Wenn ich den Befehl mit Parameter eingebe kommt dieser Fehler:
Befehl:
CodeAlles anzeigenCMD:go(playerid,params[]) { new item[128]; if(!isAdmin(playerid,2))return SendClientMessage(playerid,COLOR_GREY,"FEHLER: Du bist kein Admin/Dein Adminrang ist zu niedrig."); if(!isaduty(playerid))return SendClientMessage(playerid, COLOR_RED,"SERVER: {FFFFFF}Du bist nicht berechtigt diesen Befehl zu nutzen."); if(sscanf(params,"s[128]",item))return SendClientMessage(playerid,COLOR_GREY,"INFO: /go [ls|sf|lv]"); // HIER LIEGT DER FEHLER if(!strcmp(item, "ls",false)) { SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); SetPlayerPos(playerid, 1129.4788,-1457.1837,15.7969); SendClientMessage(playerid, COLOR_RED, "ADMIN: {FFFFFF}Du hast dich erfolgreich nach LS teleportiert."); return 1; } if(!strcmp(item,"sf",false)) { SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); SetPlayerPos(playerid, -2028.7434,137.7347,28.8359); SendClientMessage(playerid, COLOR_RED, "ADMIN: {FFFFFF}Du hast dich erfolgreich nach SF teleportiert."); return 1; } if(!strcmp(item,"airls",false)) { SetPlayerVirtualWorld(playerid,0); SetPlayerInterior(playerid,0); SetPlayerPos(playerid,1958.0535,-2182.1360,13.5469); SendClientMessage(playerid, COLOR_RED, "ADMIN: {FFFFFF}Du hast dich erfolgreich zum LS Airport teleportiert."); return 1; } return 0; }
weiß jemand wo der Fehler liegt?
if(sscanf(params,"s",item))
Musst die Maximale Länge des Strings angeben, also:
PS: Bisschen übertrieben lang xD
Danke. Hat geklappt.
gerne
Jetzt eine andere Frage:
Ich habe ein Enum für die Fraktionen erstellt und dort die Koordinaten der Base etc eingetragen.
Jetzt will ich aber ein paar Sachen aus dem Enum in die Datenbank speichern und beim Serverstart wieder abrufen.
Wie mache ich das am besten?
Jetzt eine andere Frage:
Ich habe ein Enum für die Fraktionen erstellt und dort die Koordinaten der Base etc eingetragen.Jetzt will ich aber ein paar Sachen aus dem Enum in die Datenbank speichern und beim Serverstart wieder abrufen.
Wie mache ich das am besten?
Naja beim gamemode exit eine Funktion rein und dann die entsprechenden Variablen in deine Datenbank speichern was benutzt du MySQL? Dini? Was hast du bis jetzt schon?
Jetzt eine andere Frage:
Ich habe ein Enum für die Fraktionen erstellt und dort die Koordinaten der Base etc eingetragen.Jetzt will ich aber ein paar Sachen aus dem Enum in die Datenbank speichern und beim Serverstart wieder abrufen.
Wie mache ich das am besten?
zb
und irgendwo im script an besten unten
Hey, weiß Jemand den Funktionsnamen für die roten Kreise auf den Boden, wo die meisten damals mit eingänge hatten usw, wie zb loh script usw ?
SetPlayerCheckpoint
https://sampwiki.blast.hk/wiki/SetPlayerCheckpoint
Du solltest hierfür aber einen Streamer nutzen, da du sonst nur einen Checkpoint erstellen kannst.
SetPlayerCheckpoint
https://sampwiki.blast.hk/wiki/SetPlayerCheckpoint
Du solltest hierfür aber einen Streamer nutzen, da du sonst nur einen Checkpoint erstellen kannst.
Problem ist ich habe so ein kreis wo damals der eingang für unsere Arena war und dieser kreis ist feststehen also man kann drin stehen und der geht nicht weg sicher das der mit SetPlayerCheckpoint gemacht ist finde diesen kreis einfach nicht im script um den zu löschen da es keine funktion mehr hat und auch nie wieder ein haben soll
Mache bitte mal ein Bild davon.
war grade dabei
Ja, das ist ein Checkpoint.