AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   write origin to file problem (https://forums.alliedmods.net/showthread.php?t=57014)

fxfighter 06-26-2007 11:12

write origin to file problem
 
I am making an plugin the req to save on orgin location on every map in a doc.
gonna use it to move players to it later.
the problem is to save/load the origin heer is my code so far.
i know its a floot but i still dont get it.
plz only post back if you can help me!

PHP Code:

#include <amxmodx>
#include <amxmisc>
#define PLUGIN ".."
#define VERSION "0.1"
#define AUTHOR "..."
new filename[256]
new 
origin[3]
public 
plugin_init() {
 
 
register_plugin("..""0.1""...")  
 
get_configsdir(filename,255)
 
format(filename,255,"%s/filehandle.txt",filename)
 
register_clcmd"say /spawnpoint","setspawn")
}
public 
setspawn(id)
{
 
client_print(id,print_chat,"loaction saved",origin)
 
get_user_origin(idorigin0)
 new 
writedata[128]
 new 
map[32],origin[3]
 
get_mapname(map,31)
 new 
filepointer fopen(filename,"a+")
 
 if(
filepointer)
 {
 
  
fprintf(filepointer,"%s %f^n",map,Float:origin[3])
 
  
fclose(filepointer)
 }
}
public 
client_connect(id)
{
 new 
filepointer fopen(filename,"r")
 if(
filepointer)
 {
  new 
readdata[128],map[32],Float:origin[3]
  new 
parsedmap[32],parsedorigin[8]
 
  while(
fgets(filepointer,readdata,127))
  {   
   
parse(readdata,parsedmap,31,parsedorigin,7)
 
   
get_mapname(map,31)
 
   if(
equal(map,parsedmap))
   {
    
origin[3] = str_to_float(parsedorigin)
    break
    
//...
   
}
  }
  
fclose(filepointer)
 }



Deviance 06-26-2007 11:54

Re: write origin to file problem
 
Here, i cleaned and fixed it some. It should work now

Code:
#include <amxmodx> #include <amxmisc> #define PLUGIN ".." #define VERSION "0.1" #define AUTHOR "..." new filename[256] public plugin_init() {     register_plugin("..", "0.1", "...")           get_configsdir(filename, 255)     format(filename, 255, "%s/filehandle.txt", filename)         register_clcmd( "say /spawnpoint","setspawn") } public setspawn(id) {     new save_origin[3]         client_print(id, print_chat, "loaction saved")     get_user_origin(id, save_origin, 0)         new map[32]     get_mapname(map,31)         new filepointer = fopen(filename, "at+")     if(filepointer)     {         fprintf(filepointer,"%s %f %f %f^n", map, float(save_origin[0]), float(save_origin[1]), float(save_origin[2]))         fclose(filepointer)     } } public client_connect(id) {     new filepointer = fopen(filename, "rt")         if(filepointer)     {         new readdata[128], map[32], Float:origin[3]         new parsedmap[32], parsedorigin[3][8]           while(!feof(filepointer))         {               fgets(filepointer, readdata, 127)             parse(readdata, parsedmap, 31, parsedorigin[0], 7, parsedorigin[1], 7, parsedorigin[2], 7)                 get_mapname(map, 31)               if(equal(map, parsedmap))             {                 origin[0] = str_to_float(parsedorigin[0])                 origin[1] = str_to_float(parsedorigin[1])                 origin[2] = str_to_float(parsedorigin[2])                                 break                           //...             }         }                 fclose(filepointer)     } }

fxfighter 06-26-2007 12:03

Re: write origin to file problem
 
thx you fixed my save problem but it dosent load corectly.
when its load all 3 values are 0.

Deviance 06-26-2007 15:03

Re: write origin to file problem
 
Quote:

Originally Posted by fxfighter (Post 494953)
thx you fixed my save problem but it dosent load corectly.
when its load all 3 values are 0.

Show the whole code...

fxfighter 06-26-2007 15:33

Re: write origin to file problem
 
Run this on de_dust and try to put a origin it works but when quit playing and then restart/changelevel the/to de_dust some how its fail to load and the ar guy moves to the origin ho has the value 0 0 0.
if you play as ct you will see what i mean its relly sick-.-



Code:


#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
 
#define PLUGIN "name"
#define VERSION "0.1"
#define AUTHOR "fxfighter"
 
new filename[256]
new origin[3]
 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent("Start", 2, "0=World triggered", "1=Round_Start" )
register_clcmd( "say /spawnpoint","setspawn")
get_configsdir(filename, 255)
format(filename, 255, "%s/filehandle.txt", filename)
}
public setspawn(id)
{
new save_origin[3]
 
client_print(id, print_chat, "Origin changed")
get_user_origin(id, save_origin, 0)
 
new map[32]
get_mapname(map,31)
 
new filepointer = fopen(filename, "at+")
if(filepointer)
{
fprintf(filepointer,"%s %f %f %f^n", map, float(save_origin[0]), float(save_origin[1]), float(save_origin[2]))
fclose(filepointer)
}
}
 
public Start()
{
new player = random_player()
 new name[32]
 
if( is_user_connected(player))
{
get_user_name(player,name,31)
strip_user_weapons(player)
set_user_origin(player,origin)
client_print(0,print_chat," %s is the ar guy",name)
set_user_health(player, 200)
set_user_armor(player, 200)
}
}
 
stock random_player()
{
new iPlayer, iPlayers = get_playersnum()
while(!is_user_connected(iPlayer))
iPlayer = random_num(1,iPlayers)
 
return iPlayer
}
 
public client_putinserver(id)
{
new filepointer = fopen(filename, "rt")
 
if(filepointer)
{
new readdata[128], map[32], Float:origin[3]
new parsedmap[32], parsedorigin[3][8]
 
while(!feof(filepointer))
{
fgets(filepointer, readdata, 127)
parse(readdata, parsedmap, 31, parsedorigin[0], 7, parsedorigin[1], 7, parsedorigin[2], 7)
 
get_mapname(map, 31)
 
if(equal(map, parsedmap))
{
origin[0] = str_to_float(parsedorigin[0])
origin[1] = str_to_float(parsedorigin[1])
origin[2] = str_to_float(parsedorigin[2])
 
break
//...
}
}
 
fclose(filepointer)
}
}



All times are GMT -4. The time now is 21:32.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.