Dafür hast du 1tag gebraucht? Ziemlich lang.
sorry aber ich stoppe nicht die Zeit. Ich habe es in einem Tag erstellt und fertig!!-.-
Dafür hast du 1tag gebraucht? Ziemlich lang.
sorry aber ich stoppe nicht die Zeit. Ich habe es in einem Tag erstellt und fertig!!-.-
hey Leute,
ich suche jemand der mir kurz helfen kann, ich möchte meine Timer/Counter im script kurz testen. Das script ist nix besonderes ich will nur sichergehen ob das mit mehr als 1Person auf dem Server läuft.
Wenn ich über den localhost und den clienten connecte, laufen die timer/Counter iwie nicht richtig. Ich denke das könnte daran liegen... oder vielleicht wenn man das game pausiert ka
Kein Plan ob man das über LAN zu zweit testen kann aber ich denke mal über hamachi oder iwas sollte das schon laufen
Schreibt mir ne PM oder added mich Skype dann reden wir weiter
danke
k danke läuft ka ich dachte das läuft mit [MAX_PLAYERS]
@gamexios dein beitrag kannst du dir sparen irgendwelche tatsachen verdrehen und dann hier aufspielen mit 1-2zeilern...
thema erledigt
wozu den das kollege-.-
ich hab schon meine gründe warum das als prefix increment definiert ist
Hey Leute,
kurze Frage, wie erstell ich eine Variable die mir die Spieler die online sind verrät?
Zum Beispiel was simples wie
Sendclientmessage es sind %d spieler online.
Z.b.
Ich erstelle eine new Variable:
new variable[MAX_PLAYERS];
und erhöhe diese dann im Code:
++variable[MAX_PLAYERS];
Ist das korrekt?:D
Wird diese Variable überhaupt im debug modus bzw. LAN modus erhöht?
Wie löse ich das ganze, hoffe ihr versteht mein Problem.
danke
freut mich das es euch gefällt danke
werde versuchen komplizierteres Zeug rauszubringen oder dieses hier zu erweitern wenn mir was einfällt
das war jetzt auf die schnelle hingeklatscht nicht mehr als 1tag arbeit, dafür müsste ich mich dann demnächst nochmal ransetzen. Mal schauen ob ich auch die Lust dafür finde.
Du kannst versuchen das filterscript auseinanderzunehmen und einzeln in dein gamemode einfügen, wenn du probleme hast kanns dich ja per pm melden.
danke
Hey Leute,
ich veröffentliche hier mein allererstes Filterscript was ich bis jetzt gemacht habe, ich hoffe es gefällt euch ist zwar nix besonderes trotzdem immerhin etwas
Ich hoffe es hagelt nicht zuviel an kritik, vergebt mir bitte ich habe erst vor kurzen angefangen zu scripten da kann man nich viel erwarten.
Feature:
When Player dies:
-Spawn Player after 60 seconds in front of Los Santos Hospital
-Spawn Player with 50% of his health.
-Display Gametext for player when dead
-When a Player dies and disconnect from the game, he will spawn at hospital and have to wait 60seconds again.
Installation:
Damit das ganze auch Funktioniert benötigt ihr die includes Dini und y_timers Include von Y_LESS, wenn ihr diese nicht schon habt.
Dann nurnoch in der server.cfg unter filterscript einfügen,gamemode starten, sterben und freuen.
//edit: Hab vergessen zu erwähnen, dass ihr noch im Ordner scriptfiles einen Ordner erstellen müsst, diesen nennt ihr bitte Accounts.
Falls ihr den Namen des Ordners ändern möchtet, öffnet die *.pwn Datei und folgt der Anweisung.
Kleines Video zum Filterscript:
Download:
Download via. solidfiles - mit includes
Download via. pastebin
danke
thacoga308
lol das ist fast 1:1 vom einem öffentlichen script dessen namen ich nicht nennen werde übernommen worden. Und du schimpfst dich Profi
hi leute,
wie schaffe ich es das man nach dem man stirbt nicht mehr spawnt?
Ich brauch das für einen Death timer, wenn man im krankenhaus liegt soll man halt ne zeit lang warten und dann wieder gespawnt werden z.b.
Nur das Problem ist, dass er bei mir nach dem sterben nach 1-2sec respawnt also der automatismus, denk ich mal. wie krieg ich den weg ?
Ich benutze nirgends Spawnplayer o.ä
außer hier: // so in der art sieht mein timer aus (mit y_timers.inc)
timer TOTTimer[60000]()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(i,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
if(IsPlayerConnected(i))
{
if(dini_Int(Spielerdatei,"pTot") == 1)
{
dini_IntSet(Spielerdatei,"pTot",0);
SetPlayerVirtualWorld(i,0);
SetPlayerSpawn(i);
SpawnPlayer(i);
SendClientMessage(i, COLOR_LIGHTBLUE, "Du wurdest aus dem Krankenhaus entlassen!");
LoadAccount(i);
TogglePlayerControllable(i, 1);
}
}
}
return 1;
}
dieser wird in OnPlayerDeath verwendet mit: defer TOTTimer();
Ich Spawne immer in der luft irgendwo, fehlt da noch die onplayerstatechange und wenn ja was soll da rein das der nicht mehr spawnt
Ich hätte den Topic Spawn nach Tod unterdrücken? nennen sollen, wär wohl verständlicher
//*************************** EDIT ********************************** //
Hey da keiner antwortet
hier mein Code, mein Ziel ist es Den Spieler nach dem sterben nicht sofort nach 1-2sec zu spawnen.
public OnPlayerDeath(playerid, killerid, reason)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
dini_IntSet(Spielerdatei,"pTot",1); // 1 == WAHR 0 == FALSCH
if(dini_Int(Spielerdatei,"pTot") == 1)
{
SendClientMessage(playerid,COLOR_LIGHTBLUE, "Du wurdest schwer verletzt ins Krankenhaus gebracht!");
GameTextForPlayer(playerid, "~w~IN BEHANDLUNG ~n~~r~ DAUER CA. 60 SEKUNDEN", 5000, 3);
SetPlayerCameraPos(playerid, 1223.379028, -1333.354126, 33.809105);
SetPlayerCameraLookAt(playerid, 1178.824829, -1325.804077, 13.284119);
TogglePlayerControllable(playerid,0);
return 1;
}
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_SPAWNED)
{
new Float: lwx, Float:lwy, Float:lwz;
GetPlayerPos(playerid, lwx, lwy, lwz);
if(lwz > 530.0) //the highest land point in sa = 526.8
{
SetPlayerSpawn(playerid);
}
}
return 1;
}
timer SetPlayerSpawn[3000](playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
if(dini_Int(Spielerdatei,"pTot") == 1)
{
SetPlayerPos(playerid,1181.9417,-1323.1649,13.5815);
SetPlayerFacingAngle(playerid,260.3822);
TogglePlayerControllable(playerid,0);
defer TOTTimer();
return 1;
}
else
{
SetPlayerPos(playerid,1107.4147,-1796.2593,16.5938);
SetPlayerFacingAngle(playerid,89.0384);
SetPlayerCameraPos(playerid,1107.4147,-1796.2593,16.5938);
TogglePlayerControllable(playerid,1);
return 1;
}
}
timer TOTTimer[60000]()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(i,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
if(IsPlayerConnected(i))
{
if(dini_Int(Spielerdatei,"pTot") == 1)
{
dini_IntSet(Spielerdatei,"pTot",0);
SetPlayerVirtualWorld(i,0);
LoadAccount(i);
SetPlayerSpawn(i);
SpawnPlayer(i);
SendClientMessage(i, COLOR_LIGHTBLUE, "Du wurdest aus dem Krankenhaus entlassen!");
TogglePlayerControllable(i, 1);
}
}
}
return 1;
}
// hier noch meine login fkt wenn ihr euch für die interessiert :P
timer Login[3000](playerid,string:key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
{
if(SpielerInfo[playerid][Banned] == 1)
{
SendClientMessage(playerid, COLOR_GRAD2, "Dein Account wurde gebannt!");
Kick(playerid);
}
LoadAccount(playerid);
SetPlayerSpawn(playerid);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du hast dich erfolgreich eingeloggt!");
SpawnPlayer(playerid);
TogglePlayerControllable(playerid,1);
SpielerInfo[playerid][LoggedIn] = 1;
return 1;
}
else
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Passwort Falsch! Versuch es erneut!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Passwort eingeben:","Einloggen","Abbrechen");
return 1;
}
}
Meine Frage wäre dann noch, wird nach dem OnPlayerDeath cb das OnPlayerStateChange cb aufgerufen ?? wenn ja was mach ich falsch?:D wenn nein wie kann ich das anders machen?
hat sich erledigt habs iwie hinbekommen
hey Leute,
meine Frage wäre, ob und wie es möglich ist mit einem erstellten timer weiterzuarbeiten, ich erhalte die ID und was kann ich damit tun?
Dazu finde ich leider nicht genügend auskunft könnte mich da jemand aufklären
In Samp-wiki wird beschrieben wie man timer definiert,startet,verwendet(im einfachsten fall) und zerstört.
Mich interressiert es, ob es möglich ist den rückgabewert des timers oda den timer selbst in Bedingungen oder Schleifen etc. packen zu können?
z.B.
if(timervariable)
{
//tuh das
}
oder ähnlich. Oder kann man diese nur aufrufen und zerstören ?? ka:D
Also ich möchte dem Server sagen, WENN der timer zuende gelaufen ist bzw. ausgeführt ist, mach weiter mit dem iwas. Sozusagen das ganze Script stoppen solange der timer läuft dann weiterarbeiten
Ich kenst aus c/c++ das man dort pausieren und weiter machen kann wo man will, ist dies auch hier möglich ?
hoffe ihr versteht meine Problemstellung
danke
ruhig brauner, ruhig. Wenn ich mal so schaue was du für produktive Beiträge von dir abgibst...
schau in der include datei wo dini_intset und dini_get... definiert ist nach und überprüfe dann deine parameter
lag scheinbar echt an der md5 Verschlüsellung
ZitatEbenfalls schalte doch einfach während der Entwicklungsphase das Debugging ein. Das wird dir unheimlich Zeit sparen.
was meinst du damit?^^
Jetz hab ich das prob dass beim ersten login der server abstürzt^^
Lese ich die rows falsch aus oder ist das sscanf falsch ? :o
Zudem würde ich gerne wissen ob man den onplayerrequestclass cb bzw. andere ausschalten kann^^
stock LoginPlayer(playerid, pass[])
{
new query[1000];
format(query, sizeof(query),"SELECT * FROM userdata WHERE pName = '%s' AND pPassword = '%s'",playerdb[playerid][pName],pass);
printf("Der Spieler %s hat sich Regestriert, die Query lautet %s",playerdb[playerid],query); // bist hierhin kommt der noch
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 0)
{
if(mysql_fetch_row(query, "|")) // wrong ??
{
sscanf(query,"e<p<|>s[24]s[32]iii>", playerdb[playerid]); // wrong??
new str[80];
format(str, sizeof(str),"Welcome %s, you have been loged to your account",playerdb[playerid][pName]);
printf("der string lautet: %s",str); // das wird nicht mehr ausgegeben
SendClientMessage(playerid, COLOR_BLUE, str);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerScore(playerid, playerdb[playerid][pLevel]);
GivePlayerMoney(playerid, playerdb[playerid][pMoney]);
SetPlayerSkin(playerid,playerdb[playerid][pMoney]);
SpawnPlayer(playerid);
playerdb[playerid][pLogged] = 1; // set player loged variable true
}
}
else
{
ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"Login to Account.","Wrong password:","Login","Cancel");
}
}
+--------+-----------+--------+--------+------+-------+--------+
| pName | pPassword | pLevel | pMoney | IP | pSkin | pAdmin |
+--------+-----------+--------+--------+------+-------+--------+
| Player | 12345 | 1 | 20000 | NULL | 24 | NULL |
+--------+-----------+--------+--------+------+-------+--------+
1 row in set (0.00 sec)
mysql> So sieht meine tabelle aus^^ Wie muss ich das sscanf formatieren(bei null werten)?;D
hier ist der error der beim eingeben des Login dialoges erscheint:^^
[join] Player has joined the server (0:127.0.0.1)
[MySQL] Error (0): Failed to exeute query. You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right sy
ntax to use near '' at line 1.
schaut so aus als ob der den string garnich einliest is die format fkt also falsch?:P
hi leute,
ich will mir ein login®ister system mit mysql machen...
ich hab den mysql plugin von strickenKid, wenn ihr bessere kennt sagt bescheid^^
Nun hab ich das Problem wenn ich meinen Server starte und mich einloggen möchte, ein sql-error kommt...
Unter mysql wird die abfrage ausgeführt.... deshalb denk ich mal das die formatierung der variablen etc. falsch ist ?^^
Hier mal bisschen code:
//einmal unter LoginPlayer(playerid,pass[])
format(query, sizeof(query),"SELECT * FROM userdata WHERE pName = '%s' AND pPassword = md5('%s')",playerdb[playerid][pName],pass);
mysql_query(query);
// was ist dort falsch ?? ^^
//einmal unter IsPlayerRegistered(playerid, usernm[])
format(query, sizeof(query),"SELECT * FROM userdata WHERE pName = '%s'", usernm);
mysql_query(query);
//ondialogresponse
format(query, sizeof(query),"INSERT INTO userdata (pName,pPassword,pLevel,pMoney,pSkin) VALUES ('%s',md5('%s'),%d,%d,%d)",playerdb[playerid][pName],inputtext,1,20000,24);
mysql_query(query); // ich glaub hier ist der fehler ;D
Ich sscanf/sscanf2 plugin auch am start^^
Wenn ihr in erkennt wär echt cool.
doch sie wird geschrieben ^^, nur halt mit 0 und undefined werten aufgefüllt
// hier die onplayerregister
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new playername3[MAX_PLAYER_NAME],string[256];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string, sizeof(string), "/Accounts/%s.ini", playername3);
new File: hFile = fopen(string, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
format(var, 32, "Level=%d\n",PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Supporter=%d\n",PlayerInfo[playerid][pSupporter]);fwrite(hFile, var);
format(var, 32, "DonateRank=%d\n",PlayerInfo[playerid][pDonateRank]);fwrite(hFile, var);
format(var, 32, "UpgradePoints=%d\n",PlayerInfo[playerid][gPupgrade]);fwrite(hFile, var);
format(var, 32, "ConnectedTime=%d\n",PlayerInfo[playerid][pConnectTime]);fwrite(hFile, var);
format(var, 32, "Registered=%d\n",PlayerInfo[playerid][pReg]);fwrite(hFile, var);
format(var, 32, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var);
format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var);
format(var, 32, "Origin=%d\n",PlayerInfo[playerid][pOrigin]);fwrite(hFile, var);
format(var, 32, "CK=%d\n",PlayerInfo[playerid][pCK]);fwrite(hFile, var);
format(var, 32, "Muted=%d\n",PlayerInfo[playerid][pMuted]);fwrite(hFile, var);
format(var, 32, "Respect=%d\n",PlayerInfo[playerid][pExp]);fwrite(hFile, var);
format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
format(var, 32, "Bank=%d\n",PlayerInfo[playerid][pAccount]);fwrite(hFile, var);
format(var, 32, "Crimes=%d\n",PlayerInfo[playerid][pCrimes]);fwrite(hFile, var);
format(var, 32, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
format(var, 32, "Arrested=%d\n",PlayerInfo[playerid][pArrested]);fwrite(hFile, var);
format(var, 32, "WantedDeaths=%d\n",PlayerInfo[playerid][pWantedDeaths]);fwrite(hFile, var);
format(var, 32, "Phonebook=%d\n",PlayerInfo[playerid][pPhoneBook]);fwrite(hFile, var);
format(var, 32, "LottoNr=%d\n",PlayerInfo[playerid][pLottoNr]);fwrite(hFile, var);
format(var, 32, "Fishes=%d\n",PlayerInfo[playerid][pFishes]);fwrite(hFile, var);
format(var, 32, "BiggestFish=%d\n",PlayerInfo[playerid][pBiggestFish]);fwrite(hFile, var);
format(var, 32, "Job=%d\n",PlayerInfo[playerid][pJob]);fwrite(hFile, var);
format(var, 32, "HeadValue=%d\n",PlayerInfo[playerid][pHeadValue]);fwrite(hFile, var);
format(var, 32, "Jailed=%d\n",PlayerInfo[playerid][pJailed]);fwrite(hFile, var);
format(var, 32, "JailTime=%d\n",PlayerInfo[playerid][pJailTime]);fwrite(hFile, var);
format(var, 32, "Materials=%d\n",PlayerInfo[playerid][pMats]);fwrite(hFile, var);
format(var, 32, "Drugs=%d\n",PlayerInfo[playerid][pDrugs]);fwrite(hFile, var);
format(var, 32, "Leader=%d\n",PlayerInfo[playerid][pLeader]);fwrite(hFile, var);
format(var, 32, "Member=%d\n",PlayerInfo[playerid][pMember]);fwrite(hFile, var);
format(var, 32, "FMember=%d\n",PlayerInfo[playerid][pFMember]);fwrite(hFile, var);
format(var, 32, "Rank=%d\n",PlayerInfo[playerid][pRank]);fwrite(hFile, var);
format(var, 32, "Char=%d\n",PlayerInfo[playerid][pChar]);fwrite(hFile, var);
format(var, 32, "DetSkill=%d\n",PlayerInfo[playerid][pDetSkill]);fwrite(hFile, var);
format(var, 32, "SexSkill=%d\n",PlayerInfo[playerid][pSexSkill]);fwrite(hFile, var);
format(var, 32, "BoxSkill=%d\n",PlayerInfo[playerid][pBoxSkill]);fwrite(hFile, var);
format(var, 32, "LawSkill=%d\n",PlayerInfo[playerid][pLawSkill]);fwrite(hFile, var);
format(var, 32, "MechSkill=%d\n",PlayerInfo[playerid][pMechSkill]);fwrite(hFile, var);
format(var, 32, "JackSkill=%d\n",PlayerInfo[playerid][pJackSkill]);fwrite(hFile, var);
format(var, 32, "CarSkill=%d\n",PlayerInfo[playerid][pCarSkill]);fwrite(hFile, var);
format(var, 32, "NewsSkill=%d\n",PlayerInfo[playerid][pNewsSkill]);fwrite(hFile, var);
format(var, 32, "DrugsSkill=%d\n",PlayerInfo[playerid][pDrugsSkill]);fwrite(hFile, var);
format(var, 32, "CookSkill=%d\n",PlayerInfo[playerid][pCookSkill]);fwrite(hFile, var);
format(var, 32, "FishSkill=%d\n",PlayerInfo[playerid][pFishSkill]);fwrite(hFile, var);
format(var, 32, "pSHealth=%.1f\n",PlayerInfo[playerid][pSHealth]);fwrite(hFile, var);
GetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
format(var, 32, "pHealth=%.1f\n",PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
format(var, 32, "Int=%d\n",PlayerInfo[playerid][pInt]);fwrite(hFile, var);
format(var, 32, "Local=%d\n",PlayerInfo[playerid][pLocal]);fwrite(hFile, var);
format(var, 32, "Team=%d\n",PlayerInfo[playerid][pTeam]);fwrite(hFile, var);
format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var);
format(var, 32, "PhoneNr=%d\n",PlayerInfo[playerid][pPnumber]);fwrite(hFile, var);
format(var, 32, "House=%d\n",PlayerInfo[playerid][pPhousekey]);fwrite(hFile, var);
format(var, 32, "Bizz=%d\n",PlayerInfo[playerid][pPbiskey]);fwrite(hFile, var);
format(var, 32, "HandyGeld=%d\n",PlayerInfo[playerid][pHandyGeld]);fwrite(hFile, var);
format(var, 32, "HandyVer=%d\n",PlayerInfo[playerid][pHandyVer]);fwrite(hFile, var);
format(var, 32, "Arbeitgeld=%d\n",PlayerInfo[playerid][pHartzIV]);fwrite(hFile, var);
format(var, 32, "Hotel=%d\n",PlayerInfo[playerid][pHotel]);fwrite(hFile, var);
if ((PlayerInfo[playerid][pPos_x]==0.0 && PlayerInfo[playerid][pPos_y]==0.0 && PlayerInfo[playerid][pPos_z]==0.0))
{
PlayerInfo[playerid][pPos_x] = 1684.9;
PlayerInfo[playerid][pPos_y] = -2244.5;
PlayerInfo[playerid][pPos_z] = 13.5;
}
if(Spectate[playerid] != 255)
{
PlayerInfo[playerid][pPos_x] = Unspec[playerid][sPx];
PlayerInfo[playerid][pPos_y] = Unspec[playerid][sPy];
PlayerInfo[playerid][pPos_z] = Unspec[playerid][sPz];
PlayerInfo[playerid][pInt] = Unspec[playerid][sPint];
PlayerInfo[playerid][pLocal] = Unspec[playerid][sLocal];
}
format(var, 32, "Pos_x=%.1f\n",PlayerInfo[playerid][pPos_x]);fwrite(hFile, var);
format(var, 32, "Pos_y=%.1f\n",PlayerInfo[playerid][pPos_y]);fwrite(hFile, var);
format(var, 32, "Pos_z=%.1f\n",PlayerInfo[playerid][pPos_z]);fwrite(hFile, var);
format(var, 32, "CarLic=%d\n",PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
format(var, 32, "NewLic=%d\n",PlayerInfo[playerid][pNewLic]);fwrite(hFile, var);
format(var, 32, "FlyLic=%d\n",PlayerInfo[playerid][pFlyLic]);fwrite(hFile, var);
format(var, 32, "BoatLic=%d\n",PlayerInfo[playerid][pBoatLic]);fwrite(hFile, var);
format(var, 32, "FishLic=%d\n",PlayerInfo[playerid][pFishLic]);fwrite(hFile, var);
format(var, 32, "GunLic=%d\n",PlayerInfo[playerid][pGunLic]);fwrite(hFile, var);// hier wird der schein in der Spieler .ini gespeichert
format(var, 32, "LKWLic=%d\n",PlayerInfo[playerid][pLKWLic]);fwrite(hFile, var);
format(var, 32, "MotoLic=%d\n",PlayerInfo[playerid][pMotoLic]);fwrite(hFile, var);
format(var, 32, "Zig=%d\n",PlayerInfo[playerid][pZig]);fwrite(hFile, var);
format(var, 32, "ZigSucht=%d\n",PlayerInfo[playerid][pZigSucht]);fwrite(hFile, var);
format(var, 32, "Gun1=%d\n",PlayerInfo[playerid][pGun1]);fwrite(hFile, var);
format(var, 32, "Gun2=%d\n",PlayerInfo[playerid][pGun2]);fwrite(hFile, var);
format(var, 32, "Gun3=%d\n",PlayerInfo[playerid][pGun3]);fwrite(hFile, var);
format(var, 32, "Gun4=%d\n",PlayerInfo[playerid][pGun4]);fwrite(hFile, var);
format(var, 32, "Ammo1=%d\n",PlayerInfo[playerid][pAmmo1]);fwrite(hFile, var);
format(var, 32, "Ammo2=%d\n",PlayerInfo[playerid][pAmmo2]);fwrite(hFile, var);
format(var, 32, "Ammo3=%d\n",PlayerInfo[playerid][pAmmo3]);fwrite(hFile, var);
format(var, 32, "Ammo4=%d\n",PlayerInfo[playerid][pAmmo4]);fwrite(hFile, var);
format(var, 32, "CarTime=%d\n",PlayerInfo[playerid][pCarTime]);fwrite(hFile, var);
format(var, 32, "CDPlayer=%d\n",PlayerInfo[playerid][pCDPlayer]);fwrite(hFile, var);
format(var, 32, "Wins=%d\n",PlayerInfo[playerid][pWins]);fwrite(hFile, var);
format(var, 32, "Loses=%d\n",PlayerInfo[playerid][pLoses]);fwrite(hFile, var);
format(var, 32, "AlcoholPerk=%d\n",PlayerInfo[playerid][pAlcoholPerk]);fwrite(hFile, var);
format(var, 32, "DrugPerk=%d\n",PlayerInfo[playerid][pDrugPerk]);fwrite(hFile, var);
format(var, 32, "MiserPerk=%d\n",PlayerInfo[playerid][pMiserPerk]);fwrite(hFile, var);
format(var, 32, "PainPerk=%d\n",PlayerInfo[playerid][pPainPerk]);fwrite(hFile, var);
format(var, 32, "TraderPerk=%d\n",PlayerInfo[playerid][pTraderPerk]);fwrite(hFile, var);
format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var);
format(var, 32, "Warnings=%d\n",PlayerInfo[playerid][pWarns]);fwrite(hFile, var);
format(var, 32, "Adjustable=%d\n",PlayerInfo[playerid][pAdjustable]);fwrite(hFile, var);
format(var, 32, "Fuel=%d\n",PlayerInfo[playerid][pFuel]);fwrite(hFile, var);
format(var, 32, "Married=%d\n",PlayerInfo[playerid][pMarried]);fwrite(hFile, var);
format(var, 32, "MarriedTo=%s\n",PlayerInfo[playerid][pMarriedTo]);fwrite(hFile, var);
format(var, 32, "SpawnChange=%d\n",SpawnChange[playerid]);fwrite(hFile, var);
format(var, 32, "WantedLevel=%d\n",WantedLevel[playerid]);fwrite(hFile, var);
format(var, 32, "WantedPoints=%d\n",WantedPoints[playerid]);fwrite(hFile, var);
format(var, 32, "PlayMinutes=%d\n",PlayerInfo[playerid][pPlayMinutes]);fwrite(hFile, var);
format(var, 32, "GesamtMinutes=%d\n",PlayerInfo[playerid][pGesamtMinutes]);fwrite(hFile, var);
format(var, 32, "MinutesSinceAn=%d\n",PlayerInfo[playerid][pMinutesSinceAn]);fwrite(hFile, var);
format(var, 32, "SFPASS=%d\n",PlayerInfo[playerid][pSFPASS]);fwrite(hFile, var);
format(var, 32, "LVPASS=%d\n",PlayerInfo[playerid][pLVPASS]);fwrite(hFile, var);
format(var, 32, "Offflucht=%d\n",OfflineFlucht[playerid]);fwrite(hFile, var);
format(var, 32, "Knast=%d\n",Knast[playerid]);fwrite(hFile, var);
format(var, 32, "Uhr=%d\n",PlayerInfo[playerid][pUhrID]);fwrite(hFile, var);
format(var, 32, "Handy=%d\n",PlayerInfo[playerid][pHandyID]);fwrite(hFile, var);
format(var, 32, "KnastTime=%d\n",KnastTime[playerid]);fwrite(hFile, var);
format(var, 32, "Perso=%d\n",PlayerInfo[playerid][pOwnPerso]);fwrite(hFile, var);
format(var, 32, "FrakSperre=%d\n",PlayerInfo[playerid][pFrakSperre]);fwrite(hFile, var);
format(var, 32, "Paycheck=%d\n",PlayerInfo[playerid][pPayCheck]);fwrite(hFile, var);
format(var, 32, "PayDay=%d\n",PlayerInfo[playerid][pPayDay]);fwrite(hFile, var);
format(var, 32, "PayDayHad=%d\n",PlayerInfo[playerid][pPayDayHad]);fwrite(hFile, var);
format(var, 32, "VIPClub=%d\n",PlayerInfo[playerid][pVIPClub]);fwrite(hFile, var);
format(var, 32, "Zollpass=%d\n",PlayerInfo[playerid][pZollpass]);fwrite(hFile, var);
format(var, 32, "Rest=%d\n",PlayerInfo[playerid][pRest]);fwrite(hFile, var);
format(var, 32, "Ban=%d\n",PlayerInfo[playerid][pBan]);fwrite(hFile, var);
format(var, 32, "BanGrund=%d\n",PlayerInfo[playerid][pBanGrund]);fwrite(hFile, var);
format(var, 32, "BanTime=%d\n",PlayerInfo[playerid][pBanTime]);fwrite(hFile, var);
format(var, 32, "BanActor=%d\n",PlayerInfo[playerid][pBanActor]);fwrite(hFile, var);
format(var, 32, "Karte=%d\n",PlayerInfo[playerid][pKKarte]);fwrite(hFile, var);
format(var, 32, "Zoll_Year=%d\n", PlayerInfo[playerid][Zoll_Year]);fwrite(hFile, var);
format(var, 32, "Zoll_Month=%d\n", PlayerInfo[playerid][Zoll_Month]);fwrite(hFile, var);
format(var, 32, "Zoll_Day=%d\n", PlayerInfo[playerid][Zoll_Day]);fwrite(hFile, var);
format(var, 32, "Zoll_Hour=%d\n", PlayerInfo[playerid][Zoll_Hour]);fwrite(hFile, var);
format(var, 32, "Zoll_Minute=%d\n", PlayerInfo[playerid][Zoll_Minute]);fwrite(hFile, var);
format(var, 32, "CarP=%d\n", PlayerInfo[playerid][pCarP]);fwrite(hFile, var);
format(var, 32, "BikeP=%d\n", PlayerInfo[playerid][pBikeP]);fwrite(hFile, var);
format(var, 32, "PayTime=%d\n", PlayerInfo[playerid][pPayTime]);fwrite(hFile, var);
format(var, 32, "FishTool=%d\n",PlayerInfo[playerid][pFishTool]);fwrite(hFile, var);
format(var, 32, "KreditRechnung=%d\n",PlayerInfo[playerid][pKreditRechnung]);fwrite(hFile, var);
//format(var, 32, "Wanteds=%d\n",WantedLevel[playerid]);fwrite(hFile, var);
fclose(hFile);
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"{00A5FF}Your Virtual Life","{FFFFFF}Bitte logge dich in deinen {91FF00}Account{FFFFFF} ein!","Login","Abbrechen");
}
}
return 1;
}
hier meine onplayerlogin, bissl groß^^
public OnPlayerLogin(playerid,password[])
{
if(PlayerInfo[playerid][pBan] == 0)
{
new tmp2[256],string[256];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string, sizeof(string), "/Accounts/%s.ini", playername2);
new File: UserFile = fopen(string, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Key" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
/// USW USW USW....
gPlayerLogged[playerid] = 1; //also hier wird die variable dann gesetzt
und hier noch die onplayerrequestclass // die mich ziemlich stört
public OnPlayerRequestClass(playerid, classid)
{
//PlayerPlaySound(playerid, 1097,-119.9460,23.1096,12.2238);
//PlayerInfo[playerid][pModel] = Peds[classid][0];
if(IsPlayerNPC(playerid))
{
SpawnPlayer(playerid);
return 1;
}
if(gPlayerAccount[playerid] == 1 && gPlayerLogged[playerid] == 0)
{
new string11[256];
format(string11,sizeof(string11),"{FFFFFF}Herzlich Willkommen zurück\nDu hast von System den {00FF00}Sicherheitscode:{FF0000} %d {FFFFFF}zugewiesen bekommen\nBitte tippe ihn unten in die Box und klicke dann auf absenden!",Code[playerid]);
ShowPlayerDialog(playerid,DIALOG_LOGIN1,DIALOG_STYLE_INPUT,"Your Virtual Life - Authentifizierung",string11,"Absenden","Abbruch");
Streamer_SetIntData(STREAMER_TYPE_OBJECT, 0, E_STREAMER_MODEL_ID, 1225);
}
else if(gPlayerAccount[playerid] == 0)
{
ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_MSGBOX,"Your Virtual Life","{FFFFFF}Herzlich Willkommen auf dem Server Your Virtual Life\nUm deinen Account zu erstellen musst du dich erst registrieren\nDazu Tippe jetzt dein persönliches Passwort in die Zele ein.","Weiter","Abbrechen");
}
SetPlayerTeamFromClass(playerid,classid);
SetupPlayerForClassSelection(playerid);
return 1;
}
Desweiteren wäre meine Frage noch ob es möglich ist, dass wenn der Spieler connected das Onplayerrequestclass cb auszuschalten? also ich will das vll nur zu bestimmten Zeitpunkten ausführen.^^
Das Problem ist halt wenn der spieler connected, als erster der onplayerrequestclass cb ausgeführt wird. das will ich aber nicht ich will den komplett ausschalten, muss ich den cb dann einfach löschen?^^
hi leute,
ich wollte das "Account"sys vom SoL script übernehmen.
Das Problem ist halt wenn ich den gamemode starte kann ich mich am anfange registrieren, der speichert mir das ganze in einer datei aber
lädt die nicht wieder, sodass ich mir beim erneuten connecten nochmal registrieren muss und nicht einloggen kann.
Hier mal die Ausschnitte:^^ Wenn ihr noch welche braucht sagt an..
//OnPlayerConnect(..)
if(PlayerInfo[playerid][pBan] == 0)
{
SetCodeArray(playerid);
GetPlayerIp(playerid,pIP[playerid],16);
new loginstring[256];
new LoginName[MAX_PLAYER_NAME];
GetPlayerName(playerid, LoginName, sizeof(LoginName));
format(loginstring, sizeof(loginstring), "/Accounts/%s.ini", LoginName);
if(fexist(loginstring))
{
gPlayerAccount[playerid] = 1;
ShowPlayerDialog(playerid,DIALOG_ONLINE,DIALOG_STYLE_MSGBOX,"{00A5FF}WAZUP","{FFFFFF}Herzlich Willkommen auf {00A5FF}WAZUP{FFFFFF}. Bitte klicke auf {91FF00}Weiter{FFFFFF} um zum {91FF00}Login{FFFFFF} zu gelangen.\nWir wünschen dir einen Schönen Aufenthalt!\n\nBitte Halte dich an unsere {91FF00}Regeln.","Weiter","Verlassen");
PlayerInfo[playerid][pReg] = 1;
PlayerInfo[playerid][pTut] = 1;
return 1;
}
else
{
gPlayerAccount[playerid] = 0;
ShowPlayerDialog(playerid,DIALOG_NEULING,DIALOG_STYLE_MSGBOX,"{00A5FF}WAZUP","{FFFFFF}Herzlich Willkommen auf {00A5FF}WAZUP{FFFFFF}. Bitte klicke auf {91FF00}Weiter{FFFFFF} um zur {91FF00}Registration{FFFFFF} zu gelangen.\nWir wünschen dir einen Schönen Aufenthalt!\n\nBitte Halte dich an unsere {91FF00}Regeln{FFFFFF}.","Weiter","Verlassen");
return 1;
}
}
return 1;
public OnPlayerRequestClass(playerid, classid)
{
//PlayerPlaySound(playerid, 1097,-119.9460,23.1096,12.2238);
//PlayerInfo[playerid][pModel] = Peds[classid][0];
if(IsPlayerNPC(playerid))
{
SpawnPlayer(playerid);
return 1;
}
if(gPlayerAccount[playerid] == 1 && gPlayerLogged[playerid] == 0)
{
new string11[256];
format(string11,sizeof(string11),"{FFFFFF}Herzlich Willkommen zurück\nDu hast von System den {00FF00}Sicherheitscode:{FF0000} %d {FFFFFF}zugewiesen bekommen\nBitte tippe ihn unten in die Box und klicke dann auf absenden!",Code[playerid]);
ShowPlayerDialog(playerid,DIALOG_LOGIN1,DIALOG_STYLE_INPUT,"Your Virtual Life - Authentifizierung",string11,"Absenden","Abbruch");
Streamer_SetIntData(STREAMER_TYPE_OBJECT, 0, E_STREAMER_MODEL_ID, 1225);
}
else if(gPlayerAccount[playerid] == 0)
{
ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_MSGBOX,"Your Virtual Life","{FFFFFF}Herzlich Willkommen auf dem Server Your Virtual Life\nUm deinen Account zu erstellen musst du dich erst registrieren\nDazu Tippe jetzt dein persönliches Passwort in die Zele ein.","Weiter","Abbrechen");
}
SetPlayerTeamFromClass(playerid,classid);
SetupPlayerForClassSelection(playerid);
return 1;
}
Dort wird doch die Datei gelesen, die auch existiert! Wieso gelangt er dann nich zu login?
kann mir jemand helfen
danke^^
hehe , also liegt es nicht an dem Codeteil den du da gesendet hast.
Also ich seh da keine variablen die auf Afk o.ä. hindeuten,ich denk ma in dem Abschnitt wird lediglich die Message ausgegeben.^^
ich würd dir empfehlen die k_playerarea.inc zusätzlich zu holen.
Bietet dir den Callback
OnPlayerEnterArea(...)
OnPlayerExitArea(...)
und ne menga an funktionen um dir eine Zone zu erstellen, ob Gangzone ,Worldzone oder andere.
Dort ist auch einfach beschrieben wie du das ganze für dein Problem verwenden könntest.
Hoffe hat dir geholfen.
thacoga