$ Dago $ Hier:
Beiträge von Blackshadowscript
-
-
Es gibt gute Scripter Anthony die sowas ohne probleme gute Systeme schreiben könne.
Du bringst ja keine idden hier in dein Beitrag aus nur deine Meinung "So was bringt kein Spaß. So was wäre unreal. Ein kompetenten Scripter haben der sowas umsetzen kann"Ich kann von den ganzen guten System leider nur träumen da ich nicht so weit bin mit dem scripten.
Und das mit den Aliens das wäre sehr geil für ein reinen Reallife-Script das keine RP sachen drin hat.
Denn wenn du dich mit der Geschichte befassen würdest wäre dir auf gefallen das es immer noch ein Geheimnis ist das Bermudadreieck und das Geheimnis um Arena 52. Es heißt zwar es sei belegt worden das alles nur Fake aber wer garantiert dir so was?Da muss ich BangBus recht geben das du meintest Anthony:
"Ich muss dir keine direkten Systeme nennen.
Es geht hier einfach darum das diese Idee relativ sinnlos ist, meiner Meinung nach.
Natürlich ist das mal was neues, aber was willst du denn mit sowas, das bringt ja nicht wirklich was. :p"Das heißt für mich klartext: Bots müssen Bus,Motorrad,Boot,Flugzeug,Autos fahren, Boots müssen durch die Welt gehen und dabei irgendwelche Texte abspielen.
Für mich ist es einfach nur langweilig mit Boots zu arbeiten. Kein wunder das die meisten auf Java gegangen sind für samp weil man da mehr Freiheiten hat was das Scripten an geht.
So kann man komplexere System schreiben die bestimmt 10-20mal besser als in PWN sind aber das war klar das es irgendwann dazu kommen musste. -
Anthony du redest immer so viel von Tolle System hast auch mal vorschläge was für System die auch mal was neues wären?
-
Für alle noch mal:
Wenn Ihr auf Windows 10 geht müsst ihr von euren Grafikkarten den Triber erneuern und je nach Hersteller euer Grafikkarte habt Ihr Programme dafür.
Bei NVIDIA habt Ihr so was. -
Das mit den Aliens für Reallife-Server wäre sehr an das Reale Leben gesetzt. Weiß du was in Arena 52 für Sachen liegen?
Wer weiß vielleicht sind ja Aliens in Area 52 und die Army hat es seit all den Jahren immer nur verheimlicht.
Ich sage nur Schaut euch mal die Serie Star Gate an das kommt auch nicht einfach so aus dem Himmel die Idde.
Die Idde kam nur zustande weil es immer noch die Gerüchte gibt das Area 52 Hochentwickelte Teschnologische Waffen da habe so wie Aliens. Das dringt zwar nie ganz durch aber man kann
immer davon ausgehen das es vielleicht war ist. -
Dann sag doch mal bitte was für dich besser umsetzbar wäre
-
Anthony dann sag doch mal bitte nach deiner Meinung was für bessere Sachen man umsetzen kann?
-
Deine Grafikkarte aktuallisieren
-
phN ich glaube kaum das du dir alle beiträge angesehen hast. Ich lass die Gebiete in ein Enum und das Enum lass ich dann in den sInfo abspeichern.
-
Es wäre mal was neues
-
Das wegen dem UFO Lichtstrahl Interior Experimente geht zwar schon nur das mit den Aliens das ist nicht machbar. Die Experimente könnte aus ein Mann eine Frau machen und umgekehrt
-
Ich habe mit mein Hauptaccount das Gebiet gekauft. Ich habe mir dann noch mal ein neuen Account gemacht und mit dem konnte ich leider wieder das gebiet kaufen. Was habe ich falsch gemacht?
-
Ich habe es so in mein Befehl eingebaut:
ocmd:kaufefirmengelaende(playerid,params[])
{
if(sInfo[playerid][firma] != -1)return SendClientMessage(playerid,rot,"Fehler: Du Besitzt bereits eine Firma!");
for(new i;i<sizeof(Firmengebiete);i++)
{
if(IsPlayerInRangeOfPoint(playerid, 4.0, Firmengebiete[i][F_KaufX], Firmengebiete[i][F_KaufY], Firmengebiete[i][F_KaufZ]))
{
if(strlen(Firmengebiete[i][F_Besitzer]) > 2) return SendClientMessage(playerid, 0xFF0000FF, "Error: Diese Firma gehört bereits jemandem.");
GetPlayerName(playerid, Firmengebiete[i][F_Besitzer], MAX_PLAYER_NAME);
//Hier das Label aktualisieren.
sInfo[playerid][firma]= i;
GivePlayerMoney(playerid,-5000000);
return SendClientMessage(playerid, 0xFFFFFFFF, "Gekauft.");
}
}
return SendClientMessage(playerid, 0xFF0000FF, "Du bist nich am Kaufpunkt des Firmengelhaändes!");
} -
Das kaufen der Firmengelände geht zwar nur mein Problem ist halt das man die Gebiete 2mal kaufen kann und nicht nur 1mal. Das hießt Spieler X kauft sich ein Firmengelände z.B. Stadthalle und dann kommt Spieler Y und kann sich auf die Stadthalle kaufen wie mach ich das
man das Gebiet nur 1mal kaufen kann das wenn ein Spieler es hat nicht noch mal kaufen kann? -
Einmalig kann man von GFS nicht reden. Aber ich stimme dir mit Projekt auf machen voll und ganz zu
-
Ich finde es einfach nur schade das sich kaum noch Leute an ein Selfmade wagen.
Warum der Server + Script abgegeben werden ist irgendwie schade.
-
Leider funktioniert es immer noch nicht Jeffry:
Habe neuen Account erstellt und er setzt direkt in der Datenbank auf 0 und nicht auf -1.
Ich habe auch grade echt kein plan wie ich es entbuggen kann.Hier sind Bilder:
Hier der Code:
sInfo für abspeichern in denn Spielerinfo:
/enum bereich:
enum playerInfo{
eingeloggt,
level,
db_id,
alevel,
fraktion,
rang,
spawnchange,
firma
}Firmengeländeenum:
enum Firmengeleande
{
Float:F_MinX,
Float:F_MinY,
Float:F_MaxX,
Float:F_MaxY,
Float:F_KaufX,
Float:F_KaufY,
Float:F_KaufZ,
F_Price,
F_Object,
Text3D:F_Label,
F_Besitzer[MAX_PLAYER_NAME]
}Firmengelände richtig zuweisen:
new Firmengebiete[][Firmengeleande] =
{
{647.8892,-1384.1666,786.2288,-1329.5417,777.5681,-1379.9337,13.6566,5}
};Spielerverbindet+Speichern+Neusetzen und Verlassen des Server:
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
new nachricht[128];
format(nachricht,sizeof(nachricht),"Du bist mit der ID %i verbunden.",playerid);
SendClientMessage(playerid,rot,nachricht);
//Login/Register:
new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),"SELECT id FROM user WHERE username='%s' ",name);
mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
SendClientMessage(playerid,grün,"Willkommen auf Reallife Version 0.1.4! Wir wünschen euch ein angenehmen Spiel spaß bei uns!");
//textdraws anzeigen:
TextDrawShowForPlayer(playerid,Text:uhrzeitLabel);
TextDrawShowForPlayer(playerid, Jahr);
SetPlayerColor(playerid,weiß);
sInfo[playerid][level]=1;
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][firma]=-1;
return 1;
}
savePlayer(playerid)
{
if(sInfo[playerid][eingeloggt]==0)return 1;
//Speichern level,money
new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i',firma='%i' WHERE id='%i' ",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][firma],sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
resetPlayer(playerid)
{
for(new i=0; i<sizeof(sInfo[]); i++)
{
sInfo[playerid][playerInfo:i]=0;
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
savePlayer(playerid);
resetPlayer(playerid);
loadPlayerCars(playerid);
return 1;
}Der Kaufbefehl:
ocmd:kaufefirmengelaende(playerid,params[])
{
if(sInfo[playerid][firma] != -1)return SendClientMessage(playerid,rot,"Fehler: Du Besitzt bereits eine Firma!");
for(new i;i<sizeof(Firmengebiete);i++)
{
if(IsPlayerInRangeOfPoint(playerid, 4.0, Firmengebiete[i][F_KaufX], Firmengebiete[i][F_KaufY], Firmengebiete[i][F_KaufZ]))
{
GetPlayerName(playerid, Firmengebiete[i][F_Besitzer], MAX_PLAYER_NAME);
//Hier das Label aktualisieren.
sInfo[playerid][firma]= i;
GivePlayerMoney(playerid,5000000);
return SendClientMessage(playerid, 0xFFFFFFFF, "Gekauft.");
}
}
return SendClientMessage(playerid, 0xFF0000FF, "Du bist nich am Kaufpunkt des Firmengelhaändes!");
}OnPasswordResponse:
public OnPasswordResponse(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
//passwort Richtig
sInfo[playerid][eingeloggt] = 1;
sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
sInfo[playerid][firma] =cache_get_field_content_int(0,"firma",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
loadPlayerCars(playerid);}
else
{
//Passwort Falsch
SendClientMessage(playerid,grün,"Du hast dein Passwort falsch eingetippt. Versuche es nochmal!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
}
return 1;
}Der Dialog teil wurde aus dem ganzen Public OnDialogResponse kopiert:
Register/Login:
if(dialogid==DIALOG_LOGIN)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[256],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
}
else
{
//Keine Eingabe
SendClientMessage(playerid,grün,"Gibt bitte dein Passwort ein.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
}
}
else
{
Kick(playerid);
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[256],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>5)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s',MD5('%s'), '1')",name,passwort);
mysql_function_query(dbhandle,query,false,"","");
sInfo[playerid][level]=1;
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][firma]= -1;
}
else
{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,helblau,"Dein Passwort muss mindestens 6 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Account Erstellung","Gebe bitte nun dein gewünschtes Passwort ein!","Erstellen","Abbrechen");
}
}
else
{
Kick(playerid);
}
} -
Wenn ich mir ein Gelände kaufen will sagt er mir "Du Besitzt bereits eine Firma!"
Und ich weiß jetzt auch nicht den fehler:
Er setzt in der Datenbank das Firma nicht auf -1 sondern direkt auf 0 und das will ich ja nicht das man direkt am Anfang ein Firmengelände besitzt.sInfo für abspeichern in denn Spielerinfo:
/enum bereich:
enum playerInfo{
eingeloggt,
level,
db_id,
alevel,
fraktion,
rang,
spawnchange,
firma
}Firmengeländeenum:
enum Firmengeleande
{
Float:F_MinX,
Float:F_MinY,
Float:F_MaxX,
Float:F_MaxY,
Float:F_KaufX,
Float:F_KaufY,
Float:F_KaufZ,
F_Price,
F_Object,
Text3D:F_Label,
F_Besitzer[MAX_PLAYER_NAME]
}Firmengelände richtig zuweisen:
new Firmengebiete[][Firmengeleande] =
{
{647.8892,-1384.1666,786.2288,-1329.5417,777.5681,-1379.9337,13.6566,5}
};Spielerverbindet+Speichern+Neusetzen und Verlassen des Server:
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
new nachricht[128];
format(nachricht,sizeof(nachricht),"Du bist mit der ID %i verbunden.",playerid);
SendClientMessage(playerid,rot,nachricht);
//Login/Register:
new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),"SELECT id FROM user WHERE username='%s' ",name);
mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
SendClientMessage(playerid,grün,"Willkommen auf Reallife Version 0.1.4! Wir wünschen euch ein angenehmen Spiel spaß bei uns!");
//textdraws anzeigen:
TextDrawShowForPlayer(playerid,Text:uhrzeitLabel);
TextDrawShowForPlayer(playerid, Jahr);
SetPlayerColor(playerid,weiß);
sInfo[playerid][level]=1;
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][firma]=-1;
return 1;
}
savePlayer(playerid)
{
if(sInfo[playerid][eingeloggt]==0)return 1;
//Speichern level,money
new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i',firma='%i'WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][firma],sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
resetPlayer(playerid)
{
for(new i=0; i<sizeof(sInfo[]); i++)
{
sInfo[playerid][playerInfo:i]=0;
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
savePlayer(playerid);
resetPlayer(playerid);
loadPlayerCars(playerid);
return 1;
}Der Kaufbefehl:
ocmd:kaufefirmengelaende(playerid,params[])
{
if(sInfo[playerid][firma] != -1)return SendClientMessage(playerid,rot,"Fehler: Du Besitzt bereits eine Firma!");
for(new i;i<sizeof(Firmengebiete);i++)
{
if(IsPlayerInRangeOfPoint(playerid, 4.0, Firmengebiete[i][F_KaufX], Firmengebiete[i][F_KaufY], Firmengebiete[i][F_KaufZ]))
{
GetPlayerName(playerid, Firmengebiete[i][F_Besitzer], MAX_PLAYER_NAME);
//Hier das Label aktualisieren.
sInfo[playerid][firma]= i;
GivePlayerMoney(playerid,5000000);
return SendClientMessage(playerid, 0xFFFFFFFF, "Gekauft.");
}
}
return SendClientMessage(playerid, 0xFF0000FF, "Du bist nich am Kaufpunkt des Firmengelhaändes!");
}OnPasswordResponse:
public OnPasswordResponse(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
//passwort Richtig
sInfo[playerid][eingeloggt] = 1;
sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
sInfo[playerid][firma] =cache_get_field_content_int(0,"firma",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
loadPlayerCars(playerid);}
else
{
//Passwort Falsch
SendClientMessage(playerid,grün,"Du hast dein Passwort falsch eingetippt. Versuche es nochmal!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
}
return 1;
}Der Dialog teil wurde aus dem ganzen Public OnDialogResponse kopiert:
Register/Login:
if(dialogid==DIALOG_LOGIN)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[256],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
}
else
{
//Keine Eingabe
SendClientMessage(playerid,grün,"Gibt bitte dein Passwort ein.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
}
}
else
{
Kick(playerid);
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[256],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>5)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s',MD5('%s'), '1')",name,passwort);
mysql_function_query(dbhandle,query,false,"","");
sInfo[playerid][level]=1;
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][firma]= -1;
}
else
{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,helblau,"Dein Passwort muss mindestens 6 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Account Erstellung","Gebe bitte nun dein gewünschtes Passwort ein!","Erstellen","Abbrechen");
}
}
else
{
Kick(playerid);
}
} -
Falls wer den selben Fehler haben sollte hier die Lösung:
!ACHTUNG! Es wurde bei mir aus dem Script kopiert und hier rein gestellt. Bitte beachtet das ihr es richtig einsetzt.!
if(dialogid==DIALOG_LOGIN)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[256],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
}
else
{
//Keine Eingabe
SendClientMessage(playerid,grün,"Gibt bitte dein Passwort ein.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Anmelden","Abbrechen");
}
}
else
{
Kick(playerid);
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[256],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>5)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username, passwort, level) VALUES ('%s',MD5('%s'), '1')",name,passwort);
mysql_function_query(dbhandle,query,false,"","");
sInfo[playerid][level]=1;
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][firma]= -1;
}
else
{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,helblau,"Dein Passwort muss mindestens 6 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Account Erstellung","Gebe bitte nun dein gewünschtes Passwort ein!","Erstellen","Abbrechen");
}
}
else
{
Kick(playerid);
}
} -
was ist neu gekommen?