Echt gutes Tutorial.
Gefällt mir, ist für einige bestimmt nützlich!
8/10 Fische unso
Echt gutes Tutorial.
Gefällt mir, ist für einige bestimmt nützlich!
8/10 Fische unso
echt nice 10/10
Joa sieht ganz gut aus, wenigstens nich so Copy&Paste.
9/10
Vielen Dank für das feedback ich biete eigentlich alle tutorials könnt euch gerne per pn melden und ich mache ein saftiges tutorial
ein schönes Tutorial 10/10
MfG
Dani
Gibt es schon aber gutes Tutorial.
9/10
Gut erklärt
10/10
Vielen Dank für das feedback
MFG
PAWN
Zum Thema i , i steht für Integer nicht id.
An deiner Stelle würde ich das einfach über eine Array laufen lassen und nicht über 2 Arrays und diverse unnötige Schleifen.
Zuzüglich möchte ich dich mal aufklären auf die verwendung von break in schleifen diese kannst du nutzen um die Schleife abzubrechen da es nicht umbedingt nötig ist
bei deinem call-befehl die schleife obwohl ein treffer erzielt werden konnte fortzuführen. Als weiterer Punkt ist es wenn du schon eine konstante Länge hast bei einem string so diese bei format auch zu nutzen da Konstante Werte immer schneller verarbeitet werden als dies erstmal auszulesen. Du hast ein kleinen Fehle runten bei OnPlayerText dies ist ein string also text kein integer.
Ich denk mal mit dem ersten Punkt wirst du nix anfangen können daher habe ich dir das mal umgeschrieben
new Anrufer[MAX_PLAYERS] ={ -1,...};
command(h, playerid, params[])
{
if(sStats[playerid][pHandy] <= 0)return SendClientMessage(playerid,Rot,"Du hast kein Handy");
if(Anrufer[playerid] == -1)return SendClientMessage(playerid,Rot,"Du wurdest nicht angerufen!");
new str[128];
format(str,128,"%s hat aufgelegt!",GetName(playerid));
SendClientMessage((Anrufer[playerid]-1),Rot,str);
format(str,128,"Du hast das Telefonat mit %s beendet!",GetName((Anrufer[playerid]-1)));
SendClientMessage(playerid,Gelb,str);
printf("Hier %d",Anrufer[playerid]);
Anrufer[(Anrufer[playerid]-1)] = -1;
Anrufer[playerid] = -1;
return 1;
}
command(call, playerid, params[])
{
if(sStats[playerid][pHandy] <= 0)return SendClientMessage(playerid,Rot,"Du hast kein Handy!");
if(Anrufer[playerid] != -1)return SendClientMessage(playerid,Rot,"Du telefonierst schon!");
extract params -> new nummer;else return SendClientMessage(playerid,Weiß,"Befehl : /call [nummer]");
if(nummer == sStats[playerid][sNummer])return SendClientMessage(playerid,Rot,"Du kannst dich nicht selber anrufen!");
for(new i; i<MAX_PLAYERS; ++i){
if(sStats[i][sNummer] != nummer)continue;
if(Anrufer[i] != -1)return SendClientMessage(playerid,Rot,"Dieser Spieler telefoniert schon!");
Anrufer[i] = playerid;
Anrufer[playerid] = i;
new str[128];
format(str,128,"%s ruft dich an, /p zum annehmen /h zum auflegen!",GetName(playerid));
SendClientMessage(i,Gelb,str);
format(str,128,"Du rufst %s an warte auf eine Antwort!",GetName(i));
SendClientMessage(playerid,Gelb,str);
break;
}
return 1;
}
command(p, playerid, params[])
{
if(sStats[playerid][pHandy] <= 0)return SendClientMessage(playerid,Rot,"Du hast kein Handy!");
if(Anrufer[playerid] == -1)return SendClientMessage(playerid,Rot,"Du wurdest nicht angerufen!");
new str[128];
format(str,128,"%s hat den Hörer abgenommen!",GetName(playerid));
SendClientMessage(Anrufer[playerid],Gelb,str);
SendClientMessage(playerid,Weiß,"Angenommen!");
Anrufer[Anrufer[playerid]] = playerid+1;
Anrufer[playerid] = Anrufer[playerid]+1;
return 1;
}
public OnPlayerText(playerid,text[])
{
if(Anrufer[(Anrufer[playerid]-1)] == (playerid+1))
{
new str[128];
format(str,128,"(Handy) %s : %s",GetName(playerid),text);
SendClientMessage((Anrufer[playerid]-1),-1,str);
return 0;
}
return 1;
}
wie oft wollt ihr den scheiß noch scripten ?
Es gibt schon gefühlte 200000 Stück.
fühlst dich jetzt stark?
Auch wenn es vllt schon öfter gibt, zeig mir mal eins, was so erklärt is..
Vielen dank erstmal
Was ich vergessen hab ,
ja man sollte an 1. stelle
Anrufer[MAX_PLAYERS] = -255;
HandyChat[MAX_PLAYERS] =-255;
machen
Dein Ernst?
Keine Speicherung nichts außerdem
ZitatAlles anzeigen
Das ist die variable sStats!
//Nummer erstellen
new randphone = 100000 + random(899999);
sStats[playerid][sNummer] = randphone;
Super Nummern können einfach doppelt vorkommen Klasse!
Solch einen Anbieter hab ich mir schon immer gewünscht
speicherung dein ernst??
Du musst deine speicherung ja selbst machen das ist nur das handysystem und kein lgoin & reg
Anrufer[MAX_PLAYERS] = -255;
HandyChat[MAX_PLAYERS] =-255;
Das wird aber nur für den Index 0 den Wert auf -255 setzen.
Außerdem sehe ich nirgendwo im Script,wo -255 anders behandelt wird als 0. Für einen ungültigen Wert einer SpielerID würde ich immer INVALID_PLAYER_ID nehmen. Ist mMn viel verständlicher,da daraus bereits hervor geht wofür der Wert stehen soll.
Gutes Tutorial konnte mich gut damit zurecht finden da ich auch gerade lerne Mfg
10/10
Ah un leute nun zu der speicherung der nummern!
include dini
new randphone = 100000 + random(899999);
sStats[playerid][sNummer] = randphone;
Checknummer(playerid);
stock Checknummer(playerid)
{
new pfad[128];
format(pfad,128,"/Nummern/%i.ini",sStats[playerid][Nummer]);
if(dini_Exists(pad) == 1) { sStats[playerid][sNummer] = sStats[playerid][sNummer] +1;
}
Ist auch nicht so der Knaller.
Jetzt mal abgesehen davon,dass die Datei auch nicht erstellt wird. Woher weisst du denn,dass die Zufallszahl + 1 frei ist wenn die generierte Zufallszahl belegt ist ?
dini_Exists(pad) pad oder pfad ?
stock Checknummer(playerid) stock kann weg.
new pfad[128];128 ist Bischen viel. 20 tut es auch.
ja hm stimmt auf das headspace hätt ich achten können und leute ein dini_Create(pfad); erstellen
Dankö
//Goldkiller: Das heißt wenn überhaupt heapspace. Du solltest dich mal in die Lage der Leser versetzen. Woher sollen die jetzt wissen,an welche Stelle dini_Create gehört ? Es kriegen sicherlich genug Leute selber hin,was ist aber dem dem Rest.
wenn ich dieses new mit randphone einfüge, crasht bei mir pawno ab.