Ich kann dir da meine Wunderschöne Include zu empfehlen, da die diese Arbeit selbst erledigt
[ INCLUDE ] B_Schranke - Lass Schranken sanft rotieren
Bei schranken muss man etwas trixxen damit alles klappt ![]()
Ich kann dir da meine Wunderschöne Include zu empfehlen, da die diese Arbeit selbst erledigt
[ INCLUDE ] B_Schranke - Lass Schranken sanft rotieren
Bei schranken muss man etwas trixxen damit alles klappt ![]()
Wiso gibt er mir hier nicht das % zeichen aus?
format(string,128,"• - Steuern: %d$ (%d %%)",steuern,Server[Steuern]);
Nein ein % reicht nicht da 2 eigendlich als ein % dargestellt wird aber es kommt netmal einer
Du musst es ja wissen
Weiß ich ja auch schau mal im Anhang da steht sogar das MyVictory logo ![]()
Das kannst du mit strcmp umsetzen
bsp:
if(!strcmp(inputtext,"Haus",true))
{
Hier die Haushilfe
}
else if(!strcmp(inputtext,"Boot",true))
{
Hilfe für boot
}
.....
Hey danke, wie ist das aber wenn ich das z.b. für 2 Fraktionen machen will die aber nicht sehen sollen was die anderen schreiben?
schau dir mein Code an
der sendet nur den Inhalt an denen die die selbe fraktion haben wie der schreiber..
Da brauch man nix weiter machen
Wie macht ihr immer euren Fraktionschat?
Der brauch nicht hunderte von Zeilen haben wenn es auch so geht:
ocmd:f(playerid,params[])
{
if(GetPVarInt(playerid,"Fraktion")==0)
return SendClientMessage(playerid,ROT,"du bist in keiner Fraktion");
new text[128];
if(sscanf(params,"s",text))
return SendClientMessage(playerid,ROT,"/f [text]");
format(text,sizeof(text),"Member %s: %s",SpielerName(playerid),text);
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(i,"Fraktion") == GetPVarInt(playerid,"Fraktion"))
{
SendClientMessage(i,GRÜN,text);
}
}
}
return 1;
}
Schön das ihr das Design von MyVictory geklaut habt
An deiner stelle würde ich schnell ein anderes nehmen da dies euch nicht gehört und ihr dafür nicht gezahlt habt.
Desweiteren solltet ihr mal das Impressum füllen da das schon ziemlich leer ist.
Zu der vorstellung und den Server sag ich jetzt nichts, da es mir zu standart ist.
Dann nimmste rand als Index für die erste Zelle des Arrays spawns
Wozu dazu noch nen Enum nehmen?
Einfacher ist so:
new Float:Spawns[][4]=
{
{X,Y,Z,A},
{X,Y,Z,A},
{X,Y,Z,A},
{X,Y,Z,A},
{X,Y,Z,A}
};
new i = random(sizeof(Spawns));
SetPlayerPos(playerid,Spawns[i][0],Spawns[i][1],Spawns[i][2]);
SetPlayerFacingAngle(playerid,Spawns[i][3]);
bringt das was die wegzulassen
Das spart enorm an Zeilen
Bein Mir im Script habe ich allein knappe 3k Zeilen gespart daher mach ich das so
Sagmal kannst du den Topic nicht lesen?
Das geht auch freundlicher ![]()
_____________________________________________
Sind die Net Frameworks Aktuell?
Is Microsoft C++ Runtime Aktuell?
Daran liegt es auch...
PS: ^Mein Problem weiter oben ist auch noch nicht gelöst^
Teste mal das hier
dcmd_showpda(playerid,params[])
{
#pragma unused params
if(PlayerInfo[playerid][PDA] != 1)
{
for(new i=0;i<5;i++)
TextDrawHideForPlayer(playerid, StatsDraw[playerid][i]);
return SendClientMessage(playerid,Rot, "Du hast kein PDA");
}
else
{
for(new i=0;i<5;i++)
TextDrawShowForPlayer(playerid, StatsDraw[playerid][i]);
}
return 1;
}
Ich vermute mal wenn PDA 0 ist das er keins hat und dein Code ergab sowiso kein sinn
Die einrückung nach der for schleife so lassen, sonst kommen die Fehler wieder
Ich hab nen kleines Problem
Bei der Funktion zeigt er mir alles an.
new Inhalt[60+sizeof(JobInfo)];
for(new j = 0; j < sizeof(JobInfo); j ++)
{
if(JobInfo[j][JobID] == PlayerInfo[playerid][Job])
{
if(GetVehicleModel(vehicleid) == JobInfo[j][JobVehicle])
{
format(Inhalt,sizeof(Inhalt),"%s\n%s",Inhalt,JobInfo[j][JobText]);
}
}
}
ShowPlayerDialog(playerid,diaJobWahl,DIALOG_STYLE_LIST,"Welche Tour soll es sein?",Inhalt,"Wählen","Abbruch");
Klick ich aber eins an, verschieben sich die werte und es wierden nur die ersten 2 auswählbar.
case diaJobWahl:
{
if(response)
{
new vehicleid = GetPlayerVehicleID(playerid);
for(new j = 0; j < sizeof(JobInfo); j ++)
{
if(JobInfo[j][JobID] == PlayerInfo[playerid][Job])
{
if(GetVehicleModel(vehicleid) == JobInfo[j][JobVehicle])
{
if(!strcmp(JobInfo[j][JobText],JobInfo[listitem][JobText],true))
{
format(query,128,"~> %s",JobInfo[listitem][JobText]);
SendClientMessage(playerid,cGreen,query);
SendClientMessage(playerid,cGreen,"~> Fahre zum Flughafen und besorge einen Container");
PlayerInfo[playerid][JobRoute] = listitem;
return 1;
}
}
}
}
SendClientMessage(playerid,cWarn,"~> Fehler im System! Bitte wähle eine andere Route");
}
else
{
RemovePlayerFromVehicle(playerid);
PlayerInfo[playerid][JobRoute] = 0;
}
return 1;
}
Ich habe schon einiges versucht aber es kommt immer das selbe bei raus
Die Jobrouten werden hier alle eingetragen:
new JobInfo[][JobEnum]=
{
{jTrucker, 578, "Die Baustelle", 2422.8518,1923.7631,5.7201},
{jTrucker, 578, "Die Einkaufspassgae", 2831.9189,2395.0381,10.5249},
{jTrucker, 560, "Test", 2244.7222,2230.9717,10.4690},
{jTrucker, 578, "Das Holtel", 2244.7222,2230.9717,10.4690},
{jTrucker, 578, "Das Autohaus", 2189.5784,1386.8009,10.5254}
};
Sobald er den wert Test im dialog anzeigen soll, verschieben sich die Jobs oder ich bekomm die Fehlermeldung angezeigt.
Ich hoffe, das einr dazu eine idee hat
Als Kleine Hilfestellung:
mysql_connect("IP Wo die Datenbank liegt","Benutzername (der wie auch bei phpMyAdmin","Das Passwort des Benutzers","Datenbank Name");
Das sollte dein Problem lösen ![]()
sqllite
Das gibt es nicht ![]()
SQLite heißt es^^
Ja das mach ich noch nur zurzeit arbeite ich an der Schranken Include weiter ![]()
Die die den Fehler bekommen:
warning 201: redefinition of constant/macro (symbol "OnPlayerCommandText")
Das liegt nicht an meiner include sondern an OCMD und der ersteller möchte es nicht Updaten ![]()
Aber danke für dein Feedback
Den Fehler hab ich dank @BlackAce
Die Funktion hat es nicht so bei Mehrdimensionalen Array´s, darum hat er mir die Fehler ausgegeben
Einfach mal den Namen neu getten und es ging ![]()
Außerdem glaube ich nicht, dass du es so benutzen kannst:
Doch da das richtig ist und da hängt er nicht fest
Ich versteh nicht wiso er bei der hmm anweisung zickt
Nabend zusammen
Ich habe gerade ein Problem, das sich nicht lösen lassen will.
Es geht um den Command:
bcmd:kick(playerid,params[])
{
new bool:hmm=false;
if(playerid==-1)
{
hmm=true;
goto da;
}
if(!CheckAdmin(playerid,1))
return ADMError(playerid,1);
da:
new pID,string[128];
if(sscanf(params,"uz",pID,string))
return SendClientMessage(playerid,cRed,"/kick [playerid] ([grund],optional)");
if(!IsPlayerConnected(pID))
return SendClientMessage(playerid,cRed,"Die ID kann nicht gefunden werden");
format(string,sizeof(string),"[AdmCMD] %s wurde von %s gekickt. "ccOrange"Grund: %s",PlayerInfo[pID][Name], hmm?BotName:PlayerInfo[playerid][Name], string[0]?string:"<Kein Grund>");//Fehler?
SendClientMessageToAll(cRed,string);
Kick(pID);
return 1;
}
Seit dem ich eine Abfrage gemacht habe ob der user die id -1 hat (-1 = Anticheat) will er nicht so recht wie es soll.
Der Fehler ist der:
expected token: "-string end-", but found "-identifier-"
Ich habe mal das weggelassen:
hmm?BotName:PlayerInfo[playerid][Name]
Dann ging auch alles, nur die Abfrage bewirkt ja ob es vom Anticheat gesendet wird oder nicht, da ich ja auch den Namen mitsenden möchte wenn es -1 ist.
Wo soll da ein Fehler sein?
Ich such schon verzweifelt aber ich kann nichts finden, daher hoffe ich auf rat von euch
//nachtrag
Wenn ich das so mache:
bcmd:kick(playerid,params[])
{
new bool:hmm=false;
if(playerid==-1)
{
hmm=true;
goto da;
}
if(!CheckAdmin(playerid,1))
return ADMError(playerid,1);
da:
new pID,string[128];
if(sscanf(params,"uz",pID,string))
return SendClientMessage(playerid,cRed,"/kick [playerid] ([grund],optional)");
if(!IsPlayerConnected(pID))
return SendClientMessage(playerid,cRed,"Die ID kann nicht gefunden werden");
format(string,sizeof(string),"[AdmCMD] %s wurde von %s gekickt. "ccOrange"Grund: %s",PlayerInfo[pID][Name], (hmm)?(BotName):(PlayerInfo[playerid][Name]), (string[0])?(string):("<Kein Grund>"));//Fehler?
SendClientMessageToAll(cRed,string);
Kick(pID);
return 1;
}
schmiert mir der Compiler ab
Ich hab echt keine Ahnung wo der Wurm sitzt
Naja für anfänger ist das MySQL system garnicht geeignet.
Mit den System lässt man den Server ordentlich quälen, das man garnicht muss
Das mit den Interiors find ich mal vernünftig, das du da nicht alles mit pickup deklarierungen zuspammt (haste sicherlich nach mein Tut gemacht
)
Das finde ich lohnt sich nicht, da man das ganz schnell selber machen kann wie man es z.B. bei nen Zoll system macht
Ihr könnt ja mit der Include abfragen ob er an der schranke XX ist, wenn ja könnt ihr das ja alles per Command machen ![]()
Um einen Spieler zu laden habe ich maximal 4 Querys
1 Für die Daten
maximal 3 für Autos des Spielers
Das Laden dauert nichmal ne Sekunde und auch die Bots haben einen Account womit ich das gut testen kann
Laut gettickcount brauch der bei 50 Spielern um alles zu speichern gute 5 Sekunden und das ist nicht langsam