Einen Server mit vielen Bucks zu starten ist dumm, such dir so 10 Leute mach auf den Server ein pw und mach eine Beta phase von ner Woche. Dannach würde ich den Server richtig (und hoffentlich mit viel weniger Bucks) starten.
Beiträge von [DT]Sniper
-
-
Ich glaube da gibt es kein limit, nur der server wird beim laden langsamer.
-
Musst dann aber noch, wenn du ein login/register system hast, gLeader[playerid] abspeichern.
-
Ist doch kalr ist doch von mir
-
ganz oben:
forward getIPfromString(string[]);ganz unten:
public getIPfromString(string[]) {
new round = 0, lastchars = 0;
for(new i = 0; i < strlen(string); i++) {
if(round == 0 && string[i] == '.') {
round = 1;
} else if(round <= 3 && string[i] == '.' && lastchars <= 3 && lastchars >= 2) {
round += 1;
lastchars = 0;
} else if(round == 3 && string[i] == ':' && lastchars <= 3 && lastchars >= 2) {
round += 1;
lastchars = 0;
} else if(round >= 1) {
lastchars++;
}
}
printf("%d %d", round, lastchars);
if(round == 4) {
return 1;
} else {
return 0;
}}
in dem befehl wie /o (/ooc)
if(getIPfromString(result))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "SCRIPT: %s wurde wegen Werbung gekickt!", sendername);
SendClientMessageToAll(COLOR_RED,string);
KickLog(string);
SendClientMessage(playerid, TEAM_CYAN_COLOR, "Keine Werbung!");
Kick(playerid);
return 0; // GANZ WICHTIG!
}
das sehe dann bei ooc ca. so aus:
Spoiler anzeigen
if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " You havent logged in yet !");
return 1;
}
if ((noooc) && PlayerInfo[playerid][pAdmin] < 1)
{
SendClientMessage(playerid, COLOR_GRAD2, " The OOC channel wurde von einem Admin deaktieviert !");
return 1;
}
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, " You can't speak, you have been silenced !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/o)oc [ooc chat]");
return 1;
}
if(getIPfromString(result))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "SCRIPT: %s wurde wegen Werbung gekickt!", sendername);
SendClientMessageToAll(COLOR_RED,string);
KickLog(string);
SendClientMessage(playerid, TEAM_CYAN_COLOR, "Keine Werbung!");
Kick(playerid);
return 0;
}
format(string, sizeof(string), "(( %s: %s ))", sendername, result);
OOCOff(COLOR_OOC,string);
printf("%s", string);
}
return 1;
}
Bei OnPlayertext ist das bei GF so:
public OnPlayerText(playerid, text[])
{
new giver[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new tmp[256];
new string[256];
new giveplayerid;
if(getIPfromString(text)) {
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "SCRIPT: %s wurde wegen Werbung gekickt!", sendername);
SendClientMessageToAll(COLOR_RED,string);
KickLog(string);
SendClientMessage(playerid, TEAM_CYAN_COLOR, "Keine Werbung!");
Kick(playerid);
return 0;
} -
ok mach das so:
dein forward umändern zu
forward Maut();
und deine funktion zu:public Maut()
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
new stringziel[256];
new playrname[MAX_PLAYER_NAME];if(PlayerToPoint(5.0, playerid, 144.2668,-1374.6394,49.6506) || PlayerToPoint(5.0, playerid, 1181.9232,-677.2064,62.3592))
{
GetPlayerName(playerid, playrname, sizeof(playrname));
format(stringziel, sizeof(stringziel), "%s Setting.ini", playrname);
new number = dini_Int(stringziel, "Maut");
if(number == 1)
{
}
else if(number == 0)
{
SendClientMessage(playerid, COLOR_GREY, "TELEMAUT: Du hast die Mautstation passiert. Kosten: 25$ . Bitte fahre weiter zur Entwerungsstation!");
GivePlayerMoney(playerid, -25);
new schondrin = dini_Int("Maut.ini", "Kasse");
dini_IntSet("Maut.ini", "Kasse", schondrin+25);
dini_IntSet(stringziel, "Maut", 1);
}
}
}
return 1;
} -
ich kann dir meins geben mussr es nur in jeden chat einbauen und dafür musst du etwas scripten können, mache aber 2 beispiele anhand von gf aber nur wenn du willst.
-
Ist ja kein Problem jeder fängt mal klein an aber wichtig ist ranhalten nicht aufgeben.
-
zeigmal wie du den timer startest. Also die zeile Settimer oder so.
-
Sorry aber ich muss sagen dass die map shr dürftig und detail arm ist. Di Titanic war ein großes shr schönes schiff und deins sieht erher aus wie Schiffsrumpf+Häuser+Schornsteine+Schiffsschraube.
Also dass hätte man viel schöner machen können.
Mein Tipp das nächste mal mehr zeit fran setzten, viel mehr um jede kleinigkeit kümmern etc.
2/10 Punkten -
enterpage und ja ist html mann kann aber auch php benutzen.
-
wie/wo hast du den timer eingefügt?
-
Probiers mal so:
public OnPlayerLogin(playerid,const string[])
{
new pname2[MAX_PLAYER_NAME];
new pname3[MAX_PLAYER_NAME];
new string2[64];
new string3[128];
GetPlayerName(playerid, pname2, sizeof(pname2));
format(string2, sizeof(string2), "%s.cer", pname2);
new File: UserFile = fopen(string2, io_read);if (UserFile)
{
new valtmp[128];
fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPasswort], valtmp, 0, strlen(valtmp)-1, 255);if ((strcmp(PlayerInfo[playerid][pPasswort], string, true, strlen(valtmp)-1) == 0))
{
new key[128],val[128];
new Data[128];
while(fread(UserFile,Data,sizeof(Data)))
{
key = ini_GetKey(Data);
if( strcmp( key , "Kills" ,true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
if( strcmp( key , "Deaths",true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
if( strcmp( key , "Geld" ,true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
if( strcmp( key , "Bank" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pBank] = strval( val ); }
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]); // wenn ich das lösche dann wird das geld nicht gespeichert!
}
fclose(UserFile);
gPlayerLogged[playerid] = 1;
gPlayerAccount[playerid] = 1;
new kills = PlayerInfo[playerid][pKills];
SetPlayerScore(playerid, kills);
GetPlayerName(playerid, pname3, sizeof(pname3));
format(string3, sizeof(string3), "Willkommen %s, du hast dich erfolgreich eingeloggt!", pname3);
SpawnPlayer(playerid);
SendClientMessage(playerid, WEIS,string3);
}
else
{
Versuche[playerid]++;
if(Versuche[playerid] == 1) { SendClientMessage(playerid, ROT, "Falsches Passwort noch 2 versuche"); }
else if(Versuche[playerid] == 2){ SendClientMessage(playerid, ROT, "Falsches Passwort letzte chance bevor du gekickt wirst"); }
else if(Versuche[playerid] > 2) { Kick(playerid); }fclose(UserFile);
}
}
return 1;
} -
wenn es kein haus vom einzelspieler sein soll brauchst du einen Mapper.
-
Also soweit ich weß gibt es kein stadthallen ähblibhes gebäde außer das lvpd und ich weiß nicht ob du das für iwas brauchst.
-
Was genau meinst du den mit Kaufhaus? Bitte genauer erläutern.
-
ok ich schreibe dich dann morgen abend an.
-
SetPlayerInterior(playerid,0);
da ich denke dass du bei den Koordianaten die du angegeben hast nicht in einem Interrior bist musst du dass so machen. -
nö habe ich leider nicht ist aber ne nette idee bin nur heute auf einer Lan und kann deswegen nicht so große Sachen scripten, soll aber auf GF basieren oder?
Wenn ja wäre es am einfachsten für uns beide wenn du mir Samstag abend dein Script sendest und ich dir das rein mache, da es schon ein haufen arbeit ist. würdest das script dann am Sonntag morgen wieder bekommen, müsstest mir nur vertrauen. -
du meinst das man sich aus suchen kann was man will? Und Ein Vertrag soll eine Grundgebür haben und z.b 6 Cent/$ die minute kosten dafür hat preüaid karte keine Grundgebühr, geht iwann leer und kostet 10Cent/$ also so dass sich ein Vertrag bei vielem Telefonieren mehr rentieren würde?