Danke euch allen
Und ums trinken mach dir mal keine Sorgen... morgen ist ja eh Schule -.-
PS: Es gibt bereits einen Geburtstagsthread, wo das dann eigentlich reingehöhrt... nur ich mag den hier nicht löschen^^
Beiträge von KeksOfDeath
-
-
Dann mach ihn ganz nach unten vom public
-
Is der Code in nem FS?
Steht der Code ganz unten am public? -
//ganz nach oben:
new Float:aax[MAX_PLAYERS], Float:aay[MAX_PLAYERS], Float:aaz[MAX_PLAYERS], hat[MAX_PLAYERS], inte[MAX_PLAYERS];
//da, wo du ihn killst
GetPlayerPos(playerid,aax[playerid],aay[playerid],aaz[playerid]);
inte[playerid]=GetPlayerInterior(playerid);
hat[playerid]=1;
//OnPlayerSpawn:
if(hat[playerid]==1) {
SetPlayerPos(playerid,aax[playerid],aay[playerid],aaz[playerid]);
hat[playerid]=0;
SetPlayerInterior(playerid,inte[playerid]); }
PS: 1600. Post -
Häh? Der Befehl ist dafür da, um ein Fahrzeug zu reparieren und ncihit, um es so abzuspeichern
Was du meinst wäre sowas:
if(strcmp(cmdtxt,"/fixieren",true)==0) {
if(GetPlayerState(playerid)==2) {
new Float:x, Float:y, Float:z, aid=GetPlayerVehicleID(playerid), mid=GetVehicleModel(aid), Float:za;
GetVehiclePos(aid,x,y,z);
GetVehicleZAngle(aid,za);
DestroyVehicle(aid);
aid=CreateVehicle(mid,x,y,z,za,-1,-1,-1);
PutPlayerInVehicle(playerid,aid,0); }
return 1;
} -
Ich meine den Code von /fixveh
-
ForceClassSelection(playerid);
SetPlayerHealth(playerid,0);
Ja, man muss ihn danach töten -
Dafür müsstest du ma den Code posten
-
Kommen da Errors? Funktioniert es nicht?
-
Immernoch falsch^^
//ganz nch oben:
forward Nachrichten();
//ganz nach unten:
public Nachrichten() {
new texte[]= { "text1","text2","text3" };//kannst selbst erweitern oder kürzen
new a=random(sizeof(texte));
SendClientMessageToAll(FARBE,texte[a]);
return 1;
}
//OnGameModeInit:
SetTimer("Nachrichten",600000,1); -
Das ist eine unnötige Abfrage, wenn er nicht connected ist, wie soll er den Befehl dann eingeben?
PS: Die Abfrage überprüft nicht, ob er eingeloggt ist, sondern ob der Spieler aufm Server ist -
Bei SetPlayerCheckpoint fehlt der Radius
SetPlayerCheckpoint(playerid,x,y,z,radius); -
Kann es sein, dass du i-wo "new playerid;" stehen hast?
-
Nochmal neu hingeschrieben, hatte ein Denkfehler, der ist jetzt behoben...
Dafür ist dort jetzt ein Scriptfehleru nd ich bkomme ihn nicht behoben, ich schildere ihn mal:
Auszug ausm Script:
new s[128];
if(gla2==0) {
printf("5 z: %d gla2: %d",z,gla2);
format(s,sizeof(s),"%s",text);//in dieser Zeile wird z=0
printf("7 z: %d gla2: %d",z,gla2); }
else {
printf("5 z: %d gla2: %d",z,gla2);
format(s,sizeof(s),"%s",text[gla2+z]);//in dieser Zeile wird z=0
printf("7 z: %d gla2: %d",z,gla2); }
Auszug aus der LogZitat[14:06:40] 5 z: 1 gla2: 0
[14:06:40] 7 z: 0 gla2: 0
Und für den zweiten Durchlauf:
[14:06:40] 5 z: 1 gla2: 125
[14:06:40] 7 z: 0 gla2: 125
Ich habe ja die Zeilen markiert, in dieser Zeile "format(s..." überschreibt sich "z" einfach undi ch weiß nicht, warumDieser Scriptfehler hat aber keine großen Auswirkungen, wenn der Text länger als 256 Zeichen ist, dann ist anfangs ein Leerzeichen zu viel
PS: Dennoch möcht ich mich für das nette Feedback bedanken
-
Das siehste ja Beispiele:
Register SystemPS: dini_Get - liest einen Text aus der Datei | dini_Int - liest ein Intergerwert aus der Datei | dini_Float - liest einen Float (Gleitkommawert) aus der Datei
dini_Set - schreibt einen Text in die Datei | dini_IntSet - schreibt ein INtergerwert in die Datei | dini_FlaotSet - schreib einen Float in die Datei -
Dafür musst mal den public ein bissl verändern (ich glaub, dass es so ist, sowas hat noch nie jemand gefragt^^)
//ganz nach oben:
new darfconnecten[MAX_PLAYERS];
//OnPlayerConnect:
public OnPlayerConnect(playerid) {
if(darfconnecten[playerid]==0) {
GameTextForPlayer(playerid,"Objekte werden geladen",5000,5);
SetTimerEx("OnPlayerConnect",5000,0,"d",playerid);//in 5 sekunden darf er erst connecten
darfconnecten[playerid]=1;
return 0; }
return 1;
}
//ONPlayerDisconnect:
darfconnecten[playerid]=0;
Bin mir halt nicht sicher, obs so funktioniert -
Lieber mal so (beim anderen hätte jeder Wanteds vergeben können):
if(!strcmp(strget(cmdtext,0),"/su"))
{
if(gTeam[playerid]==TEAM_POLICE) {
if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid,COLOR_GREY,"Benutze: /su [ID]");
new verbrecher = strval(strget(cmdtext,1)),
wanted = GetPlayerWantedLevel(verbrecher);
SetPlayerWantedLevel(verbrecher,wanted+1);
SendClientMessage(verbrecher,COLOR_RED,"Du hast ein Verbrechen begangen (+1Wanted)"); }
else { SendClientMessage(playerid,COLOR_GREY," Du bist kein Polizist!"); }
return 1;
} -
Man kann keine Texte eingeben, die länger als 128 Zeichen sind^^ (also, wenn man "t" drückt und losschreibt)
Aber für sowas wie "Name sagt: Text" wäre dies schon wieder möglich, da der Text so 151 Zeichen lang werden kannPS:
Sehr sehr sehr sehr nutzvoll^^
Danke -
Es ist zwar nur ein kleiner Code, aber dennoch dachte ich mir, ihn mal zu posten...
Kennst du es auch, wenn du Nachrichten hast, wo du nicht weißt, ob sie zu lang sind?
Ich persönlich habe dann immer zu viele Nachrichten versendet, die nebenbei gesehen noch zu kurz waren (wie auch bei unserer automatischen Fahrschule)
Da dacht ich mir, entwickel mal ne Funktion, die die Texte dann "durchschneidet" und erst, wenn 128 Zeichen erreicht sind, so viel gibt das Textfeld von sa:mp her, sendet er den Textu nd packt das übrige in einen neuen Text.
Dieser Code schneidet den Text dann noch passend in Stücke, sodass kein zusammenhängendes Wort, esseidern es ist länger als 128 Zeichen, kaputt geht, ich habe im Script jetzt mal das stehen:
LangeNachricht(playerid,blau,"ajgklajklgajgklaj aklgjalkgjalkgjal jaglk ajlkgjalkgjalkgjalkgja aklgjaklgjaklgjalk agkljaklgjaklgjakl aklgjaklgjaklgjaklgj akgjaklgjaklgjaklgj aklgjaklgjalkgjal akgjaklgjaklgjalkg aklgjalkgajkl gajklgakajaklg klagjaklgjaklgjal jalkgja ljaglkgjaklgjalkgjalkgj aklgjaklgjalkgjalk agkjalkgjalkgjalkgj agkjalkgjaklgjaklgj akgjalkgjalkgjalkgj lajglkajglkagjla alagkjalkga",0);
Und die Funktion macht mir das daraus:Zur Funktion:
//ganz nach unten:
stock LangeNachricht(playerid,farbe,text[],an=0) {
new gla, st=strlen(text), gla2;
hier: {
if(st>128) {
new s[128];
if(gla2==0) {
format(s,sizeof(s),"%s",text); }
else {
format(s,sizeof(s),"%s",text[gla2+1]); }
for(new i=0; i<128; i++) {
if(s[i]==' ') {
gla=i; }}
format(s[gla],sizeof(s)," ");
if(an==0) {
SendClientMessage(playerid,farbe,s); }
else {
SendClientMessageToAll(farbe,s); }
st-=gla;
gla2+=gla;
goto hier; }
}
if(st<=128) {
if(gla2>=1) {
new s[128];
format(s,sizeof(s),"%s",text[gla2+1]);
if(an==0) {
SendClientMessage(playerid,farbe,s); }
else {
SendClientMessageToAll(farbe,s); }
}
else {
if(an==0) {
SendClientMessage(playerid,farbe,text); }
else {
SendClientMessageToAll(farbe,text); }
}
}
return 1;
}
Der Spieler würde diese Nachricht jetzt ohne Probleme zugesendet bekommen//EDIT: Funktion 3 mal bearbeitet
Was ist neu?
Es wurde ein "an" hinzugefügt
LangeNachricht(playerid,FARBE,text[],an);
Wenn man bei "an" eine 0 (oder gar nichts) einträgt, wird diese Nachricht an eine Person, der playerid gesendet, wenn man bei "an" 1 einträgt, wird die Nachricht an alle gesendet (bei "playerid" trägt man dann irgendwas ein, wird da ja nicht mehr gebraucht) -
Ich würd ma sagen, dass du was falsch gemacht hast...
Mit mehr Code könnte man dir vllt auch sagen, was es ist