Ist eig. nicht so schwer.
Habt ihr ein Login/Register System?
Beiträge von SoulMan
-
-
Thread wurde ja toll ausgearbeitet.
Finde, das kann man löschen, gibt ja bereits solch einen Thread.
Trotzdem aufmerksam von dir, den Neuen helfen zu wollen.
mfG
Walker//Bustabe ergänzt.
-
In etwa so
public policecar(playerid)
{
for(new i = 0; i < sizeof(policecars); i++)
{
if(GetPlayerVehicleID(playerid) == policecars[i] && pInfo[playerid][Fraktion]!= 4)
{
SendClientMessage(playerid,0xC8C8C8FF,"Du bist kein Mitglied des LSPD!");
RemovePlayerFromVehicle(playerid);
}
}
return 0;
}Bei public OnPlayerStateChange(playerid, newstate, oldstate)
machste
switch(newstate)
{
case PLAYER_STATE_DRIVER:
{
policecar(playerid);
}Die Namen natürlich zu deinen Variablen ändern.
mfG
Walker//Ganz oben natürlich
forward policecar(playerid); -
Die Beispiele sind ja klasse.
Danke für das kleine, aber nützliche Tutorial.
mfG
Walker -
Benutz zcmd.
Ist sehr schnell und einfach zu handhaben. strcmp kann man flooden, dadurch können Serverlaggs entstehen.
Solang du noch nicht sehr viel gescriptet hast, wäre es ratsam, umzusteigen.
Und dazu mit sscanf arbeiten.
mfG
Walker -
-
Einfach abfragen, welches Team er hat u. welchen Rank, wenn dies nicht stimmt,
RemovePlayerFromVehicle(playerid);
Wenn du noch fragen hast, melde dich.
mfG
Walker -
Was soll den der Timer bewirken?
Hab schon einen, der die Knastzeit ausrechnet.
Will das einbauen, bin aber nicht sicher.
mfG
Walker//Doppeltes Wort.
//2
Jetzt wird man jede Sekunde vor's LSPD gesetzt, wenn man gespawnt ist.
//3
Hab jetzt eingestellt, dass der Timer nur dann einsetzt, wenn man im Knast ist, aber wie es aussieht werden die sekunden doch nicht runtergezählt.. -
Ja genau, ty!
-
Wow, soweit war ich auch selber.
Es geht darum, dass ich noch nie mit Textlabeln gearbeitet habe.
Nur mit feststehenden.
mfG
Walker -
Hey, ihr Scripter!
Ich hab bis jetzt kaum mit 3D Textlabels gearbeitet und wollte mal fragen, ob ihr mir evtl.
sagen könntet, wie ich bei einem TextLabel für einen Spieler einen Wert aus dem Account eintragen lassen kann.
Also sowas wie %i Wanteds.
mfG
WalkerP.S.
Die Wiki half mir leider nicht.//Bustabe vergessen.
-
Sehr hilfreicher Beitrag..
Nein, ehrlich was soll das?//Kleiner Fehler.
-
Wäre nett, wenn du mir den Sinn dieser Zeilen auch noch erklärst..
mfG
Walker -
Ist vorhanden.
Trotzdem danke. Was gäbe es denn nun für Alternativen?
Solch ein Timer frisst doch sicher eine Menge Recourcen, nicht wahr?
mfG
Walker//Nachdem ich nun fast jeden erdenklichen Versuch unternommen hab, dieses Problem zu lösen, geb ich es langsam auf..
Kann mir wirklich niemand helfen? Wie sieht's denn mit einem Timer aus, der die Zeit immer aktualisiert?
Wie setz ich das um? -
Anfängertutorials gibt es schon genug.
Mach lieber etwas für Fortgeschrittene. Wantedsystem o.Ä.
mfG
Walker -
Okey, dann wird mir das wohl nicht wirklich mehr bringen.
Die Zeit soll beim Disconnect jedoch nicht weiterlaufen. Verstehe nur hierbei nicht, warum es
beim Prisonsystem ging. Da konnte ich halt die Zeit selbst angeben.
mfG
Walker -
-
Nein, hab ich noch nicht genutzt die public.
Ups. Hab aber auch keine Ahnung, wie ich diese nutzen soll.
Hab damit noch nie gearbeitet.
mfG
Walker//In der mysql.log gibt es bzgl. dem laden u. speichern der JailTime keine Probleme.
-
Zum Speichern
mysql_SetInt("Accounts", "JailTime", pInfo[playerid][JailTime], "Name", SpielerName[playerid]);
Zum Laden
pInfo[playerid][JailTime] = mysql_GetInt("Accounts", "JailTime", "Name", SpielerName[playerid]);mfG
Walker -
Speichern tu ich alles mit MySQL.
Das wird ja alles automatisch geladen/gespeichert.
Der Befehl zum einsperren geht so
COMMAND:einsperren(playerid,params[])
{
new pID;
if(sscanf(params, "u",pID))return SendClientMessage(playerid,0xC8C8C8FF,"/einsperren [ID/Name]");
if (!IsPlayerConnected(pID))return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler ist nicht online!");
if (pID == playerid)return SendClientMessage(playerid,0xC8C8C8FF,"Du kannst dich nicht selber einsperren!");
if(pInfo[playerid][Fraktion] != 4 && pInfo[playerid][Fraktion] != 9)return SendClientMessage(playerid,0xC8C8C8FF,"Du bist kein Cop/FBI!");
{
if(IsPlayerInRangeOfPoint(playerid,8,267.8802,82.1092,1001.0391) && pInfo[pID][Wanteds] >= 1)
{
new str[128],str2[128];
SetTimerEx("Jail",pInfo[pID][Wanteds] * 60000 * 3,false,"i",pID);
pInfo[pID][JailTime] = pInfo[pID][Wanteds] * 60000 * 3;
pInfo[pID][Wanteds] = 0;
SetPlayerWantedLevel(pID,0);
SetPlayerPos(pID,264.7867,82.0650,1001.0391);
SetPlayerInterior(pID,6);
SetPlayerVirtualWorld(pID,38);
format(str,sizeof(str),"<< %s hat den Verdächtigen %s eingesperrt >>",SpielerName[pID],SpielerName[playerid]);
format(str2,sizeof(str2),"Du wurdest von %s für %i Minuten eingesperrt!",SpielerName[playerid],pInfo[pID][JailTime]/60000);
SendClientMessageToAll(0xFF6347AA,str);
SendClientMessage(pID,0xFF6347AA,str2);
}
else return SendClientMessage(playerid,0xC8C8C8FF,"Du bist nicht an den Zellen oder der Spieler hat keine Wanteds!");
}
return 1;
}Es geht halt darum, die "JailTime" zu speichern und den Wert beim Spawn wieder zuzuteilen.
Aber der Wert im Account bleibt immer gleich, dadurch funktioniert das nicht wirklich. Sonst würde die Zeit ja nach jedem Relogg wieder hochgesetzt werden.
mfG
Walker//Pawn Code falsch gepostet