Ist die Map auf dem Platz wo dere freidhof in SA gibt?
Beiträge von ChristianW
-
-
-
Hey Com,
Ab 15: 30 beginne ich damit ein Freundesystem zu schreiben:
Ich sage dirket schonmal ich weiss nicht wie ich es angehen soll daher nicht wundern!
URL: Stream
Habe den Livestrema schon an aber mache noch Buggfixxes und so weiter
Mfg
-
20 Seks editiert Werbung copy paste Server gesposnort 0 / 10000
BÜIITTER
-
Ist das der Friedhof
-
-
Habe Zeit gib mir die IP
-
Aufgerufen wird er ganz normal
if(!strcmp(cmd,"/corpse",true))
{
if(PlayerInfo[playerid][pJob] == 36)
{
new vid = GetPlayerVehicleID(playerid);
if(IsBestatterVeh(vid))
{
new str[100],endstr[1000], counter = 0;
for(new i2 = 0; i2 < MAX_BESTATTER; i2++)
{
new Float:X1 = BestatterInfo[i2][Todx], Float:X2 = BestatterInfo[i2][Tody], Float:X3 = BestatterInfo[i2][Todz];
if(counter <= MAX_BESTATTER)
{
if(IsPlayerInRangeOfPoint(playerid,200.0,X1,X2,X3))
{
format(str,sizeof(str),"Verstorbener: %s\n",BestatterInfo[i2][Opfer]);
strcat(endstr,str);
counter ++;
}
else if(BestatterInfo[i2][Angenommen] == 1)
{
format(str,sizeof(str),"Fall: %s in Bearbeitung von %s\n",BestatterInfo[i2][Opfer],BestatterInfo[i2][Auftragnehmer]);
strcat(endstr,str);
counter ++;
}
else
{
format(str,sizeof(str),"Slot nicht in Nutzung\n");
strcat(endstr,str);
counter ++;
}
}
}
ShowPlayerDialog(playerid,DIALOG_CORPSE,DIALOG_STYLE_LIST,"Aufträge von Pixel Roleplay",endstr,"Auswählen","Beenden");
return 1;
}
return SendClientMessage(playerid,WHITE,"Du bist in keinem Leichenwagen!");
}
return SendClientMessage(playerid,WHITE,"Du bist kein Bestatter!");
} -
Ich weiß aber natürlich nicht, wie du den Befehl genau haben willst. Als Denkanstoß sollte es aber reichen.
Okay das muss ich mir merken ;DKAnnst du mr auch noch bei dme anderen Thread helfen siehe Profil letze Beiträge
-
Ist ja schön und gut, aber die return's müssen raus. Überleg dir doch einfach mal logisch, was passiert, wenn du den Befehl eingibst. Wenn ein return auftaucht, bricht die Schleife ab, ob du es glaubst oder nicht.
Wie du es machen kannst:So?
ocmd:takecorpse(playerid,params[])
{
new text[36];
for(new i = 0; i < MAX_BESTATTER; i++)
{
if(PlayerInfo[playerid][pJob] == 36)
{
if(BestatterInfo[i][Bestatterid] != playerid)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,BestatterInfo[i][Todx],BestatterInfo[i][Tody],BestatterInfo[i][Todz]))
{
if(BestatterInfo[i][Bestatterid] == playerid)
{
if(!IsPlayerInAnyVehicle(playerid))
{
if(sscanf(params,"s",text))
{
if(strcmp(text,BestatterInfo[i][Opfer],true))
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"** Du hast eine Leiche aufgesammelt!");
SendClientMessage(playerid,COLOR_LIGHTBLUE,"** Gehe nun zum Kofferraum und gebe ein /laycorpse!");
DestroyPickup(TotenKopf[bestattervar[playerid]]);
Delete3DTextLabel(TotenLabeli[bestattervar[playerid]]);
KillTimer(totentimer[BestatterInfo[i][Spielerid]]);
hatleiche[playerid] = 1;
bestatterpoint[playerid] = 1;
}
else { return SendClientMessage(playerid,WHITE,"Falscher Name, bitte schreibe vollständig den Namen!"); }
}
else { return SendClientMessage(playerid,WHITE,"Nutzung: /takecorpse [Name der Leiche]"); }
}
else { return SendClientMessage(playerid,WHITE,"Du darfst nicht in einem Fahrzeug sein!"); }
}
else { return SendClientMessage(playerid,WHITE,"Dieser Auftrag gehört dir nicht!"); }
}
else { return SendClientMessage(playerid,WHITE,"Du bist nicht bei der Leiche"); }
}
else { return SendClientMessage(playerid,WHITE,"Dieser Auftrag gehört dir nicht"); }
}
else { return SendClientMessage(playerid,WHITE,"Du bist kein Bestatter"); }
}
return 1;
}Wenn da kein return ist dann kommt die MEssage 20 mal ?
-
Hey Com,
Wenn ciha uf ein Listitem klicke passiert rein garnichts?
if(dialogid == DIALOG_CORPSE)
{
for(new i = 0; i < MAX_BESTATTER; i++)
{
if(!response)
if(listitem == i)
{
if(hatauftragid[playerid] == 1) { SendClientMessage(playerid,WHITE,"Du hast noch einen Auftrag!"); }
new Float:X1 = BestatterInfo[i][Todx], Float:X2 = BestatterInfo[i][Tody], Float:X3 = BestatterInfo[i][Todz];
if(IsPlayerInRangeOfPoint(playerid,200.0,X1,X2,X3) && BestatterInfo[i][Angenommen] == 0)
{
new Namei[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid,Namei,sizeof(Namei));
BestatterInfo[i][Bestatterid] = playerid;
BestatterInfo[i][Angenommen] = 1;
format(BestatterInfo[i][Auftragnehmer],24,"%s", Namei);
bestattervar[playerid] = BestatterInfo[i][Spielerid];
format(string,sizeof(string),"** Du hast den Fall von %s angenommen!",BestatterInfo[i][Opfer]);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
SetPlayerCheckpoint(playerid,BestatterInfo[i][Todx],BestatterInfo[i][Tody],BestatterInfo[i][Todz],5.0);
KillTimer(totentimer[BestatterInfo[i][Spielerid]]);
totentimer[BestatterInfo[i][Spielerid]] = SetTimerEx("totenkopfding",50000,0,"i",BestatterInfo[i][Spielerid]);
hatauftragid[playerid] = 1;
}
else if(IsPlayerInRangeOfPoint(playerid,200.0,X1,X2,X3) && BestatterInfo[i][Angenommen] == 0) { SendClientMessage(playerid,WHITE,"Fehler, unaufrubarer Slot!" }
}
}
}
Woran liegt das -
Nein die return's raus. Damit brichst du die gesamte Schleife ab, wie beim break. Das break kannst du aber drin lassen. Musst den Code umschreiben, dass du alles ohne return's hast, außer du willst, dass die Schleife abbricht.
Mfg
Aber in meinen anderen gehts auch soll ich da dann else schreiben? -
Kann auch nicht gehen. Wenn du bei diesem Code nicht bei der ersten Person (Id 0) stehst, bricht er die gesamte Schleife ab und gibt dir die Nachricht heraus.
Mfg
Wie vermeid eich das? das break raus oder wie? -
Seit dem neusten SSCANF Update soweit ich weiß.
Aber was hatd ie sscanf abfrage mir isplayerinrangeofpoint abfrage zutunEdit: Habe wohl das alte Sscandf liegta ber daran nicht
-
Neuerdings muss bei
if(sscanf(params,"s",text)) s auch immer die Größe angegeben werden.
Mach mal mit
if(sscanf(params,"s[36]",text))
Seit 0.3x? -
und wo wird etwas in die bestatterinfo geschrieben
Beim Todfor(new ix = 0; ix < MAX_BESTATTER; ix++)
{
if(BestatterInfo[ix][Inuse] == 0)
{
BestatterInfo[ix][Spielerid] = playerid;
format(BestatterInfo[ix][Opfer],24,"%s",Namei);
BestatterInfo[ix][Todx] = Tod[0];
BestatterInfo[ix][Tody] = Tod[1];
BestatterInfo[ix][Todz] = Tod[2];
BestatterInfo[ix][TodesGeld] = floatround(ergebnis);
BestatterInfo[ix][Angenommen] = 0;
BestatterInfo[ix][Inuse] = 1;
format(BestatterInfo[ix][Auftragnehmer],24,"No-One");
break;
}
else print("A Fail has found, yet");
}Edit bei der Bestatterid 0 gehts aj bei der darüber nicht?
-
BestatterInfo[i][Todx]
wo definiert?
Ist in dem Enum definiertenum Bestatter
{
Spielerid,
Bestatterid,
Opfer[24],
Float:Todx,
Float:Tody,
Float:Todz,
TodesGeld,
Angenommen,
Auftragnehmer[MAX_PLAYER_NAME],
Inuse
}
new BestatterInfo[MAX_BESTATTER][Bestatter]; -
Hey Com,
Immer wenn ich /takecorpse eingebe und die Bestatterid nicht 0 ist steht da du bist bei keiner Leiche
Wieso ist das so
Code:
ocmd:takecorpse(playerid,params[])
{
new text[36];
for(new i = 0; i < MAX_BESTATTER; i++)
{
if(PlayerInfo[playerid][pJob] != 36) return SendClientMessage(playerid,WHITE,"Du bist kein Bestatter!");
if(BestatterInfo[i][Bestatterid] != playerid)
if(!IsPlayerInRangeOfPoint(playerid,5.0,BestatterInfo[i][Todx],BestatterInfo[i][Tody],BestatterInfo[i][Todz])) return SendClientMessage(playerid,WHITE,"Du bist bei keiner Leiche!");
if(BestatterInfo[i][Bestatterid] != playerid) return SendClientMessage(playerid,WHITE,"Dieser Auftrag gehört dir nicht!");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,WHITE,"Im Auto ist es nicht möglich eine Leiche aufzuheben!");
if(sscanf(params,"s",text)) return SendClientMessage(playerid,WHITE,"Nutzung: /takecorpse [Name]");
if(strcmp(text,BestatterInfo[i][Opfer],true)) return SendClientMessage(playerid,WHITE,"Falscher Name, schreibe den Namen bitte Vollständig aus!");
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"** Du hast eine Leiche aufgesammelt!");
SendClientMessage(playerid,COLOR_LIGHTBLUE,"** Gehe nun zum Kofferraum und gebe ein /laycorpse!");
DestroyPickup(TotenKopf[bestattervar[playerid]]);
Delete3DTextLabel(TotenLabeli[bestattervar[playerid]]);
KillTimer(totentimer[BestatterInfo[i][Spielerid]]);
hatleiche[playerid] = 1;
bestatterpoint[playerid] = 1;
break;
}
}
return 1;
}Danke
-
ees ist s2 kein DIni
-
Kannst du mir denn evtl mal was mappen und ich scripte ;D