Liest du eigentlich auch was die anderen schreiben?
Beiträge von Akino Kiritani
-
-
Nur das die MrMonat Videos an einigen Stellen soo Fehlerhaft sind, das ich davon abraten würde

-
du musst sie convertieren das machst du am besten auf convertffs.com
und das was raus kommt packst du dann in OnGameModeInit -
ocmd:makeleader(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig.");
new pID,fID;
new string[128],fraktid[30];
if(sscanf(params,"ui",pID,fID)) return SendClientMessage(playerid,TURKIS,"/makeleader [ID/Teil des Namens] [Fraktion]");
switch(fID)
{
case 0:{fraktid="Zivilist";}
case 1:{fraktid="Los Santos Police Departments";}
case 2:{fraktid="Ballas";}
case 3:{fraktid="Medic";}
}
format(string,sizeof(string),"Du wurdest von %s zum Leader der Fraktion %s ernannt.",Spielername(playerid),fraktid);
SendClientMessage(playerid,TURKIS,string);
SetPVarInt(pID,"Fraktion",fID);
return 1;
}So sollte es gehn
-
Weise den Chekpoints ne ID zu, prüfe ob der spieler in OnPlayerCheckPointEnter in dem Checkpoint ist, wenn ja erstellst du einfach den nächsten Checkpoint
Hier mal ein veraltertest Beispiel aus einem Tutorial
public abfahrpunkte() // ; <-- wahr fehler 1.
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(PlayerToPoint(1,i,262.9120,1153.5863,10.9575)) // Hier Fügt ihr die Coords von den Oben gesezten CP ein.
{
if(schulung[i] == 1)
{
SetPlayerCheckpoint(i,244.7255,1153.1910,11.9427, 5.0); // Hier den 2 Coord Punkt eintragen
SendClientMessage(i, COLOR_YELLOW2, "1Checkpoint Erreicht weiter zum 2.");
schulung[i] = 2;
}
}
else if(PlayerToPoint(1,i,262.9120,1153.5863,10.9575)) // Hier Fügt ihr die Coords von den Oben gesezten 2 CP ein.
{
if(schulung[i] == 2) // Hier auch um 1 Erhöhen
{
SetPlayerCheckpoint(i,244.7255,1153.1910,11.9427, 5.0); // Hier den 3 Coord Punkt eintragen
SendClientMessage(i, COLOR_YELLOW2, "1Checkpoint Erreicht weiter zum 2.");
schulung[i] = 3; //hier auch um 1 Erhöhen
}
} -
Du kannst ja z.B. 500 Bots Connecten lassen, und die Bots die du nicht brauchst kicken -> die Bots die du brauchst ham dann eine hohe id -> keiner merkts oder man stellt die Slot anzahl so ein das es nicht auffällt
-
Hast du auch oben
new PlayerText3D:Wanted[MAX_PLAYERS];
stehen?Und bei OnPlayerConnect
for(new j=0; j<MAX_PLAYERS; j++)
{
Wanted[playerid] = CreatePlayer3DTextLabel(j," ",0xF6B400F6,30.0,40.0,50.0,50.0,playerid);
}
Das?Und bei OnPlayerDisconnect
DeletePlayer3DTextLabel(playerid,Wanted[playerid]);
stehen ? -
oben im script
new PlayerText3D:Wanted[MAX_PLAYERS];
bei OnPlayerConnect
for(new j=0; j<MAX_PLAYERS; j++)
{
Wanted[playerid] = CreatePlayer3DTextLabel(j," ",0xF6B400F6,30.0,40.0,50.0,50.0,playerid);
}
deine funktion
public WantedShow()
{
new j,i;
new string[16];
for(; j!=MAX_PLAYERS; j++)
{
if(IsACop(j))
{
i=0;
for(; i!=MAX_PLAYERS; i++)
{
if(WantedLevel[i] > 0) // Standart Variable im Godfather
{
format(string, sizeof string, "Wantedlevel: %d",WantedLevel[i]);
UpdatePlayer3DTextLabelText(j,Wanted2[i],0xF6B400F6,string);
}
}
}
}
return 1;
}ungetestet, das sollte auch dein Anzeige Problem beheben

//Edit
bei OnPlayerDisconnect
Sollte noch
DeletePlayer3DTextLabel(playerid,Wanted[playerid]);
stehen -
Ehm mal aufs Datum geguckt?

Aber Btw suchst du noch sowas? -
dann haste die falsche SAMP Version
-
-
Nein es geht mir darum, das Objekte nur indirekt gescriptet werden, und mit Wasser wird das genauso sein.
-
kein Ding

@ll hört endlich auf returns in schleifen zu setzen...
nehmt breaks >.> -
und wenn du aus
for(new i = 0;i<MAX_PLAYERS; i++)
{
if(GetPVarInt(i, "Notruf") == 1)
{
SetPVarInt(playerid, "Hilfe", i);
return 1;
}
}
das machst
for(new i = 0;i<MAX_PLAYERS; i++)
{
if(GetPVarInt(i, "Notruf") == 1)
{
SetPVarInt(playerid, "Hilfe", i);
}
} -
Du hast auch ein / vor deinem Befehl vergessen
-
Manche Objecte buggen auch noch wenn man sie removed da sieht man dann folgendes wenn man direkt drauf guckt
Einige Objekte haben noch ein LOS(so heitßt das glaub ich) Objekt. du musst dann beide entfernen.
Am besten ist hat wenn du den Editor aum englischen Forum nimmst -
Du hattest die Klammern falsch gesetzt.
Du hastdie dialogid abgefragt
{
dann die response
{
was geschen lassen
} klammer zu gemacht
} wieder eine klammer zugemacht
und dann die response hier abgefragt das gehört aber zu dialog id.
wenn du das nicht speziell für die dialogid machst dann gilt das für alle Dialoge -
guck dir mal die Funktion RefreshPlayerNachShow in deinem Script an.
Dann vergleichst du sie mit RefreshPlayerNachShow(i); dann sollte dir eigentlich der Fehler auffallen -
So sollte das hinhaun

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_LOGIN)
{
if(response==0)
{
Kick(playerid);
SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen!");
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,ROT,"Das Passwort war nicht lang genug");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden, gib bitte das Passwort ein","Login","Abbrechen");
return 1;
}
else
{
Login(playerid,inputtext);
return 1;
}
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response==0)
{
Kick(playerid);
SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen!");
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,ROT,"Das Passwort war nicht lang genug");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein","Registrieren","Abbrechen");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}
return 1;
}Sorry für die einrückung
-
Wie wohl?
Ohne Schleife natürlichnew IP[16];
GetPlayerIp(playerid,IP, sizeof(IP));
format(iplog, sizeof(iplog), "Spieler: %s betrat den Server. Mit der IP: %s",pName,IP);
ADMChat(iplog,Admincmd);