Was für ein lächerlicher Fehler!
Der Stock wurde tatsächlich vor der MySQL-Verbindung ausgeführt!
Danke @Jeffry
Was für ein lächerlicher Fehler!
Der Stock wurde tatsächlich vor der MySQL-Verbindung ausgeführt!
Danke @Jeffry
Füge bei OnGameModeInit:
mysql_debug(1);
als erste Zeile ein, dann schau nochmal ob ein Log erstellt wird. Schau auch im Server Log nach, nicht dass es dort drin steht.
Also ganz oben kommt folgendes:
[19:23:55] >> mysql_query( Connection handle: 1 )
[19:23:55] >> mysql_query() - Invalid connection handle. (You set: 1, Highest connection handle ID is 0).
[19:23:55] >> mysql_store_result( Connection handle: 1 )
[19:23:55] >> mysql_store_result() - Invalid connection handle. (You set: 1, Highest connection handle ID is 0).
[19:23:55] >> mysql_retrieve_row( Connection handle: 1 )
[19:23:55] >> mysql_retrieve_row() - Invalid connection handle. (You set: 1, Highest connection handle ID is 0).
[19:23:55] >> mysql_free_result( Connection handle: 1 )
[19:23:55] >> mysql_free_result() - Invalid connection handle. (You set: 1, Highest connection handle ID is 0).
[19:23:55] >> mysql_connect( )
Aber mit der Table mit den Fahrzeugen wird nicht erwähnt :o
Dann poste bitte was im MySQL Log steht.
Okay, das schockt mich jetzt krass, aber es existiert gar keine MySQL-Log
Ich nutze aber sehr viel MySQL in meinem Script!
Habe ich die Logfunktion vielleicht deaktiviert?
Dann sollte es eigentlich passen
Leider wird immer noch nichts geladen ._.
So langsam verzweifle ich
Poste bitte mal einen Screenshot der fzge Tabelle, in dem man die Daten sieht.
Dort ist ein Fahrzeug angelget.
Versuche es bei OnGameModeInit so:
Leider funktioniert das ganze so nicht
Mache ich vielleicht was mit "MAX_CARS" falsch? :o
Aloha,
wie schon oben beschrieben, laden die Fahrzeuge nicht aus der Datenbank.
Die Fahrzeuge sind alle in meiner Datenbank vorhanden!
Das einzige Problem ist, wie schon erwähnt, das Erstellen der Fahrzeuge mit den
Werten aus der Datenbank...
Folgendes habe ich im Script eingebaut:
Oben im Script definiert:
OnGameModeInit:
for(new i=0;i<MAX_CARS;i++)
{
new Query[128],idstr[32],count;
valstr(idstr,i);
mysql_real_escape_string(idstr, idstr);
format(Query, sizeof(Query), "SELECT `ID` FROM `fzge` WHERE `ID` = '%s'", idstr);
mysql_query(Query);
mysql_store_result();
count = mysql_num_rows();
mysql_free_result();
if(count == 1)
{
loadcar(i);
}
}
Alles anzeigen
Der Ladestock:
stock loadcar(autoid)
{
new autostr[32];
valstr(autostr,autoid);
for(new i=0;i<MAX_CARS;i++)
{
if(FahrzeugInfo[i][fz_ID] == 0)
{
FahrzeugInfo[i][fz_Slot] = autoid;
FahrzeugInfo[i][fz_Typ] = 0;
FahrzeugInfo[i][fz_Model] = mysql_GetInt("fzge", "Model", "ID", autostr);
FahrzeugInfo[i][fz_X] = mysql_GetFloat("fzge", "X", "ID", autostr);
FahrzeugInfo[i][fz_Y] = mysql_GetFloat("fzge", "Y", "ID", autostr);
FahrzeugInfo[i][fz_Z] = mysql_GetFloat("fzge", "Z", "ID", autostr);
FahrzeugInfo[i][fz_A] = mysql_GetFloat("fzge", "A", "ID", autostr);
FahrzeugInfo[i][fz_Besitzer] = mysql_GetInt("fzge", "Fraktion", "ID", autostr);
FahrzeugInfo[i][fz_Farbe1] = mysql_GetInt("fzge", "Farbe1", "ID", autostr);
FahrzeugInfo[i][fz_Farbe2] = mysql_GetInt("fzge", "Farbe2", "ID", autostr);
FahrzeugInfo[i][fz_Opark] = mysql_GetInt("fzge", "Opark", "ID", autostr);
FahrzeugInfo[i][fz_mod1] = mysql_GetInt("fzge", "mod1", "ID", autostr);
FahrzeugInfo[i][fz_mod2] = mysql_GetInt("fzge", "mod2", "ID", autostr);
FahrzeugInfo[i][fz_mod3] = mysql_GetInt("fzge", "mod3", "ID", autostr);
FahrzeugInfo[i][fz_mod4] = mysql_GetInt("fzge", "mod4", "ID", autostr);
FahrzeugInfo[i][fz_mod5] = mysql_GetInt("fzge", "mod5", "ID", autostr);
FahrzeugInfo[i][fz_mod6] = mysql_GetInt("fzge", "mod6", "ID", autostr);
FahrzeugInfo[i][fz_mod7] = mysql_GetInt("fzge", "mod7", "ID", autostr);
FahrzeugInfo[i][fz_mod8] = mysql_GetInt("fzge", "mod8", "ID", autostr);
FahrzeugInfo[i][fz_mod9] = mysql_GetInt("fzge", "mod9", "ID", autostr);
FahrzeugInfo[i][fz_mod10] = mysql_GetInt("fzge", "mod10", "ID", autostr);
FahrzeugInfo[i][fz_mod11] = mysql_GetInt("fzge", "mod11", "ID", autostr);
FahrzeugInfo[i][fz_mod12] = mysql_GetInt("fzge", "mod12", "ID", autostr);
FahrzeugInfo[i][fz_mod13] = mysql_GetInt("fzge", "mod13", "ID", autostr);
FahrzeugInfo[i][fz_mod14] = mysql_GetInt("fzge", "mod14", "ID", autostr);
FahrzeugInfo[i][fz_Tank] = mysql_GetInt("fzge", "Tank", "ID", autostr);
FahrzeugInfo[i][fz_Glas] = mysql_GetInt("fzge", "Glas", "ID", autostr);
FahrzeugInfo[i][fz_Panzer] = mysql_GetInt("fzge", "Panzer", "ID", autostr);
FahrzeugInfo[i][fz_ID] = s_CreateVehicle(FahrzeugInfo[i][fz_Model],FahrzeugInfo[i][fz_X],FahrzeugInfo[i][fz_Y],FahrzeugInfo[i][fz_Z],FahrzeugInfo[i][fz_A],FahrzeugInfo[i][fz_Farbe1],FahrzeugInfo[i][fz_Farbe2],-1);
FahrzeugInfo[i][fz_Lock] = 0;
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(FahrzeugInfo[i][fz_ID], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(FahrzeugInfo[i][fz_ID], engine, lights, alarm, 0, bonnet, boot, objective);
FahrzeugInfo[i][fz_Motor] = 0;
FahrzeugInfo[i][fz_Radio] = 0;
new str[32];
switch(FahrzeugInfo[i][fz_Besitzer])
{
case 0:{str = "-";}
case 1:{str = "Heer";}
case 2:{str = "Marine";}
case 3:{str = "Luftwaffe";}
case 4:{str = "Artillerie";}
case 5:{str = "SEAL";}
case 6:{str = "Heer";}
case 7:{str = "Marine";}
case 8:{str = "Luftwaffe";}
case 9:{str = "Artillerie";}
case 10:{str = "SEAL";}
}
SetVehicleNumberPlate(FahrzeugInfo[i][fz_ID],str);
CheckPanzerung(FahrzeugInfo[i][fz_ID],i);
if(FahrzeugInfo[i][fz_mod1]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod1]); }
if(FahrzeugInfo[i][fz_mod2]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod2]); }
if(FahrzeugInfo[i][fz_mod3]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod3]); }
if(FahrzeugInfo[i][fz_mod4]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod4]); }
if(FahrzeugInfo[i][fz_mod5]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod5]); }
if(FahrzeugInfo[i][fz_mod6]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod6]); }
if(FahrzeugInfo[i][fz_mod7]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod7]); }
if(FahrzeugInfo[i][fz_mod8]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod8]); }
if(FahrzeugInfo[i][fz_mod9]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod9]); }
if(FahrzeugInfo[i][fz_mod10]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod10]); }
if(FahrzeugInfo[i][fz_mod11]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod11]); }
if(FahrzeugInfo[i][fz_mod12]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod12]); }
if(FahrzeugInfo[i][fz_mod13]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod13]); }
if(FahrzeugInfo[i][fz_mod14]!=0) { AddVehicleComponent(FahrzeugInfo[i][fz_ID],FahrzeugInfo[i][fz_mod14]); }
return 1;
}
}
return 1;
}
Alles anzeigen
Wo genau liegt nun der Fehler?
Das geht überhaupt nicht, tut mir Leid wenn ich das so sage.
Passt überhaupt nicht überein, mal abgesehen das die Zustands- und Tankanzeige einfach mitten reinplatziert wurde.
Wenn man schon ein analoges Tacho macht, dann sollte das ganze auch gut aussehen, ansonsten wäre ein digitales besser angebracht.
Hey hey, gar kein Thema!
Deswegen habe ich ja auch gefragt, weil ich selbst unsicher war
Danke für deine ehrliche aber dennoch sachliche Meinung!
Was sagt ihr?
Zu vollgeklatscht oder ist das noch in Ordnung?
Was könnte ich wenn ändern, oder doch lieber digital?
Ich sag mal so, du kannst auch was eigenes machen.
Deine Aussage verstehe ich nicht, da ich niemals um irgendwelche fertigen Tachos gebeten habe.
Im Thread steht daher auch "[UMFRAGE]"...
Und vielen Dank an alle, die Ihre persöhnliche Meinung dazu abgegeben haben!
Hey liebe Community,
da ich gerade an einem brandheißen neuen Gamemode herumbastel, und gerade dabei bin das gesamte Fahrzeugsystem zu scripten,
wollte ich bei einer Kleinigkeit euren Rat.
Die Tachoarten haben jeder seine Vor- und Nachteile, aber habt ihr vielleicht einen
optischen Favoriten?
Wichtig ist, dass die unten gezeigten Bilder nur beispiele sind, und natürlich im Script (auch pawn entsprechend)
geändert bzw. erweitert werden!
Für die, die den Unterschied nicht wissen hier zwei Bilder:
analoges Tacho (Beispiel):
digitales Tacho (beispiel):
#edit Tachof4il over 9000
Danke für euren Beitrag
Würdest du dich von einem einzigartigem Konzept (bestehend aus den wohl beliebtesten Modis der SA:MP Szene)
welches eine Mischung aus Deathmatch und Roleplay besteht, beeindrucken lassen?
Wenn ja, könnten wir weitere Einzelheiten besprechen (u.a. auch was schon alles vorhanden, geplant ist usw.)
Gruß
Hey Leute,
ich habe die Idee gehabt, dass sobald ein Spieler in der Nähe eines NPC's ist, dieser dann
eine festgelegte Nachricht via. Chatbubble ausgibt.
Diese Nachricht soll eine Variable (den Namen des vorbeilaufenden Spielers) beinhalten.
Da die NPC'S alle unterschiedliche Nachrichten ausgeben sollen, habe ich schon ein paar "Vorbereitungen" getroffen,
habe ich jetzt allerdings ein paar Schwierigkeiten bei der Umsetzung.
Mein Script bisher:
Grundlegende Dinge (Definitionen...)
#define MAX_NPC
new NPCID[MAX_NPC];
new PName[MAX_PLAYERS][MAX_PLAYER_NAME];
new NPCShowPlayer[MAX_PLAYERS][MAX_NPC]; // Diese Variable sagt aus, welcher Spieler welchem NPC am nähsten ist.
// Abfrage (freie NPC ID *siehe späteren Code*)
stock GetFreeNPCID()
{
for(new i=0; i<MAX_NPC; i++)
{
if(NPCID[i] != 0) continue;
return i;
}
return -1;
}
Alles anzeigen
Sobald die NPC's connecten:
new npc = GetFreeNPCID();
if(!strcmp(PName[playerid],"NPC1",true))
{
NPCID[npc] = playerid;
s_SetPlayerSkin(playerid,11);
}
Jeder NPC bekommt eine ID (seine playerid) zugewiesen, so dass es keine Verwechselungen der NPC's und deren Nachrichten gibt!
Sobald ein Spieler connected:
Die Variable wird auf 0 gesetzt, da sich der Spieler ja bei keinem NPC befindet!
Meine Frage:
Wie genau soll ich das ganze jetzt angehen?
Soll ich mit Timern abfragen ob sich ein Spieler bei irgendeinem NPC befindet?
Wenn ja wie kann ich am besten jede Koordinate jedes NPC's einzelnt abspeichern?
Wie gebe ich diese Coordinaten aus?
Habt ihr ein paar Ideen oder am besten Vorschläge?
Hey Leute,
ich habe folgende Fehler:
C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(2987) : error 035: argument type mismatch (argument 3)
C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(2990) : error 035: argument type mismatch (argument 1)
C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(2991) : error 035: argument type mismatch (argument 1)
C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(2992) : error 035: argument type mismatch (argument 1)
C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(2993) : error 035: argument type mismatch (argument 1)
C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(2994) : error 035: argument type mismatch (argument 1)
Bei diesem Befehl hier:
ocmd:akte(playerid,params[])
{
new query[256],akten[1000],pID;
if(!isPlayerAnAdmin(playerid,2))return SCM(playerid,COLOR_RED,"Du bist nicht berechtigt.");
if(sscanf(params,"u",pID))return SCM(playerid, COLOR_RED,"/akte [SPIELER]");
format(query, sizeof(query), "SELECT Eintrag, Typ, Dauer, Grund, AdminName from `strafakte` where Name = '%s'", SpielerName(pID));
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() < 1) return SCM(playerid, COLOR_RED, "Der Spieler hat keine Straf-Einträge!");
while(mysql_fetch_row(query, "|"))
{
new typ[32],grund[50], dauer[4], AdminName[32], mid, tmp[126], i = 0;
mysql_fetch_field("Typ", typ);
mysql_fetch_field("Dauer", dauer);
mysql_fetch_field("Grund", grund);
mysql_fetch_field("AdminName", AdminName);
mysql_fetch_field("Eintrag", query); mid = strval(query);
format(tmp, sizeof(tmp), "{FFFFFF}Typ: %s\nDauer: %s min./Anzahl\nGrund: %s\nAdmin: %s\n---------------------------------\n", typ,dauer,grund,AdminName);
aList[playerid][i] = mid;
strins(akten, tmp, strlen(akten));
i++;
}
ShowPlayerDialog(playerid, DIALOG_AKTE, DIALOG_STYLE_LIST, "Admin - Strafakte", akten, "O.K", "");
return 1;
}
Alles anzeigen
Ich würde es gerne beheben, jedoch weiß ich noch nichtmal welches "Argument" falsch ist...
Hey Leute,
ich habe ein Problem mit der Nutznung des Callbacks ,,OnPlayerKeyStateChange".
Undzwar passiert bei folgenden Beispielen gar nichts:
Nr. 1)
if(newkeys & KEY_FIRE)
{
if(pBoost[playerid] == 1)
{
new Float:x,Float:y,Float:z;
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vID = GetPlayerVehicleID(playerid);
GetVehicleVelocity(vID,x,y,z);
SetVehicleVelocity(vID,x*3,y*3,z*3);
}
else
{
GetPlayerVelocity(playerid,x,y,z);
SetPlayerVelocity(playerid,x*3,y*3,z*3);
}
}
}
Alles anzeigen
Nr. 2)
if(RELEASED(KEY_CROUCH))
{
if(pJump[playerid] == 1)
{
new Float:x,Float:y,Float:z;
new Car = GetPlayerVehicleID(playerid);
new State = GetPlayerState(playerid);
if(State == PLAYER_STATE_DRIVER)
{
GetVehicleVelocity(Car, x, y, z);
SetVehicleVelocity(Car, x, y, z+0.4);
}
}
}
Alles anzeigen
RELEASED habe ich folgendermaßen definiert:
Das komische daran ist, wenn ich die oben genannten Beispiele als Befehl umschreibe (sprich man gibt z.B. Beispiel1 ein und die jeweiligen Funktionen und Abfragen werden durchlaufen), funktioniert
alles einwandfrei!
Das heißt es kann nicht an den Variablen (pJump & pBoost) liegen.
Habt ihr vielleicht eine Idee?
Hey Leute,
ich habe ein bisschen geschaut was man so schönes mit dem Include
"Mapandreas" machen kann.
Im Internet bin ich auf das ein odere andere Beispiel gestoßen. (FS)
Beim compilieren kam anschließend folgende Meldung:
error 017: undefined symbol "MapAndreas_Init"
error 017: undefined symbol "MapAndreas_FindZ_For2DCoord"
Die Zeilen:
MapAndreas_Init(MAP_ANDREAS_MODE_FULL);
und
stock Float:GetGroundZ(Float:x, Float:y)
{
new Float:gz;
MapAndreas_FindZ_For2DCoord(x, y, gz); <---- Fehlerzeile
return gz;
}
Habt ihr eine Idee?
Gruß
Domi
Hey Leute,
euch allen ist sicherlich die Funktion "TogglePlayerControllable" bekannt.
Mein Problem ist, dass diese Funktion nicht nur den Spieler "freezed", sondern
ihn auch gleichzeitig unsterblich macht.
Meine Frage ist, ob ihr eine Funktion kennt, die den Spieler zwar freezed,
ihn aber nicht unsterblich macht.
Gruß
Domi
Jap, beim connecten werden alle AFK-Variablen auf "0" gesetzt.
Versuche es so:
Cif(AFKCD[playerid] > 0) SCMF(playerid,COLOR_RED,"Du musst noch %i Sekunden warten bis du den Befehl wieder nutzen kannst!",AFKCD[playerid]), return 1;
Zwecks dem OnPlayerText:
Du musst dort return 0 einfügen, wenn die Meldung ausgegeben wird. Return 0 lässt die Chat Nachricht nicht anzeigen.
Wenn ich es so eingebe, kommt dieser Fehler:
error 029: invalid expression, assumed zero
Hey Leute,
ich habe mein AFK System ohne probleme geschrieben.
Das System sieht in meinen Augen auch Fehlerfrei aus, jedoch bekomme ich InGame (beim ausprobieren) sehr komische Fehler:
- wenn ich den Befehl das erse mal nutze ist alles gut, sobald ich ihn jedoch das zweite mal nutze,
bekomme ich die Meldung, dass mein AFK Cooldown (AFK_CD) noch nicht abgelaufen ist, jedoch
wird der Befehl dann nicht returnt, sondern läuft trotzdem weiter!
- wenn ich schreibe obwohl ich AFK bin, bekomme ich zwar die Nachricht, dass ich nicht schreiben kann wenn ich AFK bin,
jedoch wird trotzdem der Text abgesendet!
Das System:
ocmd:afk(playerid,params[])
{
new str[128];
if(Tot[playerid] == 1) return SCM(playerid,COLOR_RED,"Du bist nicht in der Lage dies zu tun!");
if(AFKCD[playerid] > 0) return SCMF(playerid,COLOR_RED,"Du musst noch %i Sekunden warten bis du den Befehl wieder nutzen kannst!",AFKCD[playerid]);
if(AFK[playerid] == 0)
{
format(str,sizeof (str),"[AFK] %s ist in den AFK-Modus gegangen!",SpielerName(playerid));
TogglePlayerControllable(playerid,0);
AFKLabel[playerid]=Create3DTextLabel("*Spieler ist AFK*", COLOR_ORANGE, 30.0, 40.0, 50.0, 40.0, 0, 0);
Attach3DTextLabelToPlayer(AFKLabel[playerid],playerid,0,0,0.5);
GetPlayerHealth(playerid, AFKLeben[playerid]);
s_SetPlayerHealth(playerid,0x122E0);
SCMTA(COLOR_ORANGE,str);
AFK[playerid] = 1;
AFKCD[playerid] += 30;
return 1;
}
if(AFK[playerid] == 1)
{
format(str,sizeof (str),"[AFK] %s ist vom AFK-Modus zurück!",SpielerName(playerid));
SCMTA(COLOR_ORANGE,str);
Delete3DTextLabel(AFKLabel[playerid]);
AFK[playerid] = 0;
s_SetPlayerHealth(playerid,AFKLeben[playerid]);
TogglePlayerControllable(playerid,1);
AFKCD[playerid] += 30;
AFK[playerid] = 0;
return 1;
}
return 1;
}
Alles anzeigen
Hey Leute,
ich möchte eine Fraktionsliste erstellen, welche ALLE SPIELER der eigenen Fraktion anzeigt, egal ob die Spieler dabei on- oder offline sind.
Da ich was MySQL betrifft immer noch ein zwei Wissenslücken habe, würde ich mich über eure Hilfe sehr freuen!
Das Ganze sieht derzeit so aus:
ocmd:members(playerid,params[])
{
new status[MAX_PLAYERS],member,string[128];
if(pInfo[playerid][pSektion] == 0) return SCM(playerid,COLOR_RED,"Du bist in keiner Fraktion!");
SCM(playerid,COLOR_YELLOW,"------ Fraktion-Mitglieder Liste ------");
member = mysql_GetInt("accounts", "Fraktion", "Name", SpielerName(i));
if(pInfo[playerid][pFraktion] == member)
{
status[i] = mysql_GetInt("accounts", "Online", "Name", SpielerName(i));
if(status[i] == 0)
{
format(string,sizeof(string),"Name: {FFFFFF}%s {FEF849}| Rang: {FFFFFF}%d {FEF849}| Status: {FF0000}OFFLINE",SpielerName(i),pInfo[i][pSRang]);
SCM(playerid,COLOR_YELLOW,string);
}
else
{
format(string,sizeof(string),"Name: {FFFFFF}%s {FEF849}| Rang: {FFFFFF}%d {FEF849}| Status: {00FF00}ONLINE",SpielerName(i),pInfo[i][pSRang]);
SCM(playerid,COLOR_YELLOW,string);
}
}
SCM(playerid,COLOR_YELLOW,"-----------------------------------------------");
return 1;
}
Alles anzeigen
Ich habe vorher mit dieser Funktion "for(new i=0; i<MAX_PLAYERS; i++)" gearbeitet.
Jedoch ergibt diese natürlich wenig Sinn, da dann nur die Spieler angezeigt werden die online sind.
Ihr könnt mir bestimmt helfen