aber mal als info hier ist PAWN Bereich
Codirung gibt es in einen anderen Bereich
Seine Frage war, ob Pawn auch solche loops hat, also ist dein Kommentar mehr als unnötig. Bitte in Zukunft genauer lesen um solche Kommentare zu vermeiden.
aber mal als info hier ist PAWN Bereich
Codirung gibt es in einen anderen Bereich
Seine Frage war, ob Pawn auch solche loops hat, also ist dein Kommentar mehr als unnötig. Bitte in Zukunft genauer lesen um solche Kommentare zu vermeiden.
Zitatnumber of arguments does not match definition
In der Regel bedeutet es einfach nur, dass du eine Funktion falsch benutzt, da du paramter falsch benutzt.
Zitatunreachable code
kommt immer, wenn du kein Code erreichen kannst, zum Beispiel wenn du sowas hast:
if(!strcmp(cmdtext,"/test")){
SendClientMessage(playerid,Rot,"huhu");
return 1; <------------------------- Wegen dem Return kann der untere Code niemals erreicht werden, so entstehen diese "unreachable code" fehler.
SendClientMessage(playerid,Rot,"huhu");
return 1;
}
Hallo,
Ich habe mich gefragt ob es in Pawn eine ähnliche Schleife bzw. Funktion gibt wie diese Schleife bei einer PHP-MySQL Abfrage:
Klar, ganz normale while und for loops.
Das habe ich schon getan, allerdings habe ich da nur sachen gefunden wie ich es MIT befehl bewege, was ich aber ja nicht möchte
Ich helf dir mal bisschen.
- SetTimer
- IsPlayerInRangeOfPoint
- IsPlayerAnAdmin
- MoveObject
- CreateObject
so, jetzt geh mal herausfinden, was du mit diesen Stichwörtern anfangen kannst, denke mal, dass du es dann sicherlich hinbekommst
sondern?
Wir brauchen in irgendeiner Form entweder das ganze Script oder den Teil, der das Problem verursacht.
Globaler Timer, jede Millisekunde abfragen ob ein Admin in der Nähe ist, wenn ja öffnen.
Ich berichtige es mal bisschen :<
ZitatGlobaler Timer, jede Sekunde abfragen ob ein Admin in der Nähe ist, wenn ja öffnen, wenn offen und kein Admin in der nähe ist, schließen.
@Cleriker:
Dann schlage ich erstmal vor, dass du dir Tutorials anguckst, denn wir wollen dir schließlich nicht ein Script schreiben, nech?
Nichts leichter als das.
Was hast du denn bereits geschrieben?
Der, der lesen kann, ist klar im Vorteil. Es steht klar und unmissverständlich "BEISPIEL" drunter und auch drüber
Wer lesen kann ist klar im Vorteil, da hast du recht. Deswegen solltest du auch keine Beispiele reintun die mit dem Thema nichts zutun haben. Er wollte Strings "zuweisen" und nicht addieren, daher ist dein Beispiel eher schwachsinnig, meinst du nicht?
da alles gelöst ist, denke ich mal, dass ein /close fein wäre.
War die Syntax von "dini_Get" nicht ohne Angabe eine String-Länge?
Beispiel:dini_Get(file,"Ip");
Desweiteren ist es leider nicht richtig, die Auslese-Funktion mit einem String gleichzusetzen, daher:
(Beispiel)
strcat(gPlayerInfo[playerid][PLAYER_IP],dini_Get(file,"Ip"));
(Beispiel entnommen aus sa-mp wikipedia)
strcat ist hier falsch. Er will keine 2 Strings verbinden, du kannst es zwar benutzen, wenn du dafür sorgst dass der 1. String immer leer bleibt, aber das ist doch schwachsinnig
Du müsstest uns erstmal Verraten um welches Script es sich handelt.
So aber nicht!
Du kannst keine Strings wie Interger zuweisen. Du musst mit solchen Sachen ganz anders umgehen.
Statt:
BusinessInfo[idx][bOwner] = dini_Get(file,"bOwner",24);
BusinessInfo[idx][bName] = dini_Get(file,"bName",128);
musst du:
format(BusinessInfo[idx][bOwner],32,dini_Get(file,"bOwner");
format(BusinessInfo[idx][bName],128,dini_Get(file,"bNamer");
machen.
Ich würd dir einfach mal "IsVehicleBike", "IsVehicleCar", "IsVehicleAirplane" usw. empfehlen, ist viel übersichtlicher und die Funktionen exestieren auch schon irgendwo. Einfach googlen, und dann if(IsVehicleBike(vehicleid) { blabla
wäre mir neu!
Ich glaube sowas müsste man immer vorher selbst als Funktion oder Stock definieren.
Also erstmal benutze doch bitte kein ocmd wenn du auch keine Parameter benutzt, wäre nämlich sinnfrei.
Ich denke du bist generell bisschen durcheinander geraten in deinen Zeilen. Allein bei /quitjob die Meldung "Du hast bereits einen Job" ist seltsam
Ich würde den Stock erstmal ändern:
stock HatPlayerAnNebenJob(playerid)
{
if(GetPVarInt(playerid,"Jobstatus")>=1)return 1;
return 0;
}
Dann würde ich Quitjob erstmal in das ändern:
if(!strcmp(cmdtext,"/quitjob"))
{
if(!HatPlayerAnNebenJob(playerid)return SendClientMessage(playerid,DUNKELROT,"Du bist bereits arbeitslos.");
if(!IsPlayerInRangeOfPoint(playerid,2.0,358.4476,180.6003,1008.3828))return SendClientMessage(playerid,DUNKELROT,"Du bist nicht am tresen bei /quitjob");
{
ShowPlayerDialog(playerid,DIALOG_QUITJOB,DIALOG_STYLE_MSGBOX,"Job Kündigen","Willst du deinen Job Wirklich Kündigen ?","Ja","Nein");
}
return 1;
}
Und bei /jobs:
if(!strcmp(cmdtext,"/quitjob"))
{
if(HatPlayerAnNebenJob(playerid)return SendClientMessage(playerid,DUNKELROT,"Du hast bereits einen Job!");
if(!IsPlayerInRangeOfPoint(playerid,2.0,358.3224,184.6619,1008.3828))return SendClientMessage(playerid,DUNKELROT,"Du bist nicht am /jobs Tresen");
{
ShowPlayerDialog(playerid,DIALOG_JOBS,DIALOG_STYLE_LIST,"Job Liste","Taxifahrer\nMüllman","Auswählen","Schließen");
}
return 1;
}
Wäre einfacher denk ich