//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
-
-
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?