//OnPlayerCommandText:
if(strcmp(cmdtext,"/timer",true)==0) {
stimer=SetTimerEx("sweniger",60000,1,"ddd",5,0,0);//die "5,0,0" heißt: 5 Tage, 0 Stunden, 0 Minuten, kannst du beliebig umstellen
return 1;
}
//ganz nach unten:
public sweniger(t,s,m) {
if(t==0 && s==0 && m==0) {
KillTimer(stimer);
SendClientMessageToAll(FARBE,"Das Rennen beginnt");
return 1; }
if(m==0) {
if(s==0) {
t--;
s=24;
m=59; }
else {
s--;
m=59; }}
else {
m--;
new s[60];
format(s,sizeof(s),"Es sind noch %d Tage, %d Stunden und %d Minuten",t,s,m);
SendClientMessageToAll(FARBE,s); }
return 1;
}
//OnGameModeInit:
forward sweniger(t,s,m);
new stimer;
Beiträge von KeksOfDeath
In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
-
-
Für dini:
ONPlayerDisconnect:
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
dini_IntSet("score.ini",name,GetPlayerScore(playerid));
//OnPlayerConnect:
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
SetPlayerScore(playerid,dini_Int("score.ini",name));
//OnGameModeInit:
if(!dini_Exists("score.ini")) { dini_Create("score.ini"); }Ich will das ganze haben wie geht das! Ich habe das hier noich nie gemacht!
Und weißt du, wie sich das anhöhrt? Wie i-son kleines Kind im Supermarkt, das ein Lolli haben will, aber die Mutter "nein" sagt
-
Dannyyyy
Jo, alles gute -
Oder du nimmst was anderes... [INC]Objekt sanft rotieren lassen
if (strcmp(cmdtext, "/auf", true) == 0)
{
GivePlayerMoney(playerid,-100);
SetObjectRot(adminzivigate, 0.0000, 359.1406, 180.0000);
return 1;
}
if (strcmp(cmdtext, "/zu",true) == 0)
{
SetObjectRot(adminzivigate, 0.0000, 89.3814, 180.0000);
return 1;
}
So kommt die Meldung nciht mehr -
-
Zitat
for(new i =0;1 < MAX_PLAYERS;i++){
Anstatt die "1" muss dort ein "i" stehen -
Nein?
if (strcmp("/kill", cmdtext, true, 5) == 0)
Mit der "5" hinter dem "true" sagst du aus, dass der cmdtext 5 Zeichen lang ist. Das heißt, dass das Script die ersten 5 Zeichen ( / k i l l ) als cmd ansieht und die restlichen als Parameter, die hier aber nicht gefragt werden ----> du köntest "/killfahfklaha" eingeben und es würde immernoch funktionieren, nimmst du jetzt aber die ",5" weg, dann sieht er das ganze als cmdtext ---> Unknown Command -
Indem du als Adresse z.b. sowas angibst:
"logs/kicklog.txt"
Dann nimmt er die File "kicklog.txt" aus dem Ornder "logs" -
Deine Methode ist aber ein wenig kurz gedacht...
Stell dir mal vor, er hat 10 Score, dann bekommt er jede Sekunde 1000$
Dann geht er ma eben 5 Stunden afk...
Da würd ich dann eher ne neue Variable einführen ("new lscore[MAX_PLAYERS];")
Dann:
if(GetPlayerScore(i) == 10 && lscore[i]<10)
{
SendClientMessage(i, COLOR_YELLOW, "Dein Score ist nun auf 10 gestiegen, dafür bekommst du 1000$");
GivePlayerMoney(i,1000);
lscore[i]=10;//die setzt du immer wieder auf den letzen scorewert
return 1;
} -
//ganz nach oben:
new imdm[MAX_PLAYERS];
//beim cmd /dm:
imdm[playerid]=1;
// /leave:
if(strcmp(cmdtext,"/leave",true)==0) {
imdm[playerid]=0;
SpawnPlayer(playerid);
return 1;
}
//ONPlayerSpawn:
if(imdm[playerid]) {
SetPlayerPos(playerid,x,y,z); }
Für die Randomspawns gibts hier auch ein Tutorial, das kannste dir angucken -
Du erstellst ne neue Varaible ("new eingeloggt[MAX_PLAYERS];")
Beim Login setzt du sie auf 1 ("eingeloggt[playerid]=1;"), wenn er spawnen will fragst du sie ab, das machst du in OnPlayerRequstSpawn ("if(eingeloggt[playerid]==0) { return 0; }") -
Weed:
//OnGameModeInit:
if(!dini_Exists("sstats.ini")) { dini_Create("sstats.ini"); }
sstats[0]=dini_Int("sstats.ini","tode");
sstats[1]=dini_Int("sstats.ini","kills");
//OnGameModeExit:
dini_IntSet("sstats.ini","tode",sstats[0]);
dini_IntSet("sstats.ini","kills",sstats[1]);
Dafür brauchst du die Include dini@Luka:
if(strcmp(cmdtext,"/dm",true)==0)
{
if(IsSpielerInDM[playerid] == 0)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s has entered DM (/dm)", name);
SendClientMessageToAll(0xAA3333AA, string);
SetPlayerPos(playerid,2208.0815,2189.2583,103.8786);
ResetPlayerWeapons(playerid);
GameTextForPlayer(playerid,"Welcome to /DM",4000,6);
GivePlayerWeapon(playerid, 26, 8000);
GivePlayerWeapon(playerid, 32, 8000);
SetPlayerHealth(playerid, 100.0);
SetPlayerArmour(playerid, 100.0);
IsSpielerInD[playerid] = 1;
}
else {
IsSpielerInDM[playerid] = 0;
ResetPlayerWeapons(playerid);
SetPlayerHealth(playerid, 0);
SetPlayerPos(playerid,2000.5702,1538.4266,13.5859);
}
return 1;
} -
-
Du verwendest gTeam oder?
if(strcmp(cmdtext,"/tc",true,3)==0) {
if(!strlen[cmdtext[4])) return SendClientMessage(playerid,FARBE,"/tc Text");
new name[MAX_PLAYER_NAME], s[100];
GetPlayerName(playerid,name,sizeof(name));
format(s,sizeof(s),"%s: %s",name,cmdtext[4]);
for(new i=0; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(gTeam[i]==gTeam[playerid]) {
SendClientMessage(i,FARBE,s); }}}
return 1;
}s -
In OnGameModeInit: AddPlayerClass(...);
Der Rest passiert von alleine... oder versteh ich dich jetzt falsch? -
Ach sorry, hab ich vergessen^^
mach bei /leavedm noch das mit rein:
new s[100];
format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
TextDrawSetString(stats,s); -
//ganz nach oben:
new sstats[3], Text:stats;
///dm:
sstats[2]++;
new s[100];
format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
TextDrawSetString(stats,s);
///leavedm:
sstats[2]--;
//OnPlayerDisconnect:
if(IsSpielerInDM[playerid]) {
sstats[2]--;
new s[100];
format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
TextDrawSetString(stats,s); }
//OnPlayerDeath:
sstats[0]++;
if(killerid!=INVALID_PLAYER_ID) {
sstats[1]++;
new s[100];
format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
TextDrawSetString(stats,s); }
//OnPlayerConnect:
TextDrawShowForPlayer(playerid,stats);
//OnGameModeInit:
stats=TextDrawCreate(x,y,"Tode: 0, Kills: 0, im DM: 0"); -
Damit ist das aber für alle weg...
machs bei /dm so:
for(new i=0; i<MAX_PLAYERS; i++) {
ShowPlayerNameTagForPlayer(i,playerid,0);
SetPlayerMarkerForPlayer(i,playerid,ne farbe mit ner transparenz von 0); }
//EDIT: War zu langsam, aber dieses "if(IsPlayerConnected..." würdei ch nicht ausführen, sonst connected jemand neu, geht wieder nach /dm und schwupp sieht er dich -
Guck dur mal an, was du da geschrieben hast:
if(UC[playerid] == 1)
{
new pname[MAX_PLAYER_NAME],sendstr[128]; GetPlayerName(playerid,pname,sizeof pname);
format(sendstr,sizeof sendstr,"[UC] %s: %s",pname,text);
for(new i=0;i<MAX_PLAYERS;i++)//du lässt das script bis 200 zählen
{
if(GetDistanceBetweenPlayers(playerid,i) < 10)//du überprüfst, on id 0 (weil er von 0 b is 200 zählt) in deiner nähe ist
{
SendClientMessage(i,COLOR_YELLOW,sendstr);//du sendest den string (noch ist er bei ID 0, erst wen er einmal durch ist, fängt er mit der 1 an)
return 0;//baam du returnst und brichst das somit ab (schon bei ID 0)
}
}
}
Machs so:
if(UC[playerid] == 1)
{
new pname[MAX_PLAYER_NAME],sendstr[128]; GetPlayerName(playerid,pname,sizeof pname);
format(sendstr,sizeof sendstr,"[UC] %s: %s",pname,text);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(GetDistanceBetweenPlayers(playerid,i) < 10)
{
SendClientMessage(i,COLOR_YELLOW,sendstr);
}
}
return 0;
} -
Das mitm Dm geht so schlecht, da wir dazu noch wissen müssten, wie du das mitm DM geregelt hast, wenn man im DM stirbt, spawnt man dann wieder da?