
[ARG] Funzioni e Comandi Utili
#83
Inviato il 01 giugno 2008 - 16:51
Firma cancellata perchè fuori norma, leggi il regolamento. Il codice precedente è stato inviato per Messaggio Privato.
#87
Inviato il 08 settembre 2008 - 20:31
Quote
Originally posted by !GrIfOn!@20/08/08 - 23:35
ah mmmmmmmm potrei sapere dove si trova questo script cioe in ke cartella? scsate sn proprio un principiante
ah mmmmmmmm potrei sapere dove si trova questo script cioe in ke cartella? scsate sn proprio un principiante

-.-" Volevi dire sono un ignorante non scusate la mia ignoranza. Se non sai cos'è uno script è inutile che scrivi domande.
P.S te lo dico lo stesso. Lo script è la gamemode in cui vuoi cercare "OnPlayerCommandText".
Riguardo alla creazione di script scaricati lo Script Maker di Auron e leggi la guida sul pawno.
#88
Inviato il 15 settembre 2008 - 16:19
Scusate l'UP ma ho appena creato un paio di funzioni e le voglio postare.
stock HealAll()// dà a tutti i player una percentuale di vita se cambiate con 0 i player moriranno.
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) SetPlayerHealth(i, 100);
}
stock ArmourAll()//Dà a tutti i player connessi una percentuale di armatura oppure se cambiate con 0 verrà tolta l'armour.
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) SetPlayerArmour(i, 100);
}
stock ForceAll()//forza tutti i player connessi a cambiare team alla loro morte.
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) ForceClassSelection(i);
}
stock SetAllInterior()
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) SetPlayerInterior(i,0)//cambiate 0 con l'id dell' interior che volete settare.
}
stock DisarmAll()//disarma tutti i player connessi
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) ResetPlayerWeapons(i);
}
Metteteli dove volete fuori dalle funzioni. Crea funzioni come:
HealAll();
ArmourAll();
ForceAll();
SetAllInterior();
DisarmAll();
stock HealAll()// dà a tutti i player una percentuale di vita se cambiate con 0 i player moriranno.
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) SetPlayerHealth(i, 100);
}
stock ArmourAll()//Dà a tutti i player connessi una percentuale di armatura oppure se cambiate con 0 verrà tolta l'armour.
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) SetPlayerArmour(i, 100);
}
stock ForceAll()//forza tutti i player connessi a cambiare team alla loro morte.
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) ForceClassSelection(i);
}
stock SetAllInterior()
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) SetPlayerInterior(i,0)//cambiate 0 con l'id dell' interior che volete settare.
}
stock DisarmAll()//disarma tutti i player connessi
{
for(new i = 0; i < GetMaxPlayers(); i++)
if(IsPlayerConnected(i)) ResetPlayerWeapons(i);
}
Metteteli dove volete fuori dalle funzioni. Crea funzioni come:
HealAll();
ArmourAll();
ForceAll();
SetAllInterior();
DisarmAll();
#93
Inviato il 24 gennaio 2009 - 10:20
Register System
In testa alla gamemode:
#include <dudb> #include <Dini> #include <dutils> #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 new IsLoggedIn[MAX_PLAYERS];
Ricorda devi avere l'include Dini, dutils e dudb.
Fuori da tutto:
stock PlayerName(playerid) { new name[255]; GetPlayerName(playerid, name, 255); return name; }
Nell'OnPlayerDisconnect():
if(IsLoggedIn[playerid]==1) { dUserSetINT(PlayerName(playerid)).("score",GetPlayerScore(playerid)); dUserSetINT(PlayerName(playerid)).("soldi",GetPlayerMoney(playerid)); } IsLoggedIn[playerid]=0;
Nell'OnPlayerCommandText:
dcmd(register,8,cmdtext); dcmd(login,5,cmdtext);
Fuori da tutte le funzioni:
dcmd_login(playerid, params[])//---login { #pragma unused params if (IsLoggedIn[playerid]) { return SendClientMessage(playerid, COLOR_WHITE, "SERVER: Sei già loggato."); } if (!udb_Exists(PlayerName(playerid))) { return SendClientMessage(playerid, COLOR_RED, "SERVER: Questo account non esiste '/register <password>'."); } if (strlen(params)==0) { return SendClientMessage(playerid, COLOR_WHITE, "USO: '/login <password>'"); } if (udb_CheckLogin(PlayerName(playerid),params)) { SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).("score")); SetPlayerMoney(playerid,dUserINT(PlayerName(playerid)).("soldi")); IsLoggedIn[playerid]=1; printf("%s si è loggato!", PlayerName(playerid)); return SendClientMessage(playerid, COLOR_YELLOW, "SERVER: Ti sei loggato con successo, score e soldi ripristinati."); } return SendClientMessage(playerid, COLOR_RED, "ERORRE: Password errata !"); } dcmd_register(playerid,params[])//---register { #pragma unused params if (IsLoggedIn[playerid]) { return SendClientMessage(playerid, COLOR_WHITE, "SERVER: Sei già registrato e loggato su questo server !"); } if (udb_Exists(PlayerName(playerid))) { return SendClientMessage(playerid, COLOR_WHITE, "SERVER: Questo account esiste, '/login <password>' oppure cambia nick."); } if (strlen(params)==0) { return SendClientMessage(playerid, COLOR_WHITE, "USO:'/register <password>'"); } if (udb_Create(PlayerName(playerid),params)) { printf("%s si è registrato!", PlayerName(playerid)); return SendClientMessage(playerid, COLOR_WHITE, "SERVER: Loggati ora, '/login <password>'."); } return 1; }
Register System By. X_Ray.
Se non và dimmelo, ma ne dubito.
#94
Inviato il 24 gennaio 2009 - 10:23
Mi da errore:
C:\Documents and Settings\Marco\Documenti\Superbike World Championship Server\samp02Xserver.win32\pawno\include\dutils.inc(28) : warning 219: local variable "string" shadows a variable at a preceding level C:\Documents and Settings\Marco\Documenti\Superbike World Championship Server\samp02Xserver.win32\pawno\include\dutils.inc(132) : warning 219: local variable "string" shadows a variable at a preceding level C:\Documents and Settings\Marco\Documenti\Superbike World Championship Server\samp02Xserver.win32\pawno\include\dutils.inc(172) : warning 219: local variable "string" shadows a variable at a preceding level C:\Documents and Settings\Marco\Documenti\Superbike World Championship Server\samp02Xserver.win32\pawno\include\dutils.inc(280) : warning 219: local variable "string" shadows a variable at a preceding level C:\Documents and Settings\Marco\Documenti\Superbike World Championship Server\samp02Xserver.win32\pawno\include\dutils.inc(337) : warning 219: local variable "string" shadows a variable at a preceding level C:\Documents and Settings\Marco\Documenti\Superbike World Championship Server\samp02Xserver.win32\pawno\include\dutils.inc(379) : warning 219: local variable "string" shadows a variable at a preceding level C:\DOCUME~1\Marco\DOCUME~1\FILERI~1\SAMP02~1.WIN\SAMP02~1.WIN\GAMEMO~1\sfd4.pwn(110) : warning 219: local variable "name" shadows a variable at a preceding level C:\DOCUME~1\Marco\DOCUME~1\FILERI~1\SAMP02~1.WIN\SAMP02~1.WIN\GAMEMO~1\sfd4.pwn(158) : error 017: undefined symbol "cmdtext" C:\DOCUME~1\Marco\DOCUME~1\FILERI~1\SAMP02~1.WIN\SAMP02~1.WIN\GAMEMO~1\sfd4.pwn(158) : warning 215: expression has no effect C:\DOCUME~1\Marco\DOCUME~1\FILERI~1\SAMP02~1.WIN\SAMP02~1.WIN\GAMEMO~1\sfd4.pwn(158) : error 001: expected token: ";", but found "]" C:\DOCUME~1\Marco\DOCUME~1\FILERI~1\SAMP02~1.WIN\SAMP02~1.WIN\GAMEMO~1\sfd4.pwn(158) : error 029: invalid expression, assumed zero C:\DOCUME~1\Marco\DOCUME~1\FILERI~1\SAMP02~1.WIN\SAMP02~1.WIN\GAMEMO~1\sfd4.pwn(158) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 4 Errors.

#97
Inviato il 25 gennaio 2009 - 16:05
Quote
Originally posted by [SFD]Marco@24/01/09 - 10:45
grz un altra cose come faccio a fare un teleport solo x gli sfd?
grz un altra cose come faccio a fare un teleport solo x gli sfd?
Quote
if(strcmp(cmd,"/tele",true)==0)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
if(strfind(name,"[SFD]",true)==0)
{
SetPlayerPos(playerid,x,y,z);
}
else
{
SendClientMessage(playerid,COLOR_RED,"Tag Errata.");
return 1;
}
}
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
if(strfind(name,"[SFD]",true)==0)
{
SetPlayerPos(playerid,x,y,z);
}
else
{
SendClientMessage(playerid,COLOR_RED,"Tag Errata.");
return 1;
}
}