[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Na also, dann doch so:
if(PlayerInfo[playerid][pLeader] == 1)
{
for(new pv = 0; pv < sizeof(PolizeiVehs); pv++)
{
if(!IsAnyPlayerInVehicle(PolizeiVehs[pv]))
{
SetVehicleToRespawn(PolizeiVehs[pv]);
}
}
for(new fc;fc<sizeof(FactionCars);fc++)
{
if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611)
{
if(FactionCars[fc][fFaction][0] == GetPlayerFaction(playerid))
{
if(!IsAnyPlayerInVehicle(FactionCars[fc][fCarid]))
{
DestroyAndCreateFactionCar(fc);
}
}
}
}
SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
return 1;
} -
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
for(new i = 0; i<sizeof(grovestreetcar); i++)
{
if(GetPlayerVehicleID(playerid) == grovestreetcar[i])
{
if(SpielerFraktion(playerid,1))
{
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,Weiß,"Du bist kein Grove Street Member!");
}
}
}
}
return 1;
}wie hau ich da jetzt die abfrage für fraktion 2 rein?
meine ersten versuche endeten mit 26 errors -
So zum Beispiel:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
for(new i = 0; i<sizeof(grovestreetcar); i++)
{
if(GetPlayerVehicleID(playerid) == grovestreetcar[i])
{
if(!SpielerFraktion(playerid,1))
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,Weiß,"Du bist kein Grove Street Member!");
}
}
}
for(new i = 0; i<sizeof(vagoscar); i++)
{
if(GetPlayerVehicleID(playerid) == vagoscar[i])
{
if(!SpielerFraktion(playerid,2))
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,Weiß,"Du bist kein Grove Street Member!");
}
}
}
}
return 1;
}Einrückung ist sehr wichtig, achte darauf.
-
Kann eine falsche einrückung schon zu viele errors führen auch wenn der code an sich komplett richtig gescriptet ist?
-
Nein, das führt nur zu Warnungen, aber durch die falsche Einrückung passieren sehr viele Fehler, und die führen dann zu Errors.
Generell sollte man auch Warnungen nicht ignorieren.
Also immer schön einrücken. -
Guten Tag ich bin es schon wieder unzwar bekomme ich ein Error in der Zeile 68
(68) : error 010: invalid function or declaration
else
-
Guten Tag ich bin es schon wieder unzwar bekomme ich ein Error in der Zeile 68
Ein paar Zeilen drüber und drunter wären schon nicht schlechtBzw einfach mal den Codeblock posten wo es vorkommt
-
public OnPlayerConnect(playerid){
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden bitte gebe nun dein Passwort ein","Login","Abbrechen"); } else { ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen.","Registrieren","Abbrechen");} -
Da fehlt die Abfrage, ob das Konto existiert.
Nutzt du MySQL oder Dateien? -
Dateien werde aber bald auf MYSQL umsteigen.
und wie macht man die Abfrage :D?
-
Dann schreibe es so.
Den Pfad (/users/) und die Dateiendung (.ini) musst du natürlich anpassen.public OnPlayerConnect(playerid)
{
new pfad[64], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(pfad, sizeof(pfad), "/users/%s.ini", name);
if(fexist(pfad))
{
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden bitte gebe nun dein Passwort ein","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen.","Registrieren","Abbrechen");
}
return 1;
} -
Heyho ich hab da eine Frage denn ich finde die antwort darauf nicht (suche Falsch). Wie kann man mehrere Befehl parameter abfragen?
Beispiel:
/box nehmen <Ware> <Anzahl>
/box verstauen <Ware> <Anzahl>Also das das /box entweder nehmen oder verstauen angegeben werden muss?
-
Sagen wir du nennst den ersten Parameter in sscanf befehl, dann würde dir Abfrage so aussehen:
if(!strcmp(befehl, "nehmen", true))
{}
else if(!strcmp(befehl, "verstauen", true))
{}
else return SendClientMessage(playerid, 0xFF0000FF, "Error, es geht nur nehmen oder verstauen."); -
Also so ganz bekomme ich das nicht hin. Wenn ich jetzt /supcar eingebe (sollte eigentlich Verwende: /supcar {FF9E00}[add/del] kommen) kommt der Dialog. Und wenn ich add/del eingebe dann kommt die Fehlermeldung.
ocmd:supcar(playerid,params[])
{
new tag[128];
if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
if(!sscanf(params, "s[128]",tag)) return SendClientMessage(playerid, GRAU, "Verwende: /supcar {FF9E00}[add/del]");
if(!strcmp(tag, "add", true)){
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, GRAU, "Du befindest dich bereits in einem Fahrzeug!");
ShowPlayerDialog(playerid,DIALOG_SUPCAR,2,"Supporter Autos","Sultan\nInfernus\nGolfcart\nMaverick","Spawn","Schliessen");
return 1;
} else if(!strcmp(tag, "del", true)){
SendClientMessage(playerid, GRAU, "Car Entfernen!");
} else return SendClientMessage(playerid, GRAU, "Verwende: /supcar {FF9E00}[add/del]");
return 1;
} -
Nutzt du die stock Funktion?
Dann schreibe es so:
if(!sscanf(params, "s",tag)) -
Ne ich hab das Plugin (wenn du das meinst). Also kein stock. Außerdem hatte ich Errors in der Konsole als ich ohne die [128] gemacht habe.
-
Ok, ja ich hab den Fehler grade gesehen.
if(!sscanf(params, "s[128]",tag))
zu:
if(sscanf(params, "s[128]",tag))Das Ausrufezeichen darf da nicht sein.
-
Ahh Danke es funktionert...
-
Woran liegt der Fehler?
format(string,sizeof(string),"<< %s wurde von ServerGuard gekickt. | Grund: DM in NO-DM (Warnung: 3/3) >>",sendername);
SendClientMessageToAll(COLOR_LIGHTRED,string);
KickPlayer(issuerid); -